Udostępnij za pośrednictwem


Serwer zawiesza się lub logowanie użytkownika działa wolno podczas nawiązywania połączenia z systemem Windows Server 2012 R2 przy użyciu protokołu RDP

Ten artykuł zawiera rozwiązanie problemu polegającego na tym, że komputer zawiesza się lub logowanie użytkownika działa wolno podczas nawiązywania połączenia z komputerem przy użyciu protokołu RDP (Remote Desktop Protocol).

Oryginalny numer KB: 4021856

Symptomy

Podczas tworzenia połączenia RDP z komputerem z systemem Windows Server 2012 R2 komputer zawiesza się.

W innych przypadkach mogą pojawić się nowe logowania użytkowników są spowalniane do stopnia, w którym się zawieszają. Opóźnienie może również wystąpić przed wprowadzeniem poświadczeń przez użytkownika.

Przyczyna

Ten problem występuje z powodu stanu zakleszczenia obejmującego usługi pulpitu zdalnego (RDS) (termsrv.dll), lsass (kerberos) i przekierowanie. Zakleszczenie występuje, gdy usługi usług pulpitu zdalnego próbują załadować dane konfiguracji użytkownika, wydając zdalne wywołania rejestru do kontrolera domeny.

Gdy występują powolne lub zawieszające się logowania, usługa RDS wykonuje wywołania interfejsu API do kontrolera domeny, a runda dla tych wywołań powoduje znaczne opóźnienia. Może się to zdarzyć z następujących powodów:

  • Link sieciowy do kontrolera domeny jest powolny, zatłoczony i widzi utratę ramek, a znaczący czas poświęca się na ponawianie prób w celu transferu danych.
  • Kontroler domeny napotyka lokalne problemy z wydajnością i reaguje na żądania powoli.

Rozwiązanie

Teraz istnieje możliwość wyłączenia żądań kontrolera domeny podczas logowania użytkownika. Pozwala to uniknąć okna dla martwej blokady i rozwiązuje problemy z wydajnością.

W systemie Windows Server 2012 R2 utwórz wpis rejestru fQueryUserConfigFromLocalMachine zgodnie z poniższymi krokami.

Ważne

Należy rozważnie wykonywać czynności podane w tej sekcji. Niepoprawne zmodyfikowanie rejestru może być przyczyną poważnych problemów. Przed zmodyfikowaniem rejestru należy utworzyć jego kopię zapasową, aby móc przywrócić rejestr na wypadek problemów.

Aby wprowadzić zmianę rejestru, wykonaj następujące kroki:

  1. Uruchom Edytor rejestru. (Naciśnij logo systemu Windows + R, wpisz regedit.exe w polu Otwórz , a następnie kliknij przycisk OK.

  2. W Edytorze rejestru znajdź i kliknij jeden z następujących podklucza rejestru:

    • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Terminal Services
    • HKEY _LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\<Connection Name>

    Uwaga 16.

    Domyślnie wartość pola <Nazwa> połączenia to RDP-Tcp. Tę wartość protokołu RDP-Tcp można zmienić lub skonfigurować na inną.

    Zrzut ekranu przedstawiający sposób konfigurowania protokołu RDP-Tcp.

  3. W menu Edycja wybierz pozycję Nowy, a następnie wybierz pozycję Wartość DWORD.

  4. Wpisz fQueryUserConfigFromLocalMachine.

  5. Naciśnij i przytrzymaj (lub kliknij prawym przyciskiem myszy fQueryUserConfigFromLocalMachine, a następnie wybierz polecenie Modyfikuj.

  6. W polu Dane wartości wpisz 1, a następnie wybierz przycisk OK.

  7. Zamknij Edytor rejestru.

Możesz również przeprowadzić uaktualnienie do systemu Windows Server 2016, aby rozwiązać ten problem.

Uwaga 16.

Nie musisz aktualizować kluczy rejestru w systemie Windows Server 2016. Zaktualizowane zachowanie jest domyślne.