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-Key: 30664

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

Printed on: April 19, 2024 at 10:04 o'clock

Member: dieseyer
dieseyer Apr 19, 2006 at 17:48:51 (UTC)
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
Mitglied: 24758
24758 Apr 19, 2006 at 17:51:04 (UTC)
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.
Member: Xaero1982
Xaero1982 Apr 19, 2006 at 20:19:34 (UTC)
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
Member: Biber
Biber Apr 19, 2006 at 20:30:39 (UTC)
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
Member: Xaero1982
Xaero1982 Apr 20, 2006 at 05:25:02 (UTC)
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
Member: Xaero1982
Xaero1982 May 03, 2006, updated at Oct 18, 2012 at 15:56:51 (UTC)
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
Member: HardCoreIndianer
HardCoreIndianer Nov 02, 2006 at 11:29:34 (UTC)
Goto Top
Doch doch das geht, selbst wenn mehrere User angemeldet sind.
Member: Xaero1982
Xaero1982 Apr 19, 2007 at 12:13:20 (UTC)
Goto Top
Diese Antwort war sehr hilfreich. Danke Indianer