Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Unter bestimmten Bedingungen möchte ein Administrator möglicherweise eine Abmeldung aller Benutzer erzwingen, die derzeit auf einem Remotedesktopserver angemeldet sind. Dazu können Sie eine Batchdatei oder ein PowerShell-Skript verwenden.
Warnung
Durch Ausführen des folgenden Verfahrens werden alle Benutzer abgemeldet, die aktuell auf dem Remotedesktopserver angemeldet sind. Dies kann zu einem Verlust nicht gespeicherter Daten führen. Aus diesem Grund wird äußerste Vorsicht empfohlen.
Ursprüngliche KB-Nummer: 259436
PowerShell
Um alle Benutzersitzungen abzumelden, führen Sie die folgenden PowerShell-Cmdlets im Verbindungsbroker aus:
$sessions = Get-RDUserSession
foreach($session in $sessions)
{
Invoke-RDUserLogoff -HostServer $session.HostServer -UnifiedSessionID $session.UnifiedSessionId -Force
}
Um nur getrennte Benutzersitzungen abzumelden, führen Sie die folgenden PowerShell-Cmdlets im Verbindungsbroker aus:
$sessions = Get-RDUserSession | ? {$_.SessionState -eq "STATE_DISCONNECTED"}
foreach($session in $sessions)
{
Invoke-RDUserLogoff -HostServer $session.HostServer -UnifiedSessionID $session.UnifiedSessionId -Force
}
Verwenden einer Batchdatei
Platzieren Sie die folgenden Informationen in einer Batchdatei (.bat):
query session >session.txt
for /f "skip=1 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
Diese Batchdatei kann jederzeit ausgeführt werden, wenn der Administrator die Abmeldung aller Benutzer erzwingt, die nicht bei der Remotedesktopserverkonsole angemeldet sind.
Abfrage ist ein mehrzweckbasierter Befehl in der Remotedesktopserverumgebung. In diesem Fall erstellt die Abfragesitzung eine Liste aller Sitzungen, die auf dem Remotedesktopserver ausgeführt werden, vollständig mit Sitzungs-ID-Nummern. Innerhalb der Batchdatei wird diese Ausgabe an eine Textdatei umgeleitet. Die FOR-Anweisung analysiert dann jede Zeile der Textdatei, überspringt die erste Zeile und sucht in der dritten Spalte nach der Sitzungs-ID-Nummer. Anschließend wird diese Variable in "Abmelden" platziert, was dazu führt, dass diese Sitzung abgemeldet wird.
Es ist nicht ungewöhnlich, eine Fehlermeldung zu erhalten, wenn Sie diese Batchdatei ausführen. Wenn ein Benutzer bei der Remotedesktopserverkonsole angemeldet ist, wird die folgende Fehlermeldung generiert:
Could not logoff session ID 0 from session Console, Error code 5
Error [5]: Access is denied.
Dies liegt an einer Einschränkung des Logoff
Befehls. Die Abmeldung der Konsolensitzung kann nicht erzwungen werden. Eine Problemumgehung für dieses Problem wäre das Ändern der Batchdatei zum Lesen:
query session >session.txt
for /f "skip=2 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
Dadurch werden die ersten beiden Zeilen der Session.txt Datei übersprungen, wodurch der Fehler vermieden wird.