Okresowo niektórzy użytkownicy nie mogą zalogować się do serwera RDS farmy Windows Server za pośrednictwem standardowego klienta rdp z błędem:
Nie można ukończyć żądanej operacji, ponieważ usługi pulpitu zdalnego są obecnie zajęte. Spróbuj ponownie za kilka minut. Inni użytkownicy powinni nadal móc się zalogować..
Nie można wykonać zadania, które próbujesz wykonać, ponieważ Usługi pulpitu zdalnego są obecnie zajęte. Spróbuj ponownie za kilka minut. Inni użytkownicy powinni nadal móc się zalogować.
Spotkaliśmy się również z tym obrazem kilka razy: na karcie Użytkownicy w menedżerze zadań RDS hosta wielu użytkowników jest zawieszonych na sesji z nazwami (4) zamiast nazwy użytkownika i ze statusem Rozłączono.
Problem występuje we wszystkich wersjach systemu Windows Server: 2008 R2, 2012 R2, 2016 i 2019.
Błąd może wystąpić z różnych powodów:
- Błąd w usłudze pulpitu zdalnego;
- Błąd w procesie csrss.exe;
- Problem z profilem użytkownika lub usługą profsvc;
- Brak pamięci RAM lub miejsca na dysku na serwerze RDSH;
- Niepoprawne ustawienia zasad grupy.
Niestety, w tej chwili nie ma oficjalnego rozwiązania firmy Microsoft, które całkowicie rozwiązałoby problem, wszystko sprowadza się do wyeliminowania objawów.
Prawie zawsze problem rozwiązuje się, resetując sesję problemowego użytkownika i ponownie uruchamiając serwer RDS, ale w wyjątkowych sytuacjach może to nie wystarczyć. Omówmy rozwiązania, zaczynając od najlżejszych.
# 1 - Sprawdź zasoby serwera RDS
Upewnij się, że serwer ma wystarczającą ilość zasobów, ponieważ ten błąd może wystąpić z powodu braku pamięci RAM lub miejsca na dysku. Sprawdź obciążenie pamięci RAM i czy na dysku, na którym jest zainstalowany system operacyjny, jest wystarczająca ilość wolnego miejsca (przynajmniej 1 GB musi być wolne). Sprawdź także dziennik zdarzeń pod kątem krytycznych błędów RDS..
Jeśli jest wystarczających zasobów, przejdź do następnej opcji..
# 2 - Zresetuj sesję użytkownika i zakończenie zawieszonych procesów w sesji RDS
Najpierw spróbujmy znaleźć i zdecydowanie zresetować sesję użytkownika, który nie może zalogować się do serwera RDS. W menedżerze zadań na karcie Użytkownicy znajdź żądanego użytkownika i kliknij „Wyloguj” w menu kontekstowym. W większości przypadków to wystarcza, ale czasami w menedżerze zadań można znaleźć wiele rozłączonych sesji o nazwie „(4)” zamiast nazwy użytkownika. Z reguły w zawieszonej sesji występują 4 procesy:
- Proces uruchamiania serwera klienta (csrss.exe)
- Menedżer systemu Windows na pulpicie (dwm.exe)
- Aplikacja logowania do systemu Windows (winlogon.exe)
- Interfejs użytkownika logowania do systemu Windows
Przede wszystkim spróbuj zakończyć wszystkie zawieszone sesje za pomocą (4) poprzez menedżera zadań, jak opisano powyżej. Jeśli to nie pomoże, najlepiej zrestartować serwer, ale często nie ma takiej możliwości, dlatego staramy się rozwiązać problem bez ponownego uruchamiania:
- Uruchom wiersz polecenia jako administrator i wprowadź:
sesja zapytań
Pokaże wszystkich użytkowników i ich sesje na serwerze terminali. Dane wyjściowe polecenia zawierają 3 interesujące nas kolumny: SESSIONNAME, USERNAME i ID. Znajdź użytkownika (4) i odpowiadający mu identyfikator w tym przykładzie ID 2. Musimy ukończyć proces csrss.exe, który działa w tej sesji, najpierw go znajdziemy. - W wierszu polecenia wpisz:
proces zapytania / id 2
Polecenie wyświetli wszystkie procesy uruchomione w tej sesji. Musimy znaleźć proces csrss.exe i odpowiadający mu proces PID. W moim przypadku PID będzie 5140. Musimy ukończyć ten proces.. - Sprawdź menedżera zadań. Otwórz menedżera zadań, przejdź do zakładki Szczegóły i znajdź PID i potrzebny proces.Jeśli potrzebny identyfikator PID odpowiada procesowi csrss.exe, zakończ proces za pomocą menu kontekstowego i zadania Zakończ lub za pomocą wiersza polecenia:
taskkill / F / PID 5140
Należy tego dokonać z każdym użytkownikiem „(4)”, jeśli jest ich kilku.
# 3 - Zresetuj sesję użytkownika za pomocą wiersza poleceń
Jeśli nie udało się wylogować „problematycznego” użytkownika za pomocą menedżera zadań, możesz spróbować zresetować sesję użytkownika za pomocą wiersza polecenia.
- Uruchom wiersz polecenia jako administrator i wprowadź
sesja zapytań
Skopiuj NAZWĘ SESJI problematycznego użytkownika.
- Enter
zresetuj sesję
. Zamiast tego wprowadź nazwę potrzebnej sesji, jak pokazano na zrzucie ekranu
- Uruchom wiersz polecenia jako administrator i wprowadź
Należy to zrobić z każdym problematycznym użytkownikiem. Teraz możesz spróbować się zalogować, problem powinien zostać rozwiązany. Jeśli masz możliwość zrestartowania serwera, lepiej to zrobić.
# 4 - Sprawdź ustawienia licencjonowania hosta RDS
Sprawdź, czy na hoście RDSH określono prawidłowy serwer licencyjny i typ licencji (CAL na użytkownika / CAL na urządzenie).
Wystąpił błąd „Nie można ukończyć żądanej operacji, ponieważ usługi pulpitu zdalnego są teraz zajęte”, gdy zapomniałem podać adres serwera z rolą licencjonowania usług pulpitu zdalnego po zainstalowaniu roli RDSH. W takim przypadku dwóch użytkowników nawiązało normalne połączenie, a trzeci otrzymał błąd.Adres serwera z licencjami RDS można określić:
- W ustawieniach kolekcji RDS: Zadania -> Edytuj właściwości wdrażania -> Licencjonowanie usług pulpitu zdalnego;
- Przez GPO: Użyj określonych serwerów licencji Pulpitu zdalnego (Konfiguracja komputera -> Zasady -> Szablony administracyjne -> Składniki systemu Windows -> Usługi pulpitu zdalnego -> Host sesji usług pulpitu zdalnego -> Licencjonowanie)
- Korzystanie z PowerShell (patrz artykuł „Nie ustawiono trybu licencjonowania dla serwera hosta sesji usług pulpitu zdalnego”).
# 5 - Usuń limit połączeń RDP w GPO
Za pomocą zasad grupy można ograniczyć liczbę równoczesnych połączeń RDS. Domyślnie ta zasada jest wyłączona..
Korzystając z gpresult, musisz sprawdzić, czy zasada jest włączona i jaką wartość jest w niej wskazana..
- Uruchom wiersz polecenia jako administrator i wprowadź
gpresult / H c: \ gpresult.html
- Otwórz plik gpresult.html, który znajduje się w katalogu głównym dysku C. Jest to zwykły plik .html, zaleca się otwarcie go za pomocą przeglądarki Internet Explorer, ponieważ może on nie być wyświetlany poprawnie w innych przeglądarkach;
- W dziale Konfiguracja komputera -> Szablony administracyjne -> Składniki systemu Windows -> Usługi pulpitu zdalnego -> Host sesji usług pulpitu zdalnego \ Połączenia znajdź Ogranicz liczbę połączeń, lub w wyszukiwaniu na stronie wpisz Ogranicz liczbę połączeń.
- Uruchom wiersz polecenia jako administrator i wprowadź
Jeśli nie ma takiej zasady, nie ma ona zastosowania i nie ma ograniczeń co do liczby jednoczesnych połączeń. Jeśli istnieje zasada i wskazana jest liczba jednoczesnych połączeń, zmień jej wartość na potrzebną liczbę. Możesz zmienić zasady grupy za pomocą przystawki gpedit.msc, jeśli zasada jest skonfigurowana za pomocą GPO domeny, edytuj odpowiednią zasadę za pomocą gpmc.msc. Po edycji zasad nie zapomnij wpisać w wierszu polecenia gpupdate / force
do natychmiastowego egzekwowania polityki.
# 6 - Rozwiązania niestandardowe: jeśli wszystko inne zawiedzie
Jeśli masz wystarczającą ilość zasobów, w dzienniku nie ma błędów, nie można ponownie uruchomić, a resetowanie sesji z jakiegoś powodu nie pomogło, powinieneś wypróbować następujące opcje:
- Sprawdź, czy tryb Drain nie jest włączony na serwerze RDS, co uniemożliwia użytkownikom nawiązywanie nowych połączeń RDP:
chglogon.exe / QUERY
. Jeśli polecenie zwróci komunikat „Nowe logowania użytkowników są WYŁĄCZONE, ale ponowne połączenia z istniejącymi sesjami są WŁĄCZONE”, Wyłącz tryb drenażu:chglogon.exe / enable
- W ustawieniach połączenia RDP (mstsc.exe) na kliencie mstsc usuń zaznaczenie pola wyboru „Trwałe buforowanie bitmapy”;
- Uruchom ponownie usługę RDS. W wierszu polecenia z uprawnieniami administratora wpisz
usługa netto stop
iusługa początkowa netto
. Lub uruchom ponownie usługę zdalnie za pomocą PowerShell:Get-Service termservice -ComputerName msk-rds1 | Uruchom ponownie usługę
- Wymuś procesy zabijania tstheme.exe;
- Zalecane jest zastosowanie wszystkich najnowszych aktualizacji dla twojej wersji systemu Windows, skorzystaj ze standardowych narzędzi aktualizacji.
- Sprawdź, czy tryb Drain nie jest włączony na serwerze RDS, co uniemożliwia użytkownikom nawiązywanie nowych połączeń RDP: