Condividi tramite


Risolvere i problemi di connessione RDP delle macchine virtuali di Azure in base all'ID evento

Si applica a: ✔️ macchine virtuali di Windows

Questo articolo illustra come usare gli ID evento per risolvere i problemi che impediscono una connessione RDP (Remote Desktop Protocol) a una macchina virtuale (VM) di Azure.

Sintomi

Si tenta di utilizzare una sessione di Remote Desktop Protocol (RDP) per connettersi a una macchina virtuale di Azure. Dopo aver immesso le credenziali, la connessione non riesce e viene visualizzato il seguente messaggio di errore:

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.

Per risolvere questo problema, esaminare i registri eventi nella macchina virtuale e quindi fare riferimento agli scenari seguenti.

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.

Scenario 1

Registri eventi

In un'istanza CMD, eseguire i seguenti comandi per verificare se l'evento 1058 o l'evento 1057 è stato registrato nel registro di sistema nelle ultime 24 ore:

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-TerminalServices-RemoteConnectionManager'] and EventID=1058 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-TerminalServices-RemoteConnectionManager'] and EventID=1057 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

Nome log: Sistema
Origine: Microsoft-Windows-TerminalServices-RemoteConnectionManager
Data: ora
ID evento: 1058
Categoria attività: Nessuno
Livello: Errore
Parole chiave: classico
Utente: N/A
Computer: computer
Descrizione: server Host sessione Desktop remoto non è riuscito a sostituire il certificato autofirmato scaduto utilizzato per l'autenticazione del server Host sessione Desktop remoto sulle connessioni TLS. Il codice di stato pertinente era Accesso negato.

Nome log: Sistema
Origine: Microsoft-Windows-TerminalServices-RemoteConnectionManager
Data: ora
ID evento: 1058
Categoria attività: Nessuno
Livello: Errore
Parole chiave: classico
Utente: N/A
Computer: computer
Descrizione: server Host sessione Desktop remoto non è riuscito a creare un nuovo certificato autofirmato da utilizzare per l'autenticazione del server Host sessione Desktop remoto sulle connessioni TLS; il codice di stato corrispondente era oggetto già esistente.

Nome log: Sistema
Origine: Microsoft-Windows-TerminalServices-RemoteConnectionManager
Data: ora
ID evento: 1057
Categoria attività: Nessuno
Livello: Errore
Parole chiave: classico
Utente: N/A
Computer: computer
Descrizione: server Host sessione Desktop remoto non è riuscito a creare un nuovo certificato autofirmato da utilizzare per l'autenticazione del server Host sessione remoto sulle connessioni TLS. Il codice di stato pertinente è stato Set di chiavi inesistente

Puoi anche controllare gli eventi di errore SCHANNEL 36872 e 36870 eseguendo i seguenti comandi:

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36870 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36872 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

Nome log: Sistema
Origine: Schannel
Data:
ID evento: 36870
Categoria attività: Nessuno
Livello: Errore
Parole chiave:
Utente: SYSTEM
Computer: computer
Descrizione: si è verificato un errore irreversibile durante il tentativo di accesso alla chiave privata del server TLS. Il codice errore restituito dal modulo di crittografia è 0x8009030D.
Lo stato dell'errore interno è 10001.

Causa

Questo problema si verifica perché non è possibile accedere alle chiavi di crittografia RSA locali nella cartella MachineKeys della macchina virtuale. Questo problema può verificarsi per uno dei seguenti motivi:

  1. Configurazione errata dei permessi sulla cartella Machinekeys o sui file RSA.

  2. Chiave RSA danneggiata o mancante.

Risoluzione

Per risolvere questo problema, è necessario impostare le autorizzazioni corrette sul certificato RDP utilizzando questi passaggi.

Concedere l'autorizzazione alla cartella MachineKeys

  1. Crea uno script utilizzando il seguente contenuto:

    remove-module psreadline 
    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
    
  2. Eseguire questo script per reimpostare le autorizzazioni della cartella MachineKey e reimpostare i file RSA sui valori predefiniti.

  3. Prova ad accedere nuovamente alla VM.

Dopo aver eseguito lo script, puoi controllare i seguenti file che presentano problemi di autorizzazione:

  • c:\temp\BeforeScript_permissions.txt
  • c:\temp\AfterScript_permissions.txt

Rinnovare il certificato RDP autofirmato

Se il problema persiste, eseguire il seguente script per assicurarsi che il certificato RDP autofirmato sia stato rinnovato:

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 riesci a rinnovare il certificato, procedi nel seguente modo per provare a eliminare il certificato:

  1. In un'altra macchina virtuale nella stessa rete virtuale, apri la casella Esegui, digita mmc, quindi premi OK.

  2. Nel menu File, selezionare Aggiungi/Rimuovi snap-in.

  3. Nell'elenco Snap-in disponibili, seleziona Certificati, quindi seleziona Aggiungi.

  4. Seleziona account Computer, quindi di nuovo Avanti.

  5. Seleziona Un altro computer, quindi aggiungi l'indirizzo IP della macchina virtuale che presenta problemi.

    Note

    Prova a utilizzare la rete interna per evitare di utilizzare un indirizzo IP virtuale.

  6. Selezionare Fine, quindi selezionare OK.

    Screenshot dell'opzione Altro computer nella finestra di dialogo Seleziona computer.

  7. Espandi i certificati, vai alla cartella Desktop remoto\Certificati, fai clic con il pulsante destro del mouse sul certificato, quindi seleziona Elimina.

  8. Riavvia il servizio Configurazione desktop remoto:

    net stop SessionEnv
    net start SessionEnv
    

    Note

    A questo punto, se si aggiorna l'archivio da mmc, il certificato ricomparirà.

Prova ad accedere alla VM usando di nuovo RDP.

Aggiorna il certificato TLS/SSL

Se si configura la macchina virtuale per l'uso di un certificato TLS/SSL, eseguire il comando seguente per ottenere l'identificazione personale. Quindi controlla se è uguale all'identificazione personale del certificato:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash

In caso contrario, modificare l'identificazione personale:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash /t REG_BINARY /d <CERTIFICATE THUMBPRINT>

Si può anche provare a eliminare la chiave in modo che RDP utilizzi il certificato autofirmato per RDP:

reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash

Scenario 2

Log eventi

In un'istanza CMD, eseguire i seguenti comandi per verificare se l'evento di errore SCHANNEL 36871 è stato registrato nel registro di sistema nelle ultime 24 ore:

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36871 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

Nome log: Sistema
Origine: Schannel
Data:
ID evento: 36871
Categoria attività: Nessuno
Livello: Errore
Parole chiave:
Utente: SYSTEM
Computer: computer
Descrizione: Si è verificato un errore irreversibile durante la creazione di una credenziale del server TLS. Lo stato dell'errore interno è 10013.

Causa

Questo problema è causato dai criteri di sicurezza. Quando le versioni precedenti di TLS (come la 1.0) sono disabilitate, l'accesso RDP fallisce.

Risoluzione

RDP utilizza TLS 1.0 come protocollo predefinito. Tuttavia, il protocollo potrebbe essere modificato in TLS 1.1, che è il nuovo standard.

Per risolvere questo problema, vedere Risolvere i problemi relativi agli errori di autenticazione quando si usa RDP per connettersi alla macchina virtuale di Azure.

Scenario 3

Se hai installato il ruolo Gestore connessione desktop remoto sulla VM, controlla se si è verificato l'evento 2056 o l'evento 1296 nelle ultime 24 ore. In un'istanza CMD, esegui i seguenti comandi:

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name=' Microsoft-Windows-TerminalServices-SessionBroker '] and EventID=2056 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name=' Microsoft-Windows-TerminalServices-SessionBroker-Client '] and EventID=1296 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

Nome log: Microsoft-Windows-TerminalServices-SessionBroker/Operational
Origine: Microsoft-Windows-TerminalServices-SessionBroker
Data: ora
ID evento: 2056
Categoria attività: (109)
Livello: Errore
Parole chiave:
Utente: SERVIZIO DI RETE
Computer: computer fqdn
Descrizione: impossibile trovare la descrizione dell'evento ID 2056 dalla fonte Microsoft-Windows-TerminalServices-SessionBroker. Il componente che genera questo evento non è installato nel computer locale o l'installazione è danneggiata. È possibile installare o riparare il componente nel computer locale.
Se l'evento ha avuto origine su un altro computer, le informazioni visualizzate dovevano essere salvate con l'evento.
Nell'evento sono state incluse le informazioni seguenti:
NULLO
NULLO
Accesso al database non riuscito.

Nome log: Microsoft-Windows-TerminalServices-SessionBroker-Client/Operational
Origine: Microsoft-Windows-TerminalServices-SessionBroker-Client
Data: ora
ID evento: 1296
Categoria attività: (104)
Livello: Errore
Parole chiave:
Utente: SERVIZIO DI RETE
Computer: computer fqdn
Descrizione: Impossibile trovare la descrizione dell'ID evento 1296 dall'origine Microsoft-Windows-TerminalServices-SessionBroker-Client. Il componente che genera questo evento non è installato nel computer locale o l'installazione è danneggiata. È possibile installare o riparare il componente nel computer locale. Se l'evento ha avuto origine su un altro computer, le informazioni visualizzate dovevano essere salvate con l'evento. Nell'evento sono state incluse le informazioni seguenti:
testo
testo
Gestore connessione Desktop remoto non è pronto per la comunicazione RPC.

Causa

Questo problema si verifica perché il nome dell'host del server Gestore connessione Desktop remoto è stato modificato, ma non è una modifica supportata.

Il nome host ha voci e dipendenze sul database interno di Windows, richiesto dalla farm di Servizio Desktop remoto per poter funzionare. La modifica del nome host dopo che la farm è già stata creata può causare molti errori e l'interruzione del funzionamento del server broker.

Risoluzione

Per risolvere questo problema, è necessario reinstallare il ruolo Gestore connessione Desktop remoto e il database interno di Windows.

Operazioni successive

Eventi Schannel

Panoramica tecnica di Schannel SSP

L'accesso tramite RDP non va a buon fine con l'ID evento 1058 e l'evento 36870 con certificato Host sessione Desktop remoto e comunicazione SSL

Schannel 36872 o Schannel 36870 su un controller di dominio

ID evento 1058: autenticazione e crittografia di Servizi Desktop remoto

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.