Ich suche nach Ideen zum Trennen, Abmelden oder Zurücksetzen einer Benutzersitzung auf einem 2008-Terminalserver (da der Benutzer nicht angemeldet werden kann, da er vollständig gesperrt ist). Dies ist eine Produktionsumgebung, daher kommt ein Neustart des Servers oder eine systemweite Aktion derzeit nicht in Frage. Gibt es PowerShell-Tricks, die uns dabei helfen?
Wir haben versucht, die Verbindung zu trennen, den Benutzer abzumelden und die Sitzung zurückzusetzen sowie auch die Sitzungsprozesse zu beenden, und zwar direkt vom selben Terminalserver (vom Task-Manager, Terminaldienste-Manager und vom Ressourcenmonitor), ohne Ergebnisse.
Hilfe!
UPDATE: Wir haben den Server letztendlich neu gestartet, da keine anderen Versuche, die wir uns vorstellen konnten, erfolgreich waren. Ich lasse diese Frage offen und hoffe, dass jemand mehr Informationen zu diesem einen Problem und den möglichen Korrekturen hat
Antworten:
Um dieses Problem zu lösen, musste ich alle Prozesse unter dem gesperrten Konto im Task-Manager beenden. Anschließend konnte ich mich einfach von diesem Konto (von einem Administratorkonto) abmelden.
Der Benutzer konnte sich dann wieder unter dem Konto anmelden.
Es war kein Neustart erforderlich und es musste keine Software von Drittanbietern heruntergeladen werden.
quelle
csrss.exe
,dwm.exe
,LoginUI.exe
, undwinlogon.exe
. Ich dachte, dass das Tötenwinlogon.exe
einen BSOD auslösen würde…Ich möchte mitteilen, wie ich das Konto zurückgesetzt habe, ohne den Server neu starten zu müssen. Zunächst müssen Sie Administratorzugriff auf den Server haben. Ich verwende die folgende Anmeldeoption : mstsc / v: servername / console / admin, um auf den Server zuzugreifen. Gehen Sie dann in "Windows Taks Manager" zur Registerkarte Benutzer und klicken Sie mit der rechten Maustaste auf das Konto, das Sie "Abmelden" möchten, und wählen Sie "Abmelden". Dies sollte die von diesem Konto verwendete gesperrte Sitzung freigeben.
quelle
Die einfache Antwort besteht darin, eine Eingabeaufforderung mit erhöhten Rechten auszuführen und "Taskmgr" einzugeben. Anschließend können Sie sich über die Registerkarte USERS von den Sitzungen abmelden. Es wird nicht funktionieren, ohne in der gehobenen Sitzung zu sein.
quelle
Sie können eine Cmd starten, eine Abfragesitzung durchführen , die ID der abzubrechenden Sitzung überprüfen und dann eine Rücksetzsitzung durchführen . Wenn Sie beispielsweise bei einer Abfragesitzung feststellen, dass der Sitzungsname rdp-tcp # 1 der Name ist, den Sie beenden möchten, können Sie die Rücksetzsitzung rdp-tcp # 1 ausführen und diesen beenden .
quelle
reset session 9
diesen Befehl ausführe , hängt er nur. Meine Sitzung weiterhin die vier Prozesse ohne aktiv erscheinen laufen müssen:crss.exe
,dwm.exe
,LogonUI.exe
, undwinlogon.exe
. i.imgur.com/cFM62RA.png undquery session 9
AusgängeNo User exists for 9
.Ich nehme an, das gleiche ist heute auf meinem Win2008R2-Terminalserver passiert. Folgende Symptome traten auf: 1. Er rief mich mit der Meldung an, dass die Verbindung nur für immer besteht. Er ist nur ein einfacher Benutzer, daher kann ich keine detaillierte Problembeschreibung erwarten. 2. Ich habe versucht, mich abzumelden / die Sitzung zurückzusetzen (was normalerweise in diesen Fällen hilft) - hat nicht funktioniert. Die Sitzung bleibt in der Liste mit dem Status "Nicht verbunden" hängen. 3. Versucht, alle Prozesse für diesen Benutzer zu beenden - hat nicht geholfen. Sitzung bleibt bestehen und weigert sich, getötet zu werden.
Lösung: Verbinden Sie sich als Benutzer (melden Sie sich mit Ihren Anmeldeinformationen an, wenn Sie sein Kennwort zurücksetzen oder eine Art Remote-Hilfe verwenden können, um zu sehen, was auf seinem Computer passiert) und sehen Sie, was im Anmeldefenster passiert. Beim Herstellen der Verbindung klickte ich auf die Schaltfläche "Details" des RDP-Clients - und hier war es eine Fehlermeldung, die besagte, dass Winlogon etwas falsch gemacht hat. Sie wartete darauf, dass der Benutzer auf die Schaltflächen "Wiederholen / Ignorieren / etc" klickte, und da dies die allmächtige Winlogon ist, die es verursachte all das seltsame Verhalten.
ps Ich konnte keine Möglichkeit finden, eine Sitzung wirklich zu erzwingen :(
quelle
Wir hatten gerade ein ähnliches Problem mit unserem Windows Server 2008 R2-Remotedesktopserver. In der Benutzersitzung wurde beim Anzeigen von RDS Manager "Aktiv" angezeigt, es wurde jedoch nicht die zugehörige Sitzungs-ID # oder das verbundene Gerät angezeigt (beide waren leer).
Alle oben genannten Tricks konnten das Problem nicht beheben. Beim Herstellen einer Verbindung als der betreffende Benutzer wurde eine Fehlermeldung zurückgegeben, die besagte, dass der Terminalserver ausgelastet war, und dass Sie es später erneut versuchen oder sich an den Administrator wenden sollten.
Wir haben auch den Server neu gestartet.
quelle
Ich hatte das gleiche Problem in Windows Server 2016. Der Benutzer konnte sich nicht anmelden.
Daher habe ich die folgenden Schritte ausgeführt, um die verwaiste Sitzung zu trennen:
zeige aktive Sessions und töte sie
mit der Sitzungs-ID (7) von 1. Ich habe versucht, diese Sitzung mit einer der beiden Zurücksetzungssitzungen 7 abzubrechen (zur Info: rwinsta ist ein Alias für die Zurücksetzungssitzung).
Es hat für eine Sitzung funktioniert, aber beim nächsten Mal hatte es einfach keine Auswirkung. Deshalb habe ich den Task-Manager und die Registerkarte Benutzer geöffnet. Dort finden Sie eine erweiterbare Liste, die jedem Remotedesktopbenutzer zugewiesen ist - eine Liste enthielt keinen Benutzernamen und zeigte nur 4 ausgeführte Aufgaben.
Ich habe das Offensichtliche ausprobiert: Den Benutzer abmelden. Ohne Wirkung.
versucht, den Benutzer abzumelden
Nach Schritt / Versuch 4 wurde sogar die letzte abgestürzte Sitzung beendet und der Benutzer konnte sich erneut anmelden
quelle
winlogon.exe
aber ich bin nicht sicher über andere wieLoginUI.exe
,csrss.exe
, unddwm.exe
.Es kann sich lohnen, zu überprüfen, ob der Benutzer kein Popup-Feld für Anmeldeinformationen hinter dem Remotedesktopfenster mit der Tastenkombination Alt + hat.
Ein Mitarbeiter hatte das gleiche Problem; konnte sich nicht abmelden oder zurücksetzen, und alle seine Prozesse wurden manuell heruntergefahren. Als ich versuchte, auf die GUI für das System zuzugreifen, von dem aus er Remoting durchführte, fand ich ein Anmeldeinformationsfeld, das sich hinter der Remotesitzung verbarg.
quelle
Ich hätte die gleiche Situation: ein Windows Server 2008 R2 mit Remotedesktopdiensten, eine RDP-Verbindung, die eingerichtet wurde, um Benutzer abzumelden, nachdem die Sitzung 3 Stunden lang inaktiv war oder getrennt wurde, und dennoch blieben einige Sitzungen gesperrt. Ich habe versucht, sie mit Remote Desktop Manager und qwinsta / quser abzumelden, ohne Erfolg.
So habe ich es gelöst:
qwinsta
.winlogon.exe
für die unterbrochene Sitzung mit ermitteltquery process /ID:yourid
.taskkill /f /PID yourPID
.Weiter so. Ich möchte sonst eine Lösung finden, damit dies nicht passiert.
quelle
Was bei mir funktioniert hat war:
quelle
Ich hatte dieses Problem mit gesperrten Remotedesktopanwendungsbenutzern. Ich habe dieses Powershell-Skript geschrieben, um eine geplante Aufgabe auszuführen und Benutzer abzumelden, die länger als 2 Minuten als nicht verbunden angezeigt wurden. Die einzige Änderung, die erforderlich ist, ist der SERVERNAME, den ich zum Ausschließen des Remotedesktopbrokerservers festgelegt habe. Sie können jedoch jeden beliebigen oder gar keinen Server ausschließen.
Mein Skript wurde übrigens für Windows Server 2012 R2 geschrieben ...
Das Skript macht das:
Für mich geht das! Ich hoffe es hilft jemand anderem! :)
Oder wenn Sie eine Version bevorzugen, mit der Sie sehen können, was auf dem Bildschirm passiert:
quelle
Erstellen Sie eine Datei im Editor und nennen Sie sie findsession.cmd. Fügen Sie den Befehl Query Session / server: Servername ein | ein finde / i "% 1" und speichere in einem Verzeichnis. Erstellen Sie eine weitere Datei mit dem Namen resetsession.cmd und geben Sie den Befehl Sitzung zurücksetzen% 1 / Server:% 2 ein und speichern Sie sie.
Wechseln Sie an einer Eingabeaufforderung in das Verzeichnis, in dem Sie diese Dateien gespeichert haben, und geben Sie den Benutzernamen findesession ein (Login des Benutzers, den Sie suchen). Drücken Sie die Eingabetaste und Sie sollten die Anmelde- und Sitzungs-ID sehen. Geben Sie resetsession.cmd ID Servername ein, und die Sitzung wird zurückgesetzt. Ich benutze dies täglich und es ist super schnell, um Benutzer zu finden und ihre Sitzungen zurückzusetzen.
quelle
qwinsta
.taskkill /FI "SESSION eq 1" /F
Beenden Sie alle Prozesse in der Sitzung , vorausgesetzt, die von qwinsta zurückgegebene Sitzungs-ID, die Sie beenden wollten, war 1.Dies funktionierte auf Server 2012 Version 6.2 Build 9200, ich würde erwarten, dass es auf allen Windows-Versionen funktioniert.
quelle
Dieses Power-Shell-Skript hat bei mir funktioniert, es gibt sogar eine schöne Protokolldatei. Ich habe es von hier bekommen. : Ich hoffe, das hilft jemand anderem, da die anderen Antworten viele Voraussetzungen hatten und / oder bei mir nicht funktionierten.
Bearbeiten:
Ich habe dieses Skript ursprünglich verwendet, um alle "getrennten" Sitzungen abzumelden und zu schließen. Wir haben einige Terminalserveranwendungen mit vielen Benutzern und eingeschränkten Lizenzen. Die getrennten Sitzungen blieben sehr lange offen und blieben manchmal auf unbestimmte Zeit geöffnet. Dies führte dazu, dass nicht verwendete Sitzungen einen Teil der Lizenzen in Anspruch nahmen und andere Benutzer keine Verbindung herstellen konnten.
Sitzungen auf einigen meiner Server zu überprüfen und zu trennen. Es arbeitet autonom,
ohne dass eine Interaktion erforderlich ist.
quelle
Möglicherweise wird noch ein Prozess ausgeführt, der den Abmeldeprozess blockiert. Überprüfen Sie die noch laufenden Prozesse für den betroffenen Benutzer. Beenden Sie dann den Vorgang nacheinander, um festzustellen, welche Ursache das Problem ist.
Überprüfen Sie auch den
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Registrierungsschlüssel, mit dem nur benötigte Prozesse gestartet werden. In 64bit ist esHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
.quelle
Sie können das Tool " Process Explorer " von Microsoft herunterladen und damit Ihr Problem lösen. Wenn Sie die Sitzungs-IDs haben, können Sie ihre jeweiligen Prozesse finden. Wenn eine Benutzersitzung getrennt wird, können Sie den Prozess mit Process Explorer beenden.
quelle
Nicht genau die gleiche Umgebung (wir haben 2012r2), aber ein Neustart des Verwaltungsdienstes für virtuelle Hyper-V-Maschinen (VMMS) hat die Verbindung für mich freigegeben.
quelle
Sie müssen auf Prozess klicken und Prozess von allen Benutzern anzeigen, um die Verbindung zu trennen.
Warum erstellen Sie keine Sitzungsrichtlinie unter Konfiguration des Remotedesktop-Sitzungshosts? Beenden Sie die getrennte oder inaktive Sitzung nach einem bestimmten Intervall.
quelle
Mein Fix: Auf einem anderen Netzwerkserver, den ich über das Computerverwaltungs-Tool mit dem Problemserver verbunden habe, habe ich in offenen Sitzungen mit der rechten Maustaste auf jede geöffnete Datei geklickt und sie geschlossen, und konnte dann über mstsc eine Verbindung herstellen
quelle
Sie können jederzeit Powershell von Ihrem lokalen Computer aus und aus der Ferne verwenden
quelle
Unglücklicherweise. Meine Benutzersitzung wurde getrennt. Der Task-Manager hat keine Prozesse angezeigt, die als Benutzer ausgeführt werden. Ich konnte den Benutzer nicht vom Task-Manager abmelden. Ich habe versucht, den Befehl zum Zurücksetzen der Sitzungs-ID auszuführen, und bin am Ende ebenfalls eingefroren. Am Ende musste ich mich in einer anderen Sitzung als Administrator anmelden, den Account löschen und einen neuen erstellen.
quelle
Haben Sie versucht, den Benutzer vom Remotedesktopdienste-Manager abzumelden? Gehen Sie zu Verwaltung -> Remotedesktopdienste -> Remotedesktopdienste-Manager und melden Sie sich von der Sitzung ab. Es könnte klappen.
quelle
Gehen Sie zum Startfenster und klicken Sie auf Ihren Namen
Siehe Beispiel hier
quelle