Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W niektórych warunkach administrator może wymusić wylogowanie wszystkich użytkowników aktualnie zalogowanych na serwerze pulpitu zdalnego. Można to zrobić przy użyciu pliku wsadowego lub skryptu programu PowerShell.
Ostrzeżenie
Wykonanie poniższej procedury spowoduje wylogowanie wszystkich użytkowników aktualnie zalogowanych na serwerze pulpitu zdalnego. Może to spowodować utratę niezapisanych danych. Z tego powodu zaleca się skrajną ostrożność.
Oryginalny numer KB: 259436
Korzystanie z programu PowerShell
Aby wylogować się ze wszystkich sesji użytkownika, uruchom następujące polecenia cmdlet programu PowerShell w brokerze połączeń:
$sessions = Get-RDUserSession
foreach($session in $sessions)
{
Invoke-RDUserLogoff -HostServer $session.HostServer -UnifiedSessionID $session.UnifiedSessionId -Force
}
Aby wylogować się tylko z rozłączonych sesji użytkownika, uruchom następujące polecenia cmdlet programu PowerShell w brokerze połączeń:
$sessions = Get-RDUserSession | ? {$_.SessionState -eq "STATE_DISCONNECTED"}
foreach($session in $sessions)
{
Invoke-RDUserLogoff -HostServer $session.HostServer -UnifiedSessionID $session.UnifiedSessionId -Force
}
Używanie pliku wsadowego
Umieść następujące informacje w pliku wsadowym (.bat):
query session >session.txt
for /f "skip=1 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
Ten plik wsadowy może być uruchamiany w dowolnym momencie administrator chce wymusić wylogowanie wszystkich użytkowników, którzy nie są zalogowani do konsoli serwera usług pulpitu zdalnego.
Zapytanie to wielofunkcyjne polecenie znalezione w środowisku serwera usług pulpitu zdalnego. W takim przypadku sesja zapytania tworzy listę wszystkich sesji uruchomionych na serwerze pulpitu zdalnego wraz z numerami identyfikatorów sesji. W pliku wsadowym dane wyjściowe są przekierowywane do pliku tekstowego. Instrukcja FOR analizuje następnie każdy wiersz pliku tekstowego, pomijając pierwszy wiersz i wyszukując numer identyfikatora sesji znajdujący się w trzeciej kolumnie. Następnie umieszcza tę zmienną w wylogowywane, co powoduje wylogowanie tej sesji.
Podczas uruchamiania tego pliku wsadowego nie jest rzadko wyświetlany komunikat o błędzie. Jeśli użytkownik jest zalogowany do konsoli serwera usług pulpitu zdalnego, zostanie wygenerowany następujący komunikat o błędzie:
Could not logoff session ID 0 from session Console, Error code 5
Error [5]: Access is denied.
Jest to spowodowane ograniczeniem Logoff
polecenia. Nie może wymusić wylogowania sesji konsoli. Obejściem tego problemu byłoby zmodyfikowanie pliku wsadowego do odczytu:
query session >session.txt
for /f "skip=2 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
Powoduje to pominięcie pierwszych dwóch wierszy pliku Session.txt, co pozwala uniknąć błędu.