Procedura dettagliata per la risoluzione dei problemi di connessione di Desktop remoto con le macchine virtuali Windows in AzureDetailed troubleshooting steps for remote desktop connection issues to Windows VMs in Azure

Questo articolo contiene una procedura dettagliata sulla risoluzione dei problemi per diagnosticare e risolvere errori di Desktop remoto complessi per le macchine virtuali di Azure basate su Windows.This article provides detailed troubleshooting steps to diagnose and fix complex Remote Desktop errors for Windows-based Azure virtual machines.

Importante

Per eliminare gli errori più comuni di Desktop remoto, verificare di aver letto l'articolo relativo alla risoluzione dei problemi di base di Desktop remoto prima di procedere.To eliminate the more common Remote Desktop errors, make sure to read the basic troubleshooting article for Remote Desktop before proceeding.

È possibile che vanga visualizzato un messaggio di errore di Desktop remoto che non corrisponde a uno dei messaggi di errore specifici descritti nella guida alla risoluzione dei problemi di base di Desktop remoto.You may encounter a Remote Desktop error message that does not resemble any of the specific error messages covered in the basic Remote Desktop troubleshooting guide. Seguire questa procedura per capire il motivo per cui il client Desktop remoto (o RDP) non riesce a connettersi al servizio RDP nella VM di Azure.Follow these steps to determine why the Remote Desktop (RDP) client is unable to connect to the RDP service on the Azure VM.

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. In questo articolo viene illustrato l'utilizzo di entrambi i modelli, ma Microsoft indica che le distribuzioni più nuove utilizzano il modello di gestione delle risorse.This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

Se in qualsiasi punto dell'articolo sono necessarie altre informazioni, è possibile contattare gli esperti di Azure nei forum MSDN e overflow dello stack relativi ad Azure.If you need more help at any point in this article, you can contact the Azure experts on the MSDN Azure and the Stack Overflow forums. In alternativa, è anche possibile archiviare un evento imprevisto di supporto tecnico di Azure.Alternatively, you can also file an Azure support incident. Accedere al sito del Supporto tecnico di Azure e fare clic su Ottenere supporto.Go to the Azure Support site and click Get Support. Per informazioni sull'uso del Supporto tecnico di Azure, leggere le Domande frequenti sul supporto tecnico di Azure.For information about using Azure Support, read the Microsoft Azure Support FAQ.

Componenti di una connessione Desktop remotoComponents of a Remote Desktop connection

Di seguito sono riportati i componenti di una connessione RDP:The following components are involved in an RDP connection:

Prima di procedere, può essere utile riflettere su cosa è stato modificato dall'ultima connessione Desktop remoto riuscita alla VM.Before proceeding, it might help to mentally review what has changed since the last successful Remote Desktop connection to the VM. ad esempio:For example:

  • L'indirizzo IP pubblico della VM o il servizio cloud contenente la VM, detto anche indirizzo IP virtuale o VIP, è cambiato.The public IP address of the VM or the cloud service containing the VM (also called the virtual IP address VIP) has changed. L'errore RDP può essere causato dal fatto che la cache del client DNS ha ancora l' indirizzo IP precedente registrato per il nome DNS.The RDP failure could be because your DNS client cache still has the old IP address registered for the DNS name. Svuotare la cache del client DNS e riprovare a connettersi alla VM.Flush your DNS client cache and try connecting the VM again. Oppure, provare a connettersi direttamente con il nuovo indirizzo VIP.Or try connecting directly with the new VIP.
  • Per gestire le connessioni Desktop remoto si usa un'applicazione di terze parti anziché la connessione generata dal portale di Azure.You are using a third-party application to manage your Remote Desktop connections instead of using the connection generated by the Azure portal. Verificare che la configurazione dell'applicazione includa la porta TCP corretta per il traffico di Desktop remoto.Verify that the application configuration includes the correct TCP port for the Remote Desktop traffic. È possibile controllare questa porta per una macchina virtuale classica nel portale di Azure facendo clic sulle impostazioni della VM > Endpoint.You can check this port for a classic virtual machine in the Azure portal, by clicking the VM's Settings > Endpoints.

Operazioni preliminariPreliminary steps

Prima di procedere alla risoluzione dei problemi dettagliataBefore proceeding to the detailed troubleshooting,

Provare a riconnettersi alla VM tramite Desktop remoto dopo aver eseguito questi passaggi.Try reconnecting to the VM via Remote Desktop after these steps.

Procedura di risoluzione dei problemi dettagliataDetailed troubleshooting steps

Il client Desktop remoto potrebbe non essere in grado di raggiungere il servizio Desktop remoto nella VM di Azure a causa di problemi nelle origini seguenti:The Remote Desktop client may not be able to reach the Remote Desktop service on the Azure VM due to issues at the following sources:

Origine 1: computer client Desktop remotoSource 1: Remote Desktop client computer

Verificare che il computer sia in grado di stabilire connessioni Desktop remoto a un altro computer locale basato su Windows.Verify that your computer can make Remote Desktop connections to another on-premises, Windows-based computer.

Se non è possibile, verificare le impostazioni seguenti sul computer:If you cannot, check for the following settings on your computer:

  • Un'impostazione firewall locale che blocca il traffico di Desktop remoto.A local firewall setting that is blocking Remote Desktop traffic.
  • Software proxy client installato localmente che impedisce le connessioni Desktop remoto.Locally installed client proxy software that is preventing Remote Desktop connections.
  • Software di monitoraggio della rete installato localmente che impedisce le connessioni Desktop remoto.Locally installed network monitoring software that is preventing Remote Desktop connections.
  • Altri tipi di software di sicurezza che effettuano il monitoraggio del traffico o consentono/non consentono tipi di traffico che impediscano le connessioni Desktop remoto.Other types of security software that either monitor traffic or allow/disallow specific types of traffic that is preventing Remote Desktop connections.

In tutti questi casi, disabilitare temporaneamente il software e provare a connettersi a un computer locale tramite Desktop remoto.In all these cases, temporarily disable the software and try to connect to an on-premises computer via Remote Desktop. Se si riesce a trovare la causa effettiva in questo modo, contattare l'amministratore di rete per correggere le impostazioni del software in modo da consentire le connessioni Desktop remoto.If you can find out the actual cause this way, work with your network administrator to correct the software settings to allow Remote Desktop connections.

Origine 2: dispositivo periferico dell’Intranet dell’organizzazioneSource 2: Organization intranet edge device

Verificare che un computer connesso direttamente a Internet possa eseguire connessioni Desktop remoto alla macchina virtuale di Azure.Verify that a computer directly connected to the Internet can make Remote Desktop connections to your Azure virtual machine.

Se non si ha un computer connesso direttamente a Internet, creare una nuova macchina virtuale di Azure in un gruppo di risorse o servizio cloud per eseguire un test.If you do not have a computer that is directly connected to the Internet, create and test with a new Azure virtual machine in a resource group or cloud service. Per ulteriori informazioni, vedere Creare una macchina virtuale con Windows in Azure.For more information, see Create a virtual machine running Windows in Azure. Dopo aver completato il test, eliminare la macchina virtuale e il gruppo di risorse o il servizio cloud.You can delete the virtual machine and the resource group or the cloud service, after the test.

Se è possibile creare una connessione Desktop remoto con un computer collegato direttamente a Internet, controllare se nel dispositivo periferico dell’Intranet dell’organizzazione si verificano le seguenti condizioni:If you can create a Remote Desktop connection with a computer directly attached to the Internet, check your organization intranet edge device for:

  • Firewall interno che blocca le connessioni HTTPS a Internet.An internal firewall blocking HTTPS connections to the Internet.
  • Server proxy che impedisce le connessioni Desktop remoto.A proxy server preventing Remote Desktop connections.
  • Software di rilevamento delle intrusioni o software per il monitoraggio della rete in esecuzione sui dispositivi nella rete perimetrale che impedisce le connessioni Desktop remoto.Intrusion detection or network monitoring software running on devices in your edge network that is preventing Remote Desktop connections.

Rivolgersi all'amministratore di rete per correggere le impostazioni del dispositivo periferico dell’Intranet dell’organizzazione per consentire connessioni Desktop remoto a Internet basate su HTTPS.Work with your network administrator to correct the settings of your organization intranet edge device to allow HTTPS-based Remote Desktop connections to the Internet.

Origine 3: endpoint del servizio cloud e ACLSource 3: Cloud service endpoint and ACL

Per le VM create mediante il modello di distribuzione classico, verificare che un'altra VM di Azure che si trova nello stesso servizio cloud o rete virtuale sia in grado di stabilire connessioni Desktop remoto alla VM di Azure.For VMs created using the Classic deployment model, verify that another Azure VM that is in the same cloud service or virtual network can make Remote Desktop connections to your Azure VM.

Nota

Per le macchine virtuali create in Gestione risorse, andare su Origine 4: gruppi di sicurezza di rete.For virtual machines created in Resource Manager, skip to Source 4: Network Security Groups.

Se non si dispone di un'altra macchina virtuale nello stesso servizio cloud o rete virtuale, crearne una.If you do not have another virtual machine in the same cloud service or virtual network, create one. Seguire la procedura riportata in Creazione rapida di una macchina virtuale che esegue Linux in Azure.Follow the steps in Create a virtual machine running Windows in Azure. Eliminare la macchina virtuale di test al completamento del test.Delete the test virtual machine after the test is completed.

Se è possibile connettersi tramite Desktop remoto a una macchina virtuale nello stesso servizio cloud o rete virtuale, verificare le impostazioni seguenti:If you can connect via Remote Desktop to a virtual machine in the same cloud service or virtual network, check for these settings:

  • La configurazione dell'endpoint per il traffico di Desktop remoto nella VM di destinazione: la porta TCP privata dell'endpoint deve corrispondere alla porta TCP in cui è in ascolto il servizio Desktop remoto della macchina virtuale (l'impostazione predefinita è 3389).The endpoint configuration for Remote Desktop traffic on the target VM: The private TCP port of the endpoint must match the TCP port on which the VM's Remote Desktop service is listening (default is 3389).
  • L'ACL per l'endpoint del traffico di Desktop remoto sulla VM di destinazione: gli ACL consentono di specificare il traffico in ingresso da Internet consentito o negato in base al relativo indirizzo IP di origine.The ACL for the Remote Desktop traffic endpoint on the target VM: ACLs allow you to specify allowed or denied incoming traffic from the Internet based on its source IP address. ACL configurati in modo errato possono impedire il traffico di Desktop remoto in ingresso all'endpoint.Misconfigured ACLs can prevent incoming Remote Desktop traffic to the endpoint. Verificare gli ACL per assicurarsi che il traffico in ingresso dagli indirizzi IP pubblici del proxy o da altri server periferici sia consentito.Check your ACLs to ensure that incoming traffic from your public IP addresses of your proxy or other edge server is allowed. Per altre informazioni, vedere Che cos'è un elenco di controllo di accesso di rete (ACL)?For more information, see What is a Network Access Control List (ACL)?

Per controllare se l'endpoint è l'origine del problema, rimuovere l'endpoint corrente e creare un nuovo endpoint, scegliendo una porta casuale nell'intervallo tra 49152 e 65535 per il numero di porta esterna.To check if the endpoint is the source of the problem, remove the current endpoint and create a new one, choosing a random port in the range 49152–65535 for the external port number. Per altre informazioni, vedere Come configurare gli endpoint in una macchina virtuale.For more information, see How to set up endpoints to a virtual machine.

Origine 4: gruppi di sicurezza di reteSource 4: Network Security Groups

I gruppi di sicurezza di rete consentono un controllo più granulare del traffico in entrata e in uscita consentito.Network Security Groups allow more granular control of allowed inbound and outbound traffic. È possibile creare regole che si estendono alle subnet e ai servizi cloud in una rete virtuale di Azure.You can create rules spanning subnets and cloud services in an Azure virtual network.

Usare la verifica del flusso IP per verificare che una regola in un gruppo di sicurezza di rete blocchi il traffico verso o da una macchina virtuale.Use IP flow verify to confirm if a rule in a Network Security Group is blocking traffic to or from a virtual machine. È anche possibile esaminare le regole del gruppo di sicurezza effettive per verificare che la regola NSG di consenso in ingresso esista e abbia la priorità per la porta RDP, ovvero la porta 3389 predefinita.You can also review effective security group rules to ensure inbound "Allow" NSG rule exists and is prioritized for RDP port(default 3389). Per altre informazioni, vedere Uso di regole di sicurezza effettive per risolvere i problemi di flusso del traffico delle VM.For more information, see Using Effective Security Rules to troubleshoot VM traffic flow.

Origine 5: Macchina virtuale di Azure basata su WindowsSource 5: Windows-based Azure VM

Seguire le istruzioni disponibili in questo articolo.Follow the instructions in this article. per reimpostare il servizio Desktop remoto nella macchina virtuale:This article resets the Remote Desktop service on the virtual machine:

  • Verrà abilitata la regola predefinita "Desktop remoto" di Windows Firewall (porta TCP 3389).Enable the "Remote Desktop" Windows Firewall default rule (TCP port 3389).
  • Verranno abilitate le connessioni Desktop remoto impostando il valore del Registro di sistema HKLM\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections su 0.Enable Remote Desktop connections by setting the HKLM\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections registry value to 0.

Provare nuovamente la connessione dal computer.Try the connection from your computer again. Se non si è ancora in grado di connettersi tramite Desktop remoto, verificare se sono presenti i problemi seguenti:If you are still not able to connect via Remote Desktop, check for the following possible problems:

  • Il servizio Desktop remoto non è in esecuzione nella VM di destinazione.The Remote Desktop service is not running on the target VM.
  • Il servizio Desktop remoto non è in ascolto sulla porta TCP 3389.The Remote Desktop service is not listening on TCP port 3389.
  • Windows Firewall o un altro firewall locale dispone di una regola in uscita che impedisce il traffico di Desktop remoto.Windows Firewall or another local firewall has an outbound rule that is preventing Remote Desktop traffic.
  • Il software di rilevamento delle intrusioni o il software per il monitoraggio della rete in esecuzione nella macchina virtuale di Azure impedisce le connessioni Desktop remoto.Intrusion detection or network monitoring software running on the Azure virtual machine is preventing Remote Desktop connections.

Per le VM create usando il modello di distribuzione classico, usare una sessione remota di Azure PowerShell per connettersi alla macchina virtuale di Azure.For VMs created using the classic deployment model, you can use a remote Azure PowerShell session to the Azure virtual machine. In primo luogo, è necessario installare un certificato per il servizio cloud di hosting della macchina virtuale.First, you need to install a certificate for the virtual machine's hosting cloud service. Passare alla pagina dello script per Configure Secure Remote PowerShell Access to Azure Virtual Machines (Configurare l'accesso remoto PowerShell sicuro alle macchine virtuali di Azure) e scaricare il file di script InstallWinRMCertAzureVM.ps1 nel computer locale.Go to Configure Secure Remote PowerShell Access to Azure Virtual Machines and download the InstallWinRMCertAzureVM.ps1 script file to your local computer.

Successivamente, installare Azure PowerShell, se non è stato già installato.Next, install Azure PowerShell if you haven't already. Vedere Come installare e configurare Azure PowerShell.See How to install and configure Azure PowerShell.

Successivamente, aprire un prompt dei comandi di Azure PowerShell e modificare la cartella corrente nel percorso del file di script InstallWinRMCertAzureVM.ps1 .Next, open an Azure PowerShell command prompt and change the current folder to the location of the InstallWinRMCertAzureVM.ps1 script file. Per eseguire uno script di Azure PowerShell, è necessario impostare i criteri di esecuzione corretti.To run an Azure PowerShell script, you must set the correct execution policy. Eseguire il comando Get-ExecutionPolicy per determinare il livello di criterio corrente.Run the Get-ExecutionPolicy command to determine your current policy level. Per informazioni sull'impostazione del livello appropriato, vedere Set-ExecutionPolicy.For information about setting the appropriate level, see Set-ExecutionPolicy.

Immettere quindi il nome della sottoscrizione di Azure, il nome del servizio cloud e il nome della macchina virtuale (rimuovendo i caratteri < e >) e infine eseguire questi comandi.Next, fill in your Azure subscription name, the cloud service name, and your virtual machine name (removing the < and > characters), and then run these commands.

$subscr="<Name of your Azure subscription>"
$serviceName="<Name of the cloud service that contains the target virtual machine>"
$vmName="<Name of the target virtual machine>"
.\InstallWinRMCertAzureVM.ps1 -SubscriptionName $subscr -ServiceName $serviceName -Name $vmName

È possibile ottenere il nome della sottoscrizione corretto dalla proprietà SubscriptionName della visualizzazione del comando Get-AzureSubscription.You can get the correct subscription name from the SubscriptionName property of the display of the Get-AzureSubscription command. È possibile ottenere il nome del servizio cloud per la macchina virtuale dalla colonna ServiceName della visualizzazione del comando Get-AzureVM.You can get the cloud service name for the virtual machine from the ServiceName column in the display of the Get-AzureVM command.

Verificare di avere il nuovo certificato.Check if you have the new certificate. Aprire uno snap-in Certificati per l'utente corrente e cercare nella cartella Autorità di certificazione radice attendibili\Certificati.Open a Certificates snap-in for the current user and look in the Trusted Root Certification Authorities\Certificates folder. Verrà visualizzato un certificato con il nome DNS del servizio cloud nella colonna Rilasciato a (esempio: cloudservice4testing.cloudapp.net).You should see a certificate with the DNS name of your cloud service in the Issued To column (example: cloudservice4testing.cloudapp.net).

Successivamente, avviare una sessione remota di Azure PowerShell utilizzando questi comandi.Next, initiate a remote Azure PowerShell session by using these commands.

$uri = Get-AzureWinRMUri -ServiceName $serviceName -Name $vmName
$creds = Get-Credential
Enter-PSSession -ConnectionUri $uri -Credential $creds

Dopo aver immesso le credenziali di amministratore valide, verrà visualizzato un prompt di Azure PowerShell simile al seguente:After entering valid administrator credentials, you should see something similar to the following Azure PowerShell prompt:

[cloudservice4testing.cloudapp.net]: PS C:\Users\User1\Documents>

La prima parte di questo prompt è il nome del servizio cloud che contiene la VM di destinazione, che può essere diverso da "cloudservice4testing.cloudapp.net".The first part of this prompt is your cloud service name that contains the target VM, which could be different from "cloudservice4testing.cloudapp.net". È ora possibile inviare comandi di Azure PowerShell per questo servizio cloud, per analizzare i problemi menzionati in precedenza e apportare correzioni alla configurazione.You can now issue Azure PowerShell commands for this cloud service to investigate the problems mentioned and correct the configuration.

Per correggere manualmente Servizi Desktop remoto in ascolto sulla porta TCPTo manually correct the Remote Desktop Services listening TCP port

Al prompt della sessione remota di Azure PowerShell, eseguire questo comando.At the remote Azure PowerShell session prompt, run this command.

Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber"

La proprietà PortNumber indica il numero di porta corrente.The PortNumber property shows the current port number. Se necessario, modificare il numero di porta Desktop remoto nuovamente al valore predefinito (3389) utilizzando questo comando.If needed, change the Remote Desktop port number back to its default value (3389) by using this command.

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber" -Value 3389

Verificare che la porta sia stata modificata in 3389 utilizzando questo comando.Verify that the port has been changed to 3389 by using this command.

Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber"

Chiudere la sessione remota di Azure PowerShell utilizzando questo comando.Exit the remote Azure PowerShell session by using this command.

Exit-PSSession

Verificare che anche l'endpoint Desktop remoto per la VM di Azure usi la porta TCP 3398 come porta interna.Verify that the Remote Desktop endpoint for the Azure VM is also using TCP port 3398 as its internal port. Riavviare la VM di Azure e tentare nuovamente la connessione Desktop remoto.Restart the Azure VM and try the Remote Desktop connection again.

Risorse aggiuntiveAdditional resources

Come reimpostare una password o il servizio Desktop remoto per le macchine virtuali di WindowsHow to reset a password or the Remote Desktop service for Windows virtual machines

Come installare e configurare Azure PowerShellHow to install and configure Azure PowerShell

Risolvere i problemi relativi alle connessioni Secure Shell (SSH) a una macchina virtuale di Azure basata su LinuxTroubleshoot Secure Shell (SSH) connections to a Linux-based Azure virtual machine

Risoluzione dei problemi di accesso a un'applicazione in esecuzione in una macchina virtuale di AzureTroubleshoot access to an application running on an Azure virtual machine