aodenthal
Goto Top

Wie kann man von einer WS - die vorhanden RDP Sitzungen am Server prüfen

Hallo,

ich suche eine Möglichkeit, wie ich abfragen kann, ob am Terminalserver noch aktive Sitzungen sind. Diese Abfrage sollte allerdings nicht direkt auf dem Terminalserver laufen, sondern auf einem lokalen Windows PC.

Das ganze sollte mir dann auch einen Text auf dem Bildschirm ausgeben.

So in der Art:

Prüfe ob auf Terminalserver noch eine RDP Sitzung von User1 aktiv ist , wenn ja schreibe "Benutzer 1 ist noch angemeldet" , wenn nein, braucht kein Hinweis kommen.


Entweder blicke ich da nicht durch - oder ich bin einfach zu doof dafür. Ich habe schon versucht mit query user zu arbeiten, aber der zeigt mir nur direkt auf dem Terminalserver die angemeldeten Benutzer an.


Gruß
Alexander

Content-Key: 243974

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

Printed on: April 23, 2024 at 14:04 o'clock

Member: colinardo
Solution colinardo Jul 17, 2014, updated at Jul 22, 2014 at 15:55:28 (UTC)
Goto Top
Hallo Alexander,
Folgender Befehl sollte dir dabei helfen
qwinsta /server:rdpserver.domain.de MaxMuster
Um alle Sitzungen abzufragen lässt du den Usernamen einfach weg.

kannst du auch mit folgendem VBScript machen das alle eingeloggten User eines Rechners auflistet:
(Zeile 2 Computernamen oder IP eintragen) / WMI-Remoteverwaltung auf der Firewall des Servers/Rechners muss dafür freigegeben sein
dim strComputer, colSessions, objSession, colList, allUsers
strComputer = "."     
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")   
Set colSessions = objWMI.ExecQuery("Select * from Win32_LogonSession Where LogonType = 2 or LogonType = 10")   

If colSessions.Count = 0 Then 
   Wscript.Echo "Es sind keine Benutzer auf dem Computer: '" & strComputer & "' eingeloggt."   
Else 
   For Each objSession in colSessions
     Set colList = objWMI.ExecQuery("Associators of {Win32_LogonSession.LogonId=" & objSession.LogonId & "} Where AssocClass=Win32_LoggedOnUser Role=Dependent")  
     allUsers = "Folgende User sind auf Computer: '" & strComputer & "' eingeloggt." & vbNewline  
     For Each objItem in colList 
       allUsers = allUsers & " - " & objItem.Name & vbNewline  
     Next 
   Next
   Msgbox allUsers 
End If
Grüße Uwe
Member: Endoro
Solution Endoro Jul 18, 2014, updated at Jul 22, 2014 at 15:55:31 (UTC)
Goto Top
Hey,
quser listet am Terminal eingeloggte user:
C:\Users>quser /?
Display information about users logged on to the system.

QUERY USER [username | sessionname | sessionid] [/SERVER:servername]

  username            Identifies the username.
  sessionname         Identifies the session named sessionname.
  sessionid           Identifies the session with ID sessionid.
  /SERVER:servername  The server to be queried (default is current).
Gruss, Endoro.
Member: aodenthal
aodenthal Jul 22, 2014 at 15:53:24 (UTC)
Goto Top
Hallo Uwe,

Danke für die prompte Antwort. Habe mir den CMD Befehl genommen. Der reicht völlig aus. Danke !
Member: aodenthal
aodenthal Jul 22, 2014 at 15:54:29 (UTC)
Goto Top
Hallo Endoro,

Vielen Dank für die Rückmeldung.