Wystąpił błąd wewnętrzny podczas połączenia RDP

W obliczu dziwnej wiadomości „Wystąpił błąd wewnętrzny/ Wystąpił błąd wewnętrzny„Kiedy RDP jest podłączony do niedawno wdrożonego serwera RDSH w systemie Windows Server 2012 R2 z Windows 10. Jeszcze wczoraj połączenie RDP z serwerem działało dobrze, ale po zainstalowaniu i skonfigurowaniu aplikacji RemotApp i ponownym uruchomieniu serwera nie mogę zdalnie połączyć się z jego pulpitem. Wygląda na to, że Usługi pulpitu zdalnego działają, ponieważ podczas łączenia wymagane jest hasło użytkownika.

Jak rozumiem, komunikat konsoli RDP „Wystąpił błąd wewnętrzny” może pojawić się w różnych przypadkach i mieć zupełnie inne przyczyny związane zarówno z serwerem pulpitu zdalnego, jak i klientem. W tym artykule próbowałem zebrać wszystkie rozwiązania i scenariusz, który mi pomógł.

Przede wszystkim upewnij się, że port RDP 3389 jest dostępny na serwerze RDS i że połączenie nie jest blokowane przez zaporę (Test-NetConnection rdsserver -port 3389).

Po przestudiowaniu dzienników połączeń RDP na zdalnym serwerze RDS nie zauważyłem żadnych konkretnych błędów. Dziennik Microsoft-Windows-RemoteDesktopServices-RdpCoreTS / Operational pokazuje, że tworzona jest sesja RDP:

Serwer zaakceptował nowe połączenie TCP od klienta 10.10.1.60:64379.
Utworzono połączenie RDP-Tcp # 3

Ale potem, bez żadnego błędu RDP, sesja kończy się:

Serwer zakończył główne połączenie RDP z klientem.
Przyczyną rozłączenia jest 0

Sprawdź status usług pulpitu zdalnego na serwerze zdalnym i zrestartuj go. Możesz zdalnie zrestartować usługę za pomocą konsoli Services.msc (Połącz z innym komputerem), ale o wiele łatwiej jest sprawdzić status usługi i zrestartować ją za pomocą PowerShell:

(Get-Service TermService -ComputerName msk-ts1) .status

Usługa jest uruchomiona (uruchomiona), uruchom ją ponownie:

Get-Service TermService -ComputerName msk-ts1 | Restart-Service -force -verbose

Ale to nie rozwiązało problemu.

Jakie inne rozwiązania problemu udało mi się znaleźć w sieci:

  1. Jeśli CryptoPRO jest zainstalowany na zdalnym serwerze, może być źródłem problemów z połączeniem rdp. Spróbuj wyłączyć weryfikację kontroli integralności plików (kontrole sum kontrolnych) w CryptoPro przez rejestr. Przejdź do oddziału rejestru HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ CProIntegrity i zmień wartość parametru Tryb kontrolny na 0. Uruchom ponownie serwer.
  2. Jeśli w dzienniku zdarzeń TerminalServices-RemoteConnectionManager napotkasz zdarzenie o identyfikatorze zdarzenia 1057 (Serwer hosta sesji usług pulpitu zdalnego nie utworzył nowego certyfikatu z podpisem własnym, który będzie używany do uwierzytelniania serwera sesji usług pulpitu zdalnego w połączeniach SSL), przejdź do katalogu C: \ ProgramData \ Microsoft \ Crypto \ RSA, zmień nazwę folderu Machinekeys w Machinekeys_bak i ponownie uruchom usługę TermService.
  3. Znalazłem również informację, że problem RDP „Wystąpił błąd wewnętrzny” wystąpił w systemie Windows 10 1809, jeśli zasady są włączone na komputerze zdalnym Skonfiguruj kodowanie sprzętowe H.264 / AVC dla połączeń pulpitu zdalnego (znajduje się w sekcji GPO: Konfiguracja komputera -> Szablony administracyjne -> Składniki systemu Windows -> Usługi pulpitu zdalnego -> Host sesji pulpitu zdalnego -> Środowisko sesji zdalnej). Aby rozwiązać ten problem, wystarczy wyłączyć protokół UDP dla RDP, tworząc w gałęzi rejestru HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows NT \ Terminal Services \ Client parametr fClientDisableUDP z wartością 1.

Żaden z powyższych scenariuszy nie miał zastosowania w moim przypadku. Przypadkowo odkryłem, że z innych komputerów nie ma problemu z połączeniem z tym serwerem RDS. Oznacza to, że problem dotyczy tylko mojego komputera, a nie serwera.

Wyczyściłem historię połączeń RDP w oddziale HKEY_CURRENT_USER \ Software \ Microsoft \ Terminal Server Client \ Servers i opróżniłem pamięć podręczną RDP w katalogu C: \ Users \% Nazwa użytkownika% \ AppData \ Local \ Microsoft \ Terminal Server Client \ Cache (przed odinstalowaniem zamknij wszystkie uruchomione sesje mstsc.exe):

del "C: \ Users \% Nazwa użytkownika% \ AppData \ Local \ Microsoft \ Terminal Server Client \ cache"

Następnie ponownie uruchomiłem komputer i błąd połączenia RDP zniknął!