Rozwiązywanie problemów z uwierzytelnianiem podczas używania protokołu RDP w celu połączenia z maszyną wirtualną platformy Azure
Dotyczy: ✔️ maszyny wirtualne z systemem Windows
Ten artykuł może pomóc w rozwiązywaniu problemów z błędami uwierzytelniania występującymi podczas używania połączenia protokołu RDP (Remote Desktop Protocol) w celu nawiązania połączenia z maszyną wirtualną platformy Azure.
Uwaga 16.
Czy ten artykuł był pomocny? Twoje dane wejściowe są dla nas ważne. Użyj przycisku Opinie na tej stronie, aby poinformować nas, jak dobrze działa ten artykuł lub jak możemy go ulepszyć.
Symptomy
Zrzut ekranu maszyny wirtualnej platformy Azure przedstawiający ekran powitalny jest wyświetlany i wskazuje, że system operacyjny jest uruchomiony. Jednak podczas próby nawiązania połączenia z maszyną wirtualną przy użyciu połączenia pulpitu zdalnego zostanie wyświetlony jeden z następujących komunikatów o błędzie:
- Wystąpił błąd uwierzytelniania. Nie można skontaktować się z urzędem zabezpieczeń lokalnych.
- Komputer zdalny, z którym próbujesz nawiązać połączenie, wymaga uwierzytelniania na poziomie sieci (NLA), ale nie można skontaktować się z kontrolerem domeny systemu Windows w celu wykonania równoważenia obciążenia sieciowego. Jeśli jesteś administratorem na komputerze zdalnym, możesz wyłączyć usługę NLA przy użyciu opcji na karcie Zdalne w oknie dialogowym Właściwości systemu.
- Ten komputer nie może nawiązać połączenia z komputerem zdalnym. Spróbuj ponownie nawiązać połączenie. Jeśli problem będzie nadal występował, skontaktuj się z właścicielem komputera zdalnego lub administratorem sieci.
Przyczyna
Istnieje wiele powodów, dla których równoważenie obciążenia sieciowego może zablokować dostęp RDP do maszyny wirtualnej:
- Maszyna wirtualna nie może komunikować się z kontrolerem domeny (DC). Ten problem może uniemożliwić sesji protokołu RDP uzyskiwanie dostępu do maszyny wirtualnej przy użyciu poświadczeń domeny. Jednak nadal będzie można zalogować się przy użyciu poświadczeń administratora lokalnego. Ten problem może wystąpić w następujących sytuacjach:
- Kanał zabezpieczeń usługi Active Directory między tą maszyną wirtualną a kontrolerem domeny jest uszkodzony.
- Maszyna wirtualna ma starą kopię hasła konta, a kontroler domeny ma nowszą kopię.
- Kontroler domeny, z którą łączy się ta maszyna wirtualna, jest w złej kondycji.
- Poziom szyfrowania maszyny wirtualnej jest wyższy niż poziom używany przez komputer kliencki.
- Protokoły TLS 1.0, 1.1 lub 1.2 (serwer) są wyłączone na maszynie wirtualnej. Maszyna wirtualna została skonfigurowana w celu wyłączenia logowania przy użyciu poświadczeń domeny, a urząd zabezpieczeń lokalnych (LSA) jest niepoprawnie skonfigurowany.
- Maszyna wirtualna została skonfigurowana do akceptowania tylko połączeń algorytmów zgodnych ze standardem FIPS (Federal Information Processing Standard). Zwykle odbywa się to przy użyciu zasad usługi Active Directory. Jest to rzadka konfiguracja, ale fiPS można wymusić tylko dla połączeń pulpitu zdalnego.
Przed rozpoczęciem rozwiązywania problemów
Tworzenie migawki kopii zapasowej
Aby utworzyć migawkę kopii zapasowej, wykonaj kroki opisane w artykule Migawka dysku.
Zdalne nawiązywanie połączenia z maszyną wirtualną
Aby nawiązać zdalne połączenie z maszyną wirtualną, użyj jednej z metod w temacie Jak używać narzędzi zdalnych do rozwiązywania problemów z maszyną wirtualną platformy Azure.
Usługa klienta zasad grupy
Jeśli jest to maszyna wirtualna przyłączona do domeny, najpierw zatrzymaj usługę klienta zasad grupy, aby zapobiec zastępowaniu zmian przez zasady usługi Active Directory. Aby to zrobić, uruchom następujące polecenie:
REM Disable the member server to retrieve the latest GPO from the domain upon start
REG add "HKLM\SYSTEM\CurrentControlSet\Services\gpsvc" /v Start /t REG_DWORD /d 4 /f
Po naprawieniu problemu przywróć możliwość skontaktowania się z tą maszyną wirtualną w celu pobrania najnowszego obiektu zasad grupy z domeny. W tym celu uruchom następujące polecenia:
sc config gpsvc start= auto
sc start gpsvc
gpupdate /force
Jeśli zmiana zostanie przywrócona, oznacza to, że zasady usługi Active Directory powodują problem.
Rozwiązanie
Aby obejść ten problem, aby nawiązać połączenie z maszyną wirtualną i rozwiązać ten problem, możesz tymczasowo wyłączyć równoważenie obciążenia sieciowego. Aby wyłączyć nla, użyj poniższych poleceń lub użyj skryptu DisableNLA
w uruchom polecenie.
REM Disable the Network Level Authentication
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0
Następnie uruchom ponownie maszynę wirtualną i przejdź do sekcji rozwiązywania problemów.
Po rozwiązaniu problemu ponownie włącz równoważenie obciążenia sieciowego, uruchamiając następujące polecenia, a następnie ponownie uruchamiając maszynę wirtualną:
REG add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v disabledomaincreds /t REG_DWORD /d 0 /f
REG add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 1 /f
Rozwiązywanie problemów
- Rozwiązywanie problemów z maszynami wirtualnymi przyłączonym do domeny.
- Rozwiązywanie problemów z autonomicznymi maszynami wirtualnymi.
Rozwiązywanie problemów z maszynami wirtualnymi przyłączonym do domeny
Aby rozwiązać ten problem:
- Sprawdź, czy maszyna wirtualna może nawiązać połączenie z kontrolerem domeny.
- Sprawdź kondycję kontrolera domeny.
Uwaga 16.
Aby przetestować kondycję kontrolera domeny, możesz użyć innej maszyny wirtualnej, która znajduje się w tej samej sieci wirtualnej, podsieci i używa tego samego serwera logowania.
Połącz się z maszyną wirtualną, która ma problem przy użyciu konsoli szeregowej, zdalnej usługi CMD lub zdalnego programu PowerShell, zgodnie z krokami w sekcji Zdalne łączenie z maszyną wirtualną.
Określ kontroler domeny, z którą próbuje nawiązać połączenie maszyna wirtualna. Uruchom następujące polecenie w konsoli programu :
set | find /i "LOGONSERVER"
Przetestuj kondycję bezpiecznego kanału między maszyną wirtualną a kontrolerem domeny. W tym celu uruchom polecenie w wystąpieniu
Test-ComputerSecureChannel
programu PowerShell z podwyższonym poziomem uprawnień. To polecenie zwraca wartość True lub False wskazującą, czy bezpieczny kanał jest aktywny:Test-ComputerSecureChannel -verbose
Jeśli kanał jest uszkodzony, uruchom następujące polecenie, aby go naprawić:
Test-ComputerSecureChannel -repair
Upewnij się, że hasło konta komputera w usłudze Active Directory zostało zaktualizowane na maszynie wirtualnej i kontrolerze domeny:
Reset-ComputerMachinePassword -Server "<COMPUTERNAME>" -Credential <DOMAIN CREDENTIAL WITH DOMAIN ADMIN LEVEL>
Jeśli komunikacja między kontrolerem domeny a maszyną wirtualną jest dobra, ale kontroler domeny nie jest wystarczająco zdrowy, aby otworzyć sesję protokołu RDP, możesz spróbować ponownie uruchomić kontroler domeny.
Jeśli powyższe polecenia nie rozwiązały problemu z komunikacją z domeną, możesz ponownie połączyć tę maszynę wirtualną z domeną. W tym celu wykonaj następujące kroki:
Utwórz skrypt o nazwie Unjoin.ps1 przy użyciu następującej zawartości, a następnie wdróż skrypt jako rozszerzenie niestandardowego skryptu w witrynie Azure Portal:
cmd /c "netdom remove <<MachineName>> /domain:<<DomainName>> /userD:<<DomainAdminhere>> /passwordD:<<PasswordHere>> /reboot:10 /Force"
Ten skrypt wymusza usunięcie maszyny wirtualnej z domeny i ponowne uruchomienie maszyny wirtualnej 10 sekund później. Następnie należy wyczyścić obiekt Komputer po stronie domeny.
Po zakończeniu oczyszczania ponownie dołącz tę maszynę wirtualną do domeny. W tym celu utwórz skrypt o nazwie JoinDomain.ps1 przy użyciu następującej zawartości, a następnie wdróż skrypt jako rozszerzenie niestandardowego skryptu w witrynie Azure Portal:
cmd /c "netdom join <<MachineName>> /domain:<<DomainName>> /userD:<<DomainAdminhere>> /passwordD:<<PasswordHere>> /reboot:10"
Uwaga 16.
Spowoduje to dołączenie maszyny wirtualnej do domeny przy użyciu określonych poświadczeń.
Jeśli kanał usługi Active Directory jest w dobrej kondycji, hasło komputera jest aktualizowane, a kontroler domeny działa zgodnie z oczekiwaniami, spróbuj wykonać następujące czynności.
Jeśli problem będzie się powtarzać, sprawdź, czy poświadczenia domeny są wyłączone. W tym celu otwórz okno wiersza polecenia z podwyższonym poziomem uprawnień, a następnie uruchom następujące polecenie, aby określić, czy maszyna wirtualna została skonfigurowana w celu wyłączenia kont domeny na potrzeby logowania się do maszyny wirtualnej:
REG query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v disabledomaincreds
Jeśli klucz jest ustawiony na 1, oznacza to, że serwer został skonfigurowany, aby nie zezwalać na poświadczenia domeny. Zmień ten klucz na 0.
Rozwiązywanie problemów z autonomicznymi maszynami wirtualnymi
Sprawdzanie minEncryptionLevel
W wystąpieniu usługi CMD uruchom następujące polecenie, aby wykonać zapytanie dotyczące wartości rejestru MinEncryptionLevel :
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel
Na podstawie wartości rejestru wykonaj następujące kroki:
4 (FIPS): Sprawdź połączenia algorytmów zgodnych ze standardem FIPs.
3 (szyfrowanie 128-bitowe): ustaw ważność na 2, uruchamiając następujące polecenie:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel /t REG_DWORD /d 2 /f
2 (Najwyższe możliwe szyfrowanie, zgodnie z wymaganiami klienta): Możesz spróbować ustawić szyfrowanie na minimalną wartość 1 , uruchamiając następujące polecenie:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel /t REG_DWORD /d 1 /f
Uruchom ponownie maszynę wirtualną, aby zmiany w rejestrze zaczęły obowiązywać.
Wersja protokołu TLS
W zależności od systemu protokół RDP używa protokołu TLS 1.0, 1.1 lub 1.2 (serwera). Aby wykonać zapytanie dotyczące sposobu konfigurowania tych protokołów na maszynie wirtualnej, otwórz wystąpienie usługi CMD, a następnie uruchom następujące polecenia:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled
Jeśli zwrócone wartości nie są wszystkie 1, oznacza to, że protokół jest wyłączony. Aby włączyć te protokoły, uruchom następujące polecenia:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f
W przypadku innych wersji protokołu można uruchomić następujące polecenia:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS x.x\Server" /v Enabled
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS x.x\Server" /v Enabled
Uwaga 16.
Pobierz wersję protokołu SSH/TLS x.x z dzienników systemu operacyjnego gościa na błędach SCHANNEL.
Sprawdzanie połączeń algorytmów zgodnych ze standardem FIPs
Pulpit zdalny można wymusić, aby używać tylko połączeń algorytmów zgodnych ze standardem FIPs. Można to ustawić przy użyciu klucza rejestru. W tym celu otwórz okno wiersza polecenia z podwyższonym poziomem uprawnień, a następnie wykonaj zapytanie o następujące klucze:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy" /v Enabled
Jeśli polecenie zwróci wartość 1, zmień wartość rejestru na 0.
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy" /v Enabled /t REG_DWORD /d 0
Sprawdź, który element to bieżący element MinEncryptionLevel na maszynie wirtualnej:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel
Jeśli polecenie zwróci wartość 4, zmień wartość rejestru na 2
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel /t REG_DWORD /d 2
Uruchom ponownie maszynę wirtualną, aby zmiany w rejestrze zaczęły obowiązywać.
Następne kroki
- SetEncryptionLevel, metoda klasy Win32_TSGeneralSetting
- Konfigurowanie poziomów uwierzytelniania i szyfrowania serwera
- Win32_TSGeneralSetting, klasa
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.