PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Win Server: Client Name mit VBS


maximum
2015-01-30, 08:55:35
Hallo,

ich möchte auf einem Windows Server ein VBS schedulen, welches alle x Minuten läuft und sämtliche Tasks dahingehend durchsieht, ob ein bestimmter Client einen oder mehrere bestimmte Prozesse geöffnet hat. (es geht um Clients, die sich von einem anderen TS weiterverbunden haben via RDP -> daher haben alle betreffenden den gleichen Client Name).

Im Taskmanager kann man das wunderbar aufgeschlüsselt sehen nach Username/Clientname/Prozessname.


So kann man sich ja zum Beispiel eine Schleife basteln, die alle angemeldeten User anzeigt.

strComputer = "."
Set objWMI = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")


Set colSessions = objWMI.ExecQuery _
("Select * from Win32_LogonSession Where LogonType = 10")


If colSessions.Count = 0 Then
Echo "No interactive users found"
Else
echo "RDP Sessions:"
For Each objSession in colSessions
Set colList = objWMI.ExecQuery("Associators of " _
& "{Win32_LogonSession.LogonId=" & objSession.LogonId & "} " _
& "Where AssocClass=Win32_LoggedOnUser Role=Dependent" )
For Each objItem in colList
Echo "Username: " & objItem.Name & " FullName: " & objItem.FullName
Next
Next
End If



Im Userkontext ausgeführt kann man ja seinen eigenen Client Name zB so anzeigen:

Set objShell = CreateObject( "WScript.Shell" )
ClientComp = objShell.ExpandEnvironmentStrings("%clientname%")

Das bringt mir nur nix, weil ich will ja nicht, dass jeder User eine Endlosschleife offen hat, die alle 5 Minuten die Tasks durchsieht. (sondern im Tasksscheduler soll eine VBS mit stehen, die mit Adminrechten ausgeführt wird und alle x Minten einmal läuft)
Leider kann man scheinbar via WMI nicht an den Client Name kommen.
Hat jemand einen Tipp?