PSLoggedon String zerlegen
Hallo, ich habe das bereits in meinem TUT angesprochen, aber das ist mir langsam zu offtopic. Deswegen gehts hier weiter:
Eingeloggten User ermitteln
Ok, nun hab ich das Problem gefunden warum es nicht gehen wird!
Das "-l" interessiert den nicht! Da würde nur der lokal angemeldete Nutzer angezeigt werden. Aber das funzt nicht!
Die Ausgabe wenn ich den User via PSLoggedon auf einem RemotePC mit Windows XP auslese sieht wie folgt aus:
Auf einer Windows 2000 Maschine sieht es so aus:
Tja, also nichts mit .200 :/
Und mit Unknown kann ich auch nichts anfangen!
Bleibt wir wohl nur die Möglichkeit über mein anderes Tutorial über MOF
Eingeloggten User ermitteln
SET objShell = CreateObject("WScript.Shell")
strCommand = localpath & "psloggedon.exe \\" & strComputer & " -l"
SET objExecObject = objShell.Exec(strCommand)
DO WHILE Not objExecObject.StdOut.AtEndOfStream
strText = objExecObject.StdOut.ReadAll()
LOOP
'==================
' strText = split(strText,chr(13))
' strLoggedOn = split(strText(8),chr(92))
'==================
If InStr( strText, ".200" ) > 0 Then
LastLogonUser = Mid(strText, InStrRev(strText,"\")+1)
end if
'==================
' str = str & GetRow("LoggedonUser", strLoggedOn(1))
str = str & Getrow("LoggedonUser2",LastLogonUser)
Ok, nun hab ich das Problem gefunden warum es nicht gehen wird!
Das "-l" interessiert den nicht! Da würde nur der lokal angemeldete Nutzer angezeigt werden. Aber das funzt nicht!
Die Ausgabe wenn ich den User via PSLoggedon auf einem RemotePC mit Windows XP auslese sieht wie folgt aus:
PsLoggedOn v1.31 - Logon Session Displayer
Copyright (C) 1999-2003 Mark Russinovich
Sysinternals - www.sysinternals.com
Users logged on locally:
<Unknown> NT-AUTORITÄT\LOKALER DIENST
<Unknown> NT-AUTORITÄT\NETZWERKDIENST
<Unknown> XXX\ZZZ
<Unknown> NT-AUTORITÄT\SYSTEM
Users logged on via resource shares:
19.04.2006 07:58:10 XXX\YYY
Auf einer Windows 2000 Maschine sieht es so aus:
PsLoggedOn v1.31 - Logon Session Displayer
Copyright (C) 1999-2003 Mark Russinovich
Sysinternals - www.sysinternals.com
Users logged on locally:
<Unknown> XXX\YYY
Users logged on via resource shares:
19.04.2006 07:59:09 XXX\ZZZ
Tja, also nichts mit .200 :/
Und mit Unknown kann ich auch nichts anfangen!
Bleibt wir wohl nur die Möglichkeit über mein anderes Tutorial über MOF
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 30664
Url: https://administrator.de/contentid/30664
Ausgedruckt am: 23.11.2024 um 09:11 Uhr
8 Kommentare
Neuester Kommentar
Vielleicht hilft Dir das Tool "whoami" weiter. Ist auf den Windosxp-CD im Verzeichnis Support/Tools/suptools.msi enthalten. Oder im Ressourcekit von Windows Server 2000.
...und am CMD-Prompt (bzw. mit Shell-Aufruf) ist es so problematisch auch nicht.
Zwei Varianten:
a) entweder, wenn es nur um eine Domäne geht:
psloggedon -l \\[compi] |find "%userdomain%
(oder auch Domäne im Klartext, wenn Du die abgrast
psloggedon -l -d DOMAIN |find "DOMAIN"
-oder-
b) psloggedon -l -d DOMAIN|find /v "AUTORIT"
--->dieses Ergebnis sollte unter W2K und win2002/XP und Win2003 IMMER in der 7ten Zeile diesen XXX\usernamen -String bringen.
In einem Batch dann also:
For /F %%i "delims=\ tokens=2 skip=6" in ('psloggedon -l -d DOMAIN^|find /v "AUTORIT"') do echo %%i
--->sollte den Usernamen liefern. Den DOMAIN-Namen kennst Du ja schon.
Gruß
Biber
Zwei Varianten:
a) entweder, wenn es nur um eine Domäne geht:
psloggedon -l \\[compi] |find "%userdomain%
(oder auch Domäne im Klartext, wenn Du die abgrast
psloggedon -l -d DOMAIN |find "DOMAIN"
-oder-
b) psloggedon -l -d DOMAIN|find /v "AUTORIT"
--->dieses Ergebnis sollte unter W2K und win2002/XP und Win2003 IMMER in der 7ten Zeile diesen XXX\usernamen -String bringen.
In einem Batch dann also:
For /F %%i "delims=\ tokens=2 skip=6" in ('psloggedon -l -d DOMAIN^|find /v "AUTORIT"') do echo %%i
--->sollte den Usernamen liefern. Den DOMAIN-Namen kennst Du ja schon.
Gruß
Biber