funkmasta2k
Goto Top

Angemeldeten Benutzer anzeigen lassen

Hallo,
ist zwar nicht viel "Programmierung", aber dennoch oft nützlich.
@echo off
FOR /F "tokens=3" %%a IN ('netsh diag show computer /v ^| FIND /i "username"') DO ECHO %%a  

Man könnte auch den angemeldeten Benutzer auf einem entfernten System ermitteln via psexec,
dafür müsste die Batch dann so aussehen:
@echo off
SET REMOTE_COMPUTER=%1
FOR /F "tokens=3" %%a IN ('PSEXEC.exe \\%REMOTE_COMPUTER% netsh diag show computer /v ^| FIND /i "username"') DO ECHO %%a  
Ich hoffe jemand von euch kann damit etwas anfangen.

Content-ID: 84159

Url: https://administrator.de/contentid/84159

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

vbMaxi
vbMaxi 28.03.2008 um 13:23:46 Uhr
Goto Top
hi funkmasta2k,
ich möchte dich hier nicht fertig machen o.ä. aber das ganze geht auch anders und schnell:
@echo off
echo %logonserver%\%username%

lg vbmaxi

P.S.:
das ist nur eine 2. Möglichkeit
funkmasta2k
funkmasta2k 28.03.2008 um 14:26:59 Uhr
Goto Top
Hey danke, man lernt nie aus face-smile
Warze69
Warze69 29.03.2008 um 19:32:16 Uhr
Goto Top
Wenn schon die Ps-Tools, dann psloggedon.exe.
TuXHunt3R
TuXHunt3R 16.04.2008 um 11:29:25 Uhr
Goto Top
Du solltest vielleicht noch erwähnen, dass das Ganze unter Windows 2000 nicht funktioniert, da es dort die netsh.exe nicht gibt.

Ansonsten habe ich nichts auszusetzen.
54487
54487 16.04.2008 um 11:39:30 Uhr
Goto Top
dass das Ganze unter Windows 2000 nicht funktioniert, da es dort
die netsh.exe nicht gibt.

Bei dir vielleicht nicht, bei anderen Usern schon:
Version 5.0.2168.1 vom 10.12.99 mit 86.288 Byte (de).
spacyfreak
spacyfreak 17.04.2008 um 17:53:54 Uhr
Goto Top
P:\>FOR /F "tokens=3" %%a IN ('netsh diag show computer /v ^| FIND /i "username"  
') DO ECHO %%a  
"%%a" ist syntaktisch an dieser Stelle nicht verarbeitbar.  
Der andere Befehl funktioniert dagegen prächtig:
P:\>echo %logonserver%\%username%
\\WEISSWURSTPARADIES\Stoiber
Gruss, Eddy
TuXHunt3R
TuXHunt3R 17.04.2008 um 23:21:44 Uhr
Goto Top
Wenn du den Befehl direkt über die Konsole ausführst, musst du nur ein % bei der Variablen schreiben, also so:
FOR /F "tokens=3" %a IN ('netsh diag show computer /v ^| FIND /i "username"') DO ECHO %a  

Zwei %% brauchst du nur, wenn du das Ganze per Batch ausführst.
Biber
Biber 17.04.2008 um 23:57:18 Uhr
Goto Top
...ich wäre der Letzte, der die Firma M$ in Schutz nehmen würde, das wisst ihr. aber...

Nicht mal die sind so bekloppt, dass sie die Information "dem User seine Domäne"
in eine Variable namens %LOGONSERVER% schreiben.

Bei allen M$-Domain-Rechnern, die ich kenne, klappt ein
@echo %USERDOMAIN%\%USERNAME%

...oder natürlich die NetSh-Variante oben.

Aber nienich %logonserver%.

Ach ja, und PsLoggedOn geht einen ganz anderen Weg, nämlich über Remote-Registryzugriff und "LastLoggedOnUser"-Einträge.
Kein Remote-Registry-Zugriff gestattet-->keine Info.
Hat der User gesagt: Letzten angemeldeten User NICHT merken (in die Registry schreiben) -> keine Info.
Gibt also durchaus Fälle, in denen ich NetSh mehr vertrauen würde.

Grüße
Biber
54487
54487 18.04.2008 um 00:15:29 Uhr
Goto Top
Biber
Biber 18.04.2008 um 00:30:25 Uhr
Goto Top
http://support.microsoft.com/kb/100843/de
Systemumgebungsvariablen
Systemumgebungsvariablen können angezeigt werden, indem Sie in der Systemsteuerung das Symbol System auswählen. 
Diese Variablen werden immer festgelegt, unabhängig davon, wer sich anmeldet. 
Sie können nicht von Benutzern geändert werden. 

Es gibt einige zusätzliche vordefinierte Umgebungsvariablen, die bei Anmeldung des Benutzers festgelegt werden, die nicht im Dialogfeld System angezeigt werden: 

   USERNAME
   USERDOMAIN
   NTVERSION (not available in Windows NT 4.0 anymore)
   WINDIR
   OS
   PROCESSOR_ARCHITECTURE

Wichtig dabei ist mir:
Diese Variablen werden immer festgelegt, unabhängig davon, wer sich anmeldet.
Sie können nicht von Benutzern geändert werden.

Grüße
Biber
54487
54487 18.04.2008 um 00:34:16 Uhr
Goto Top
Auszug Windows-Hilfe, Stichwort Befehlsinterpreter, Volltextsuche, 6. Übersicht über die Eingabeaufforderung:

%LOGONSEVER% lokal Gibt den Namen des Domänencontrollers zurück, der die aktuelle Anmeldesitzung bestätigt hat.

Und siehe da, gibt man in der Konsole SET ein, steht da doch tatsächlich eine Variable LOGONSERVER face-smile

Von wegen "Nicht mal die sind so bekloppt ...." face-smile
Biber
Biber 18.04.2008 um 00:45:20 Uhr
Goto Top
@54487

ich bestreite ja nicht, dass M$ den Namen des Logonservers in einer Variablen %LOGONSERVER% speichert.
Auch ein blindes Huhn usw...

Aber die Ausgabe von dem gefiltertern NetSh.exe-Aufruf zeigt DOMAIN\USERNAME.
Und wenn die Ausgabe so sein soll und das WhoAmI.exe-Utility aus dem Reskit nicht installiert ist, dann bekommst du diese Ausgabe alternativ eben mit %USERDOMAIN%\%USERNAME% (am eigenen Rechner).

Grüße
Biber

P.S.
Und siehe da, gibt man in der Konsole SET ein, steht da doch tatsächlich eine Variable ..
Und wenn man/frau SET USER eingibt, was passiert dann?
54487
54487 18.04.2008 um 00:53:12 Uhr
Goto Top
USERDOMAIN gibt es natürlich auch.

ich bestreite ja nicht, dass M$ den Namen des Logonservers in einer Variablen %LOGONSERVER% speichert.

Nee? Das liest sich aber da oben ganz anders. face-smile

Jedenfalls ist die Aussage in der Windows-Hilfe zu XP eindeutig und widerlegt m. E. deine Behauptung. :-P

Und was die Behauptung angeht, dass die aus dem Artikel 100843 angegebenen Systemvariablen vom Benutzer nicht
geändert werden können, so ist das glatt eine Ente. face-big-smile

Ob die Änderung (über die Registry, die auch prompt übernommen wird) allerdings sinnvoll ist, lasse ich mal außen vor.
Biber
Biber 18.04.2008 um 01:14:36 Uhr
Goto Top
@54487
Nee? Das liest sich aber da oben ganz anders.
Meine gewollte Aussage sollte sein:
Ich bekomme nicht mit %logonserver% den Namen der Domäne heraus.

Beispiel: an meinem Arbeitsplatz melde ich mich jeden Morgen an einem von 5 Logonservern an und kann mir eine von xx Domänen aussuchen.

Logonserver beginnen mit "\\" (sind ja Server == anfassbare Geräte, in die ein Stromkabel reingeht)
Domänen sind zwar auch nur sichtbar, wenn Strom fließt, aber es gibt keine Eins-zu-Eins-Verbindung "Domäne-zu-Steckdose".

Wenn die Fragestellung war:
Welcher User hat sich heute morgen an welchem Logonserver angemeldet?
dann habe ich das überlesen. face-wink

Grüße
Biber
54487
54487 18.04.2008 um 01:30:02 Uhr
Goto Top
Da war gar keine Fragestellung, sondern ursprünglich eine Aussage:
Angemeldeten Benutzer anzeigen lassen. face-big-smile

Im Verlauf der Diskussion kam dann zur Sprache, wie man das Ganze auch remote rausbekommt. face-wink
Dabei tauchte dann der Begriff %LOGONSERVER% auf. face-wink
Freakii
Freakii 08.09.2009 um 15:32:57 Uhr
Goto Top
Geht aber noch Viiiel Einfacher bei Windows XP ;):

Schritt 1: Strg + Alt + Entf
Schritt 2: Benutzer
Schritt 3: Status Zeile Angucken (Erklärt sich von selbst was das Bedeutet) xD