
Unter Windows kann ich Remotedesktopsitzungen auf einem bestimmten Server wie folgt abrufen:
qwinsta /server:SERVER_NAME
Dadurch erhalte ich jedoch Sitzungen in allen möglichen Zuständen (z. B.: Aktiv, Disc, ...).
Kennt jemand einen Befehl, eine Batchdatei oder ein Skript, um nur die „aktiven“ Sitzungen abzurufen? Ich möchte es von einem normalen Windows 7-Client aus ausführen können.
Antwort1
qwinsta /server:SERVER_NAME | find /I "Active"
Beachten Sie, dass dies nur ein schneller Einzeiler ist, der einfach jede Zeile ausspuckt, die "Active" (in Klein- oder Großbuchstaben) enthält. Wenn Sie Benutzernamen erwarten, die diese Zeichenfolge enthalten, wird es komplizierter und Sie müssen die vierte Spalte auf die korrekte Zeichenfolge "Active" überprüfen:
for /F "usebackq tokens=1,2,3,4,5*" %i in (`qwinsta /server:SERVER_NAME ^| find "Active"`) do if "%l" == "Active" ( echo %i %j %k %l %m )
Wenn Sie ohnehin einzelne Felder der Ausgabe verarbeiten müssen, ist die letztere Form vorzuziehen, da dabei die Felder in den %i
...- %m
Variablen verfügbar gemacht werden.
Diese Konstruktion funktioniert jedoch auch nicht, wenn Ihre Benutzernamen Leerzeichen enthalten. In diesem Fall ist mit qwinsta alles verloren und Sie sollten stattdessen nach einer PowerShell-Funktion suchen, um die Benutzerliste abzurufen.