xaero1982
Goto Top

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

        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

Content-ID: 30664

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

Ausgedruckt am: 23.11.2024 um 09:11 Uhr

dieseyer
dieseyer 19.04.2006 um 19:48:51 Uhr
Goto Top
Hallo!

Zeichenkette "<Unknown>" suchen - und wenn in dieser Zeile nicht "NT-AUTORITÄT":
If InStr( Zeile(i), "<Unknown>") > 0 AND InStr( Zeile(i), "NT-AUTORITÄT") = 0 Then
Txt = Mid( Zeile(i), InStrRev( Zeile(i), " " ) + 1 )
MsgBox "==>" & Txt & "<=="
End If
24758
24758 19.04.2006 um 19:51:04 Uhr
Goto Top
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.
Xaero1982
Xaero1982 19.04.2006 um 22:19:34 Uhr
Goto Top
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.

Denke nicht, aber dennoch danke face-smile

@dieseyer..werd es morgen mal testen
Biber
Biber 19.04.2006 um 22:30:39 Uhr
Goto Top
...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 abgrastface-smile
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
Xaero1982
Xaero1982 20.04.2006 um 07:25:02 Uhr
Goto Top
Ich glaube ich werde mich dennoch für meine mof entscheiden, da ich sonst immer pfadgebunden bin mit der psloggedon.exe ..
werde es nachher mit cheffe bereden und dann weiter testen
Xaero1982
Xaero1982 03.05.2006, aktualisiert am 18.10.2012 um 17:56:51 Uhr
Goto Top
Das wäre ja zu schön gewesen Hillerbaby face-smile

Funktioniert leider nicht, wenn der derzeit angemeldete Nutzer nur Benutzerrechte hat.

Siehe:
MOF-WMI-Registry
Eingeloggten User ermitteln
HardCoreIndianer
HardCoreIndianer 02.11.2006 um 12:29:34 Uhr
Goto Top
Doch doch das geht, selbst wenn mehrere User angemeldet sind.
Xaero1982
Xaero1982 19.04.2007 um 14:13:20 Uhr
Goto Top
Diese Antwort war sehr hilfreich. Danke Indianer