Szukam pomysłów, jak rozłączyć, wylogować się lub zresetować sesję użytkownika na serwerze terminali w 2008 r. (Nie mogę się zalogować jako użytkownik, ponieważ jest on całkowicie zamknięty). Jest to środowisko produkcyjne, więc ponowne uruchomienie serwera lub zrobienie czegoś w całym systemie nie wchodzi w rachubę. Jakieś sztuczki Powershell, które nam w tym pomogą?
Próbowaliśmy się rozłączyć, wylogować użytkownika i zresetować sesję, a także zabić procesy sesji, bezpośrednio z tego samego serwera terminali (od menedżera zadań, Menedżera usług terminalowych i Monitora zasobów) bez rezultatów.
Wsparcie!
AKTUALIZACJA: Ostatecznie zrestartowaliśmy serwer, ponieważ żadne inne próby, o których moglibyśmy pomyśleć, nie zadziałały. Pozostawię to pytanie otwarte, mając nadzieję, że ktoś może uzyskać więcej informacji na temat tego jednego problemu i jego potencjalnych poprawek
Odpowiedzi:
Rozwiązaniem tego samego problemu było dla mnie wyeliminowanie wszystkich procesów uruchomionych na zablokowanym koncie z poziomu Menedżera zadań, a następnie mogłem po prostu wylogować się z tego konta (z konta administratora).
Użytkownik mógł następnie zalogować się ponownie na koncie.
Ponowne uruchomienie nie było konieczne i nie trzeba było pobierać oprogramowania innych firm.
źródło
csrss.exe
,dwm.exe
,LoginUI.exe
, iwinlogon.exe
. Myślałem, że zabiciewinlogon.exe
wywoła BSOD…Chcę podzielić się tym, jak zresetowałem konto bez konieczności ponownego uruchamiania serwera. Przede wszystkim musisz mieć dostęp administratora do serwera. Korzystam z następującej opcji logowania: mstsc / v: nazwa_serwera / console / admin w celu uzyskania dostępu do serwera. Następnie w „Windows Taks Manager” przejdź do zakładki Użytkownicy i przejdź prawym przyciskiem myszy do konta, które chcesz „Wylogować”, wybierz Wyloguj. To powinno zwolnić zablokowaną sesję używaną przez to konto.
źródło
Prostą odpowiedzią jest uruchomienie wiersza polecenia z podwyższonym poziomem uprawnień i wpisanie „Taskmgr”, a następnie pozwoli wylogować się z sesji na karcie UŻYTKOWNICY. Nie będzie działać bez udziału w podwyższonej sesji.
źródło
Możesz uruchomić polecenie cmd, wykonać sesję zapytania , sprawdzić identyfikator sesji, która ma zostać zabita, a następnie wykonać sesję resetowania . Na przykład, jeśli w przypadku sesji zapytania otrzymujesz nazwę sesji rdp-tcp # 1, którą chcesz zabić, możesz wykonać sesję resetowania rdp-tcp # 1 i zabić ją.
źródło
reset session 9
to polecenie po prostu się zawiesza. Moja sesja nadal ma cztery procesy uruchomione bez pojawiające się być aktywnycrss.exe
,dwm.exe
,LogonUI.exe
, iwinlogon.exe
. i.imgur.com/cFM62RA.png i danequery session 9
wyjścioweNo User exists for 9
.Przypuszczam, że to samo stało się dzisiaj na moim serwerze terminali Win2008R2. Symptomy to: 1. Zadzwonił do mnie z komunikatem „połączenie” zawiesza się na zawsze ”. Jest tylko prostym użytkownikiem, więc nie mogę się spodziewać szczegółowego opisu problemu. 2. Próbowano wylogować się / zresetować sesję (co zwykle pomaga w takich przypadkach) - nie działało. Sesja nadal zawiesza się na liście ze statusem „rozłączony”. 3. Próbowałem zabić wszystkie procesy dla tego użytkownika - nie pomogło. Sesja trwa i nie chce zostać zabita.
Rozwiązaniem było - połącz się jako użytkownik (zaloguj się przy użyciu jego poświadczeń, jeśli możesz zresetować hasło lub skorzystaj z pomocy zdalnej, aby zobaczyć, co dzieje się na jego komputerze) i zobacz, co dzieje się w oknie logowania. Podczas łączenia kliknąłem przycisk „szczegóły” klienta RDP - i oto był komunikat o błędzie, że winlogon zrobił coś złego, czekał na kliknięcie przez użytkownika przycisku „spróbuj ponownie / zignoruj / etc”, a ponieważ był to wszechmocny login wszystkie te dziwne zachowania.
ps Nie mogłem znaleźć żadnego sposobu, aby naprawdę zmusić do zabicia sesji :(
źródło
Właśnie mieliśmy podobny problem z naszym serwerem pulpitu zdalnego Windows Server 2008 R2. Sesja użytkownika pokazała „Aktywny”, gdy patrzy się na RDS Manager, ale nie ma powiązanego identyfikatora sesji # ani podłączonego urządzenia (oba były puste).
Wszystkie powyższe wskazówki nie rozwiązały problemu. Podczas nawiązywania połączenia jako użytkownik, o którym mowa, wrócił komunikat o błędzie informujący, że serwer terminali był zajęty, i spróbuj ponownie później lub skontaktuj się z administratorem.
Skończyło się również na ponownym uruchomieniu serwera.
źródło
Miałem ten sam problem w systemie Windows Server 2016. Użytkownik nie mógł się zalogować.
Próbowałem więc wykonać następujące kroki, aby odłączyć osieroconą sesję:
pokaż aktywne sesje i zabij je
z identyfikatorem sesji (7) od 1. Próbowałem zabić tę sesję za pomocą sesji resetowania 7 ( fyi : rwinsta jest aliasem sesji resetowania)
działało przez jedną sesję, ale następnym razem po prostu nie miało żadnego efektu, więc otworzyłem menedżera zadań i zakładkę użytkownika. Znajdziesz tam jedną rozwijaną listę przypisaną do każdego użytkownika pulpitu zdalnego - jedna lista nie zawierała nazwy użytkownika i pokazywała tylko 4 uruchomione zadania.
Próbowałem oczywistego: Wylogowanie użytkownika. Bez żadnego efektu.
próba wylogowania użytkownika
Po kroku / próbie 4 nawet ostatnia zawieszona sesja została zabita, a użytkownik mógł zalogować się ponownie
źródło
winlogon.exe
, ale jestem pewien, jak inniLoginUI.exe
,csrss.exe
idwm.exe
.Warto sprawdzić, czy użytkownik nie ma okna podręcznego poświadczeń ukrytego za oknem pulpitu zdalnego za pomocą klawiszy Alt + Tab.
Współpracownik miał ten sam problem; nie mógł się wylogować ani zresetować, a wszystkie jego procesy zostały ręcznie zamknięte. Kiedy próbowałem uzyskać dostęp do interfejsu GUI dla systemu, z którego on zdalnie się odsunął, znalazłem skrzynkę poświadczeń ukrytą za zdalną sesją.
źródło
Byłbym w tej samej sytuacji: Windows Server 2008 R2 z usługami pulpitu zdalnego, połączenie RDP skonfigurowane do wylogowywania użytkowników po sesji nieaktywnej lub rozłączonej po 3 godzinach, a niektóre sesje pozostały zablokowane. Próbowałem się wylogować za pomocą Menedżera pulpitu zdalnego i programu qwinsta / quser, ale bez powodzenia.
Oto jak to rozwiązałem:
qwinsta
.winlogon.exe
dla zawieszonej sesjiquery process /ID:yourid
.taskkill /f /PID yourPID
.Tak trzymać. W przeciwnym razie chciałbym znaleźć rozwiązanie tego problemu.
źródło
Dla mnie zadziałało:
źródło
Miałem ten problem z zablokowanymi użytkownikami aplikacji pulpitu zdalnego. Napisałem ten skrypt Powershell, aby uruchamiał się zgodnie z zaplanowanym zadaniem, aby wylogować użytkowników, którzy przez ponad 2 minuty pokazywali się jako rozłączeni. Jedyną wymaganą edycją jest NAZWA SERWERA, którą ustawiłem, aby wykluczyć Serwer Brokera usług pulpitu zdalnego, jednak możesz wykluczyć dowolny serwer, który Ci się podoba, lub wcale.
Mój skrypt został napisany dla systemu Windows Server 2012 R2, przy okazji ...
Skrypt robi to:
Mi to pasuje! Mam nadzieję, że pomoże to komuś innemu! :)
Lub jeśli wolisz wersję, którą możesz zobaczyć, co dzieje się na ekranie:
źródło
Utwórz plik w notatniku i nazwij go findsession.cmd. Wpisz polecenie Query Session / server: servername | znajdź / i "% 1" i zapisz w katalogu. Utwórz kolejny plik o nazwie resetsession.cmd i wprowadź polecenie Resetuj sesję% 1 / server:% 2 i zapisz.
W wierszu polecenia przejdź do katalogu, w którym zapisałeś te pliki, i wpisz findsession nazwa użytkownika (login użytkownika, którego próbujesz znaleźć). Naciśnij Enter, a powinieneś zobaczyć login i identyfikator sesji. Wpisz resetsession.cmd ID Nazwa serwera, aby zresetować tę sesję. Używam tego codziennie i jest super szybki do znajdowania użytkowników i resetowania ich sesji.
źródło
qwinsta
.taskkill /FI "SESSION eq 1" /F
, zakładając, że identyfikator sesji, który chcesz zakończyć, zwrócony z qwinsta to 1.To działało na Server 2012 wersja 6.2 Build 9200, spodziewałbym się, że będzie działać na wszystkich wersjach systemu Windows.
źródło
Ten skrypt power-shell działał dla mnie, daje nawet ładny plik dziennika. Mam to stąd. : Mam nadzieję, że pomoże to komuś innemu, ponieważ inne odpowiedzi miały wiele warunków wstępnych i nie działały dla mnie.
Edycja:
Pierwotnie użyłem tego skryptu, aby się wylogować i zamknąć wszystkie sesje „rozłączone”. Mamy kilka aplikacji serwera terminali z wieloma użytkownikami i ograniczonymi licencjami. Odłączone sesje pozostawały otwarte przez bardzo długi czas, a czasem pozostawały otwarte przez czas nieokreślony. Spowodowało to nieużywane sesje, które zajęłyby niektóre licencje, a w rezultacie inni użytkownicy nie mogliby się połączyć.
rozłączać sesje na niektórych moich serwerach. Działa autonomicznie,
bez konieczności jakiejkolwiek interakcji.
źródło
Być może nadal działa proces blokujący proces wylogowywania. Sprawdź nadal działające procesy dla dotkniętego użytkownika. Następnie zabijaj proces jeden po drugim, aby zobaczyć, która z nich powoduje problem.
Sprawdź także
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
klucz rejestru, który tylko potrzebne Procesy są uruchomione. W wersji 64-bitowej jestHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
.źródło
Możesz pobrać narzędzie „ Process Explorer ” z firmy Microsoft i użyć go do rozwiązania problemu. Jeśli masz identyfikatory sesji, możesz znaleźć odpowiednie procesy. Następnie, jeśli sesja użytkownika zostanie rozłączona, możesz zabić proces za pomocą Process Explorer.
źródło
Niezupełnie to samo środowisko (mamy 2012r2), ale ponowne uruchomienie usługi zarządzania maszyną wirtualną Hyper-V (VMMS) zwolniło połączenie dla mnie.
źródło
Musisz kliknąć na proces i pokazać proces wszystkim użytkownikom, a wtedy będziesz mógł się rozłączyć.
dlaczego nie utworzyć zasad sesji w ramach konfiguracji hosta sesji pulpitu zdalnego i zakończyć sesję rozłączoną lub bezczynną po określonym czasie.
źródło
Moja poprawka: w innym serwerze sieciowym połączyłem się z serwerem problemowym za pomocą narzędzia do zarządzania komputerem, w otwartych sesjach kliknąłem prawym przyciskiem myszy i zamykałem każdy otwarty plik, a następnie mogłem połączyć się za pomocą mstsc
źródło
zawsze możesz użyć programu PowerShell z lokalnego komputera i zrobić to zdalnie
źródło
Niestety. Moja sesja użytkownika została rozłączona. Menedżer zadań nie pokazał żadnych procesów uruchomionych jako użytkownik. Nie mogłem wylogować użytkownika z menedżera zadań. Próbowałem zresetować polecenie id sesji i również się zawiesiłem. Musiałem skończyć z zalogowaniem się w innej sesji jako administrator, usunięcie konta i ponowne utworzenie nowego.
źródło
Czy próbowałeś wylogować użytkownika z Menedżera usług pulpitu zdalnego? Przejdź do Narzędzia administracyjne -> Usługi pulpitu zdalnego -> Menedżer usług pulpitu zdalnego i wyloguj się z sesji. To może działać.
źródło
Przejdź do okna startowego i kliknij swoje imię
Zobacz próbkę tutaj
źródło