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-ID: 243974

Url: https://administrator.de/forum/wie-kann-man-von-einer-ws-die-vorhanden-rdp-sitzungen-am-server-pruefen-243974.html

Ausgedruckt am: 23.12.2024 um 14:12 Uhr

colinardo
Lösung colinardo 17.07.2014, aktualisiert am 22.07.2014 um 17:55:28 Uhr
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
Endoro
Lösung Endoro 18.07.2014, aktualisiert am 22.07.2014 um 17:55:31 Uhr
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.
aodenthal
aodenthal 22.07.2014 um 17:53:24 Uhr
Goto Top
Hallo Uwe,

Danke für die prompte Antwort. Habe mir den CMD Befehl genommen. Der reicht völlig aus. Danke !
aodenthal
aodenthal 22.07.2014 um 17:54:29 Uhr
Goto Top
Hallo Endoro,

Vielen Dank für die Rückmeldung.