Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: ✔️ macchine virtuali di Windows
Questo articolo descrive un errore che potrebbe verificarsi quando si tenta di connettersi a una macchina virtuale (VM) in Microsoft 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
Non è possibile connettersi a una macchina virtuale di Azure usando il protocollo desktop remoto (RDP). La connessione si blocca nella sezione Configurazione remota oppure viene visualizzato il seguente messaggio di errore:
- Errore interno RDP
- Si è verificato un errore interno
- Questo computer non può essere connesso al computer remoto. Provare a eseguire di nuovo la connessione. Se il problema persiste, contatta il proprietario del computer remoto o il tuo amministratore di rete
Causa
Questo problema potrebbe verificarsi per i seguenti motivi:
- La macchina virtuale potrebbe essere stata attaccata.
- Non è possibile accedere alle chiavi di crittografia RSA locali.
- Il protocollo TLS è disabilitato.
- Il certificato è danneggiato o scaduto.
Soluzione
Per risolvere questo problema, completare i passaggi nelle sezioni seguenti. Prima di iniziare, crea uno snapshot del disco del sistema operativo della VM interessata come backup. Per ulteriori informazioni, consultare Istantanea del disco.
Controlla la sicurezza RDP
Innanzitutto, controlla se il gruppo di sicurezza di rete per la porta RDP 3389 non è protetto (aperto). Se non è protetto e mostra * come indirizzo IP di origine per l'ingresso, limitare la porta RDP all'indirizzo IP di un utente specifico, quindi testare l'accesso RDP. Se ciò non riesce, completare i passaggi nella sezione successiva.
Usa il controllo seriale
Utilizza la console seriale o ripara la VM offline collegando il disco del sistema operativo della VM a una VM di ripristino.
Per iniziare, connettiti alla Console seriale e apri un'istanza di PowerShell. Se la console seriale non è abilitata sulla tua VM, vai alla sezione ripara la VM offline.
Passaggio: 1 Controllare la porta RDP
In un'istanza di PowerShell, utilizza NETSTAT per verificare se la porta 3389 è utilizzata da altre applicazioni:
Netstat -anob |more
Se Termservice.exe utilizza la porta 3389, andare al passaggio 2. Se un altro servizio o un'applicazione diversa da Termservice.exe utilizza la porta 3389, attenersi alla seguente procedura:
Arrestare il servizio per l'applicazione che utilizza il servizio 3389:
Stop-Service -Name <ServiceName> -Force
Avvia il servizio terminale:
Start-Service -Name Termservice
Se l'applicazione non può essere arrestata o se questo metodo non si applica a te, cambia la porta per RDP:
Cambia la porta:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -name PortNumber -value <Hexportnumber> Stop-Service -Name Termservice -Force Start-Service -Name Termservice
Imposta il firewall per la nuova porta:
Set-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP" -LocalPort <NEW PORT (decimal)>
Aggiornare il gruppo di sicurezza di rete per la nuova porta nella porta RDP del portale di Azure.
Passaggio 2: impostare le autorizzazioni corrette sul certificato autofirmato RDP
In un'istanza di PowerShell, eseguire i seguenti comandi uno per uno per rinnovare il certificato autofirmato RDP:
Import-Module PKI Set-Location Cert:\LocalMachine $RdpCertThumbprint = 'Cert:\LocalMachine\Remote Desktop\'+((Get-ChildItem -Path 'Cert:\LocalMachine\Remote Desktop\').thumbprint) Remove-Item -Path $RdpCertThumbprint Stop-Service -Name "SessionEnv" Start-Service -Name "SessionEnv"
Se non puoi rinnovare il certificato utilizzando questo metodo, prova a rinnovare il certificato autofirmato RDP da remoto:
Da una macchina virtuale funzionante con connettività alla macchina virtuale che presenta problemi, digita mmc nella casella Esegui per aprire Microsoft Management Console.
Nel menu File, seleziona Aggiungi/Rimuovi snap-in, seleziona Certificati, quindi seleziona Aggiungi.
Seleziona Account computer, seleziona Un altro computer, quindi aggiungi l'indirizzo IP della VM problematica.
Vai alla cartella Desktop remoto\Certificati, fai clic con il pulsante destro del mouse sul certificato, quindi seleziona Elimina.
In un'istanza di PowerShell dalla console seriale, riavviare il servizio Configurazione desktop remoto:
Stop-Service -Name "SessionEnv" Start-Service -Name "SessionEnv"
Reimpostare l'autorizzazione per la cartella MachineKeys.
remove-module psreadline md c:\temp icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\BeforeScript_permissions.txt takeown /f "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /a /r icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\System:(F)" icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\NETWORK SERVICE:(R)" icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "BUILTIN\Administrators:(F)" icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\AfterScript_permissions.txt Restart-Service TermService -Force
Riavvia la macchina virtuale, quindi prova Avvia una connessione desktop remoto alla macchina virtuale. Se l'errore persiste, andare al passaggio successivo.
Passaggio 3: abilita tutte le versioni TLS supportate
Il client RDP utilizza TLS 1.0 come protocollo predefinito. Tuttavia, questo può essere modificato in TLS 1.1, che è diventato il nuovo standard. Se TLS 1.1 è disabilitato nella macchina virtuale, la connessione avrà esito negativo.
In un'istanza CMD, abilita il protocollo TLS:
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 impedire al criterio AD di sovrascrivere le modifiche, interrompere temporaneamente l'aggiornamento del criterio di gruppo:
REG add "HKLM\SYSTEM\CurrentControlSet\Services\gpsvc" /v Start /t REG_DWORD /d 4 /f
Riavvia la VM in modo che le modifiche abbiano effetto. Se il problema è stato risolto, eseguire il comando seguente per riattivare i criteri di gruppo:
sc config gpsvc start= auto sc start gpsvc gpupdate /force
Se la modifica viene annullata, significa che esiste un criterio di Active Directory nel dominio della società. È necessario modificare tale politica per evitare che questo problema si ripeta.
Ripara la VM offline
Collegare il disco del sistema operativo a una macchina virtuale di ripristino
- Collegare il disco del sistema operativo a una macchina virtuale di ripristino.
- Dopo che il disco del sistema operativo è stato collegato alla VM di ripristino, assicurati che il disco sia contrassegnato come Online nella console di Gestione disco. Prendere nota della lettera di unità assegnata al disco del sistema operativo collegato.
- Avviare una connessione Desktop remoto alla VM di ripristino.
Abilitare il registro dump e la console seriale
Per abilitare il registro di dump e la console seriale, eseguire il seguente script.
Apri una sessione del prompt dei comandi con privilegi elevati (Esegui come amministratore).
Eseguire lo script seguente:
In questo script si presuppone che la lettera di unità assegnata al disco del sistema operativo collegato sia F. Sostituire questa lettera di unità con il valore appropriato per la VM.
reg load HKLM\BROKENSYSTEM F:\windows\system32\config\SYSTEM REM Enable Serial Console bcdedit /store F:\boot\bcd /set {bootmgr} displaybootmenu yes bcdedit /store F:\boot\bcd /set {bootmgr} timeout 5 bcdedit /store F:\boot\bcd /set {bootmgr} bootems yes bcdedit /store F:\boot\bcd /ems {<BOOT LOADER IDENTIFIER>} ON bcdedit /store F:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200 REM Suggested configuration to enable OS Dump REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f reg unload HKLM\BROKENSYSTEM
Ripristina l'autorizzazione per la cartella MachineKeys
Apri una sessione del prompt dei comandi con privilegi elevati (Esegui come amministratore).
Eseguire lo script seguente. In questo script si presuppone che la lettera di unità assegnata al disco del sistema operativo collegato sia F. Sostituire questa lettera di unità con il valore appropriato per la VM.
Md F:\temp icacls F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\BeforeScript_permissions.txt takeown /f "F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /a /r icacls F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\System:(F)" icacls F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\NETWORK SERVICE:(R)" icacls F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "BUILTIN\Administrators:(F)" icacls F:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\AfterScript_permissions.txt
Abilita tutte le versioni TLS supportate
Apri una sessione del prompt dei comandi con privilegi elevati (Esegui come amministratore) ed esegui i seguenti comandi. Lo script seguente presuppone che la lettera del driver assegnata al disco del sistema operativo collegato sia F. Sostituire questa lettera di unità con il valore appropriato per la VM.
Controlla quale TLS è abilitato:
reg load HKLM\BROKENSYSTEM F:\windows\system32\config\SYSTEM REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f
Se la chiave non esiste o il suo valore è 0, abilita il protocollo eseguendo i seguenti script:
REM Enable TLS 1.0, TLS 1.1 and TLS 1.2 REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f
Abilita NLA:
REM Enable NLA REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 1 /f REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 1 /f reg unload HKLM\BROKENSYSTEM
Scollega il disco del sistema operativo e ricrea la VM, quindi controlla se il problema è stato risolto.
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.