Risolvere i problemi relativi agli errori di autenticazione quando si usa RDP per connettersi alla macchina virtuale di Azure
Si applica a: ✔️ macchine virtuali di Windows
Questo articolo consente di risolvere gli errori di autenticazione che si verificano quando si usa la connessione RDP (Remote Desktop Protocol) per connettersi a una macchina virtuale (VM) di Azure.
Note
Questo articolo è stato utile? Diamo importanza al contributo degli utenti. Usare il pulsante Feedback in questa pagina per comunicare se questo articolo è stato utile o come possiamo migliorarlo.
Sintomi
Acquisisci uno screenshot di una macchina virtuale di Azure che mostra la schermata di benvenuto e indica che il sistema operativo è in esecuzione. Tuttavia, quando si tenta di connettersi alla macchina virtuale tramite Connessione desktop remoto, viene visualizzato uno dei seguenti messaggi di errore:
- Si è verificato un errore di autenticazione. Impossibile contattare l'autorità di sicurezza locale.
- Il computer remoto a cui stai tentando di connetterti richiede l'autenticazione a livello di rete (NLA), ma il tuo controller di dominio Windows non può essere contattato per eseguire NLA. Se si è amministratori nel computer remoto, è possibile disabilitare l'autenticazione a livello di rete usando le opzioni della scheda Remoto nella finestra di dialogo Proprietà di sistema.
- Il computer non è in grado di connettersi al computer remoto. Provare a eseguire di nuovo la connessione. Se il problema persiste, contattare il proprietario del computer remoto o l'amministratore di rete.
Causa
Esistono diversi motivi per cui NLA potrebbe bloccare l'accesso RDP a una VM:
- La macchina virtuale non può comunicare con il controller di dominio (DC). Questo problema potrebbe impedire a una sessione RDP di accedere a una macchina virtuale usando le credenziali di dominio. Tuttavia, sarai comunque in grado di accedere utilizzando le credenziali di amministratore locale. Questo problema può verificarsi nelle situazioni seguenti:
- Il canale di sicurezza di Active Directory tra questa macchina virtuale e il controller di dominio è interrotto.
- La macchina virtuale ha una vecchia copia della password dell'account e il controller di dominio ha una copia più recente.
- Il controller di dominio a cui si connette questa macchina virtuale non è integro.
- Il livello di crittografia della macchina virtuale è superiore a quello usato dal computer client.
- I protocolli TLS 1.0, 1.1 o 1.2 (server) sono disabilitati nella macchina virtuale. La macchina virtuale è stata configurata per disabilitare l'accesso tramite le credenziali di dominio e l'autorità di sicurezza locale (LSA) è configurata in modo errato.
- La macchina virtuale è stata configurata per accettare solo connessioni con algoritmi conformi allo standard FIPS (Federal Information Processing Standard). Questo di solito viene fatto utilizzando i criteri di Active Directory. Questa è una configurazione rara, ma FIPS può essere applicato solo per le connessioni Desktop remoto.
Prima di risolvere i problemi
Crea uno snapshot di backup
Per creare uno snapshot di backup, segui i passaggi in Snapshot di un disco.
Connettiti alla VM da remoto
Per connettersi alla macchina virtuale in remoto, usare uno dei metodi in Come usare gli strumenti remoti per risolvere i problemi relativi alle macchine virtuali di Azure.
Servizio client criteri di gruppo
Se si tratta di una macchina virtuale aggiunta al dominio, arrestare innanzitutto il servizio client Criteri di gruppo per impedire a eventuali criteri di Active Directory di sovrascrivere le modifiche. A tale scopo, utilizzare il seguente comando:
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
Dopo che il problema è stato risolto, ripristinare la capacità di questa macchina virtuale di contattare il dominio per recuperare l'oggetto Criteri di gruppo più recente dal dominio. A tale scopo, eseguire i seguenti comandi:
sc config gpsvc start= auto
sc start gpsvc
gpupdate /force
Se la modifica viene ripristinata, significa che un criterio di Active Directory sta causando il problema.
Soluzione alternativa
Come soluzione alternativa per connettersi alla macchina virtuale e risolvere la causa, è possibile disabilitare temporaneamente NLA. Per disabilitare NLA, utilizzare i comandi seguenti oppure lo scriptDisableNLA
in Esegui comando.
REM Disable the Network Level Authentication
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0
Quindi, riavvia la VM e passa alla sezione relativa alla risoluzione dei problemi.
Una volta risolto il problema, riabilita NLA, eseguendo i seguenti comandi e riavviando la VM:
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
Risoluzione dei problemi
- Risolvere i problemi relativi alle macchine virtuali aggiunte a un dominio.
- Risolvere i problemi delle macchine virtuali autonome.
Risolvere i problemi relativi alle macchine virtuali aggiunte a un dominio
Per risolvere questo problema:
- Verificare se la macchina virtuale può connettersi a un controller di dominio.
- Verificare l'integrità del DC
Note
Per testare l'integrità del controller di dominio, è possibile usare un'altra macchina virtuale che si trova nella stessa VNET, subnet e usa lo stesso server di accesso.
Connettiti alla macchina virtuale che presenta il problema utilizzando Console seriale, CMD remoto o PowerShell remoto, in base ai passaggi della sezione Connettiti alla macchina virtuale in remoto.
Determinare il controller di dominio a cui la macchina virtuale sta tentando di connettersi. Nella console, eseguire il comando seguente::
set | find /i "LOGONSERVER"
Testare l'integrità del canale protetto tra la macchina virtuale e il controller di dominio. A tale scopo, eseguire il comando
Test-ComputerSecureChannel
in un'istanza di PowerShell con privilegi elevati. Questo comando restituisce True o False indicando se il canale protetto è attivo:Test-ComputerSecureChannel -verbose
Se il canale è danneggiato, per ripararlo, eseguire il seguente comando:
Test-ComputerSecureChannel -repair
Assicurati che la password dell'account del computer in Active Directory sia aggiornata sulla macchina virtuale e sul controller di dominio:
Reset-ComputerMachinePassword -Server "<COMPUTERNAME>" -Credential <DOMAIN CREDENTIAL WITH DOMAIN ADMIN LEVEL>
Se la comunicazione tra il controller di dominio e la macchina virtuale è buona, ma il controller di dominio non è sufficientemente integro per aprire una sessione RDP, puoi provare a riavviare il controller di dominio.
Se i comandi precedenti non hanno risolto il problema di comunicazione con il dominio, è possibile riconnettere questa VM al dominio. A tale scopo, effettuare i passaggi seguenti:
Creare uno script denominato Unjoin.ps1 usando il contenuto seguente e quindi distribuire lo script come Custom Script Extension nel portale di Azure:
cmd /c "netdom remove <<MachineName>> /domain:<<DomainName>> /userD:<<DomainAdminhere>> /passwordD:<<PasswordHere>> /reboot:10 /Force"
Questo script rimuove forzatamente la VM dal dominio e la riavvia 10 secondi dopo. Quindi, è necessario ripulire l'oggetto Computer sul lato dominio.
Al termine della pulizia, ricongiungere questa macchina virtuale al dominio. A tale scopo, creare uno script denominato JoinDomain.ps1 usando il contenuto seguente e quindi distribuire lo script come estensione di script personalizzata nel portale di Azure:
cmd /c "netdom join <<MachineName>> /domain:<<DomainName>> /userD:<<DomainAdminhere>> /passwordD:<<PasswordHere>> /reboot:10"
Note
Questo si unisce alla macchina virtuale nel dominio usando le credenziali specificate.
Se il canale di Active Directory è integro, la password del computer viene aggiornata e il controller di dominio funziona come previsto, provare i passaggi seguenti.
Se il problema persiste, controlla se la credenziale del dominio è disabilitata. A tale scopo, aprire una finestra del prompt dei comandi con privilegi elevati e quindi eseguire il comando seguente per determinare se la macchina virtuale è configurata per disabilitare gli account di dominio per l'accesso alla macchina virtuale:
REG query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v disabledomaincreds
Se la chiave è impostata su 1, significa che il server è stato configurato per non consentire le credenziali del dominio. Cambia questa chiave in 0.
Risolvere i problemi relativi alle macchine virtuali autonome
Controlla MinEncryptionLevel
In un'istanza CMD, esegui il seguente comando per interrogare il valore di registro MinEncryptionLevel:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel
In base al valore del Registro di sistema, attenersi alla seguente procedura:
4 (FIPS): controlla le connessioni degli algoritmi conformi a FIP.
3 (crittografia a 128 bit): impostare la gravità su 2 eseguendo il comando seguente:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel /t REG_DWORD /d 2 /f
2 (Crittografia massima possibile, come dettato dal client): puoi provare a impostare la crittografia sul valore minimo di 1 eseguendo il seguente comando:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel /t REG_DWORD /d 1 /f
Riavvia la macchina virtuale in modo che le modifiche al registro abbiano effetto.
Versione TLS
A seconda del sistema, RDP utilizza il protocollo TLS 1.0, 1.1 o 1.2 (server). Per interrogare come questi protocolli sono impostati sulla VM, apri un'istanza CMD, quindi esegui i seguenti comandi:
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
Se i valori restituiti non sono tutti 1, significa che il protocollo è disabilitato. Per abilitare questi protocolli, eseguire i seguenti comandi:
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
Per altre versioni del protocollo, puoi eseguire i seguenti comandi:
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
Note
Ottieni la versione SSH/TLS x.x dai registri del sistema operativo guest sugli errori SCHANNEL.
Controlla le connessioni degli algoritmi conformi a FIP
Il desktop remoto può essere imposto per utilizzare solo connessioni con algoritmo conformi a FIP. Questo può essere impostato utilizzando una chiave di registro. A tale scopo, aprire una finestra del prompt dei comandi con privilegi elevati e quindi eseguire una query sulle seguenti chiavi:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy" /v Enabled
Se il comando restituisce 1, modificare il valore del registro in 0.
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy" /v Enabled /t REG_DWORD /d 0
Controlla qual è il MinEncryptionLevel corrente sulla VM:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel
Se il comando restituisce 4, modificare il valore del registro in 2
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel /t REG_DWORD /d 2
Riavvia la macchina virtuale in modo che le modifiche al registro abbiano effetto.
Passaggi successivi
- Metodo SetEncryptionLevel della classe Win32_TSGeneralSetting
- Configurare i livelli di crittografia e di autenticazione del server
- Classe Win32_TSGeneralSetting
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.