In alcune situazioni potresti non riuscire a connetterti al tuo Istanza di macchina virtuale (VM) Windows di Compute Engine con RDP. Il problema potrebbe essere dovuto a errori di configurazione, errori di rete o alla mancata completamento della procedura di avvio.
Questo documento descrive una serie di suggerimenti e approcci per la risoluzione dei problemi e risolvere i problemi più comuni di RDP.
Assicurati che la VM sia online e pronta
Al termine dell'avvio della VM, che potrebbe richiedere alcuni minuti, confermane utilizzando uno dei seguenti metodi:
Porta seriale 1
La porta seriale 1 viene utilizzata per registrare l'attività del sistema e delle applicazioni. Visualizza per determinare che la VM ha terminato l'avvio e se i servizi sono è stata avviata correttamente.
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic sul nome della VM per cui vuoi visualizzare i log. L'istanza VM si apre la pagina dei dettagli.
In Log, seleziona Porta seriale 1.
Esamina l'output della porta seriale 1 e cerca un output simile al seguente:
BdsDxe: loading Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi BdsDxe: starting Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi UEFI: Attempting to start image. Description: Windows Boot Manager FilePath: HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi OptionNumber: 3. 2021/04/13 10:50:22 GCEGuestAgent: GCE Agent Started (version 20210128.00) 2021-04-13T10:50:23.4621Z OSConfigAgent Info: OSConfig Agent (version 20210217.00.0+win@1) started. 2021/04/13 10:50:42 GCEMetadataScripts: Starting startup scripts (version 20200129.00). 2021/04/13 10:50:42 GCEMetadataScripts: No startup scripts to run.
L'output contenente GCEGuestAgent
o GCEMetadataScripts
conferma che
Windows è stato avviato. Prova a riconnetterti alla VM utilizzando RDP.
Porta seriale 2
La porta seriale 2 fornisce una connessione interattiva alla VM e mostra anche l'output della console di amministrazione speciale (SAC) . Puoi utilizzare la console seriale 2 per determinare se i servizi di sistema sono stati avviati correttamente.
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic sul nome della VM per cui vuoi visualizzare i log. L'istanza VM si apre la pagina dei dettagli.
In log, espandi Altro, poi fai clic su Porta seriale 2 (console).
Esamina l'output della porta seriale 2 e cerca un output simile al seguente:
BdsDxe: loading Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi BdsDxe: starting Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi UEFI: Attempting to start image. Description: Windows Boot Manager FilePath: HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi OptionNumber: 3. <machine-info> <name>WINDOWS</name> <guid>b7ab5000-4000-e000-e000-bc5a738da000</guid> <processor-architecture>AMD64</processor-architecture> <os-version>10.0</os-version> <os-build-number>17763</os-build-number> <os-product>Windows Server 2019 Datacenter</os-product> <os-service-pack>None</os-service-pack> </machine-info> Computer is booting, SAC started and initialized. Use the "ch -?" command for information about using channels. EVENT: The CMD command is now available. SAC>
L'output contenente SAC started and initialized
o CMD command is now
available
conferma che Windows è stato avviato correttamente. Prova a riconnetterti
alla VM tramite RDP.
Screenshot della VM
Gli screenshot della VM forniscono una rappresentazione visiva dello stato di una VM, simile a un monitor del computer.
Prima di poter acquisire uno screenshot della tua VM, devi abilitare il relativo display virtuale. Se non hai già attivato il display virtuale, vedi Attivazione dei display virtuali.
Acquisisci uno screenshot. Per ulteriori informazioni, consulta Acquisire uno screenshot da una VM.
Esamina lo screenshot per verificare che l'istanza sia pronta.
Confronta il tuo screenshot con il seguente per determinare lo stato attuale:
- Un accesso a Windows schermo conferma che il sistema operativo è stato avviato correttamente, ora puoi tentare di connetterti tramite RDP.
- La schermata di avanzamento di Windows Update indica che la VM non è ancora pronta. Attendi più tempo per completare gli aggiornamenti.
- Una schermata di caricamento dei servizi indica che la VM non è ancora pronta. Attendi più tempo per consentire alla VM di avviare i servizi necessari.
- Un caricamento UEFI schermo potrebbe indicare un file/record di avvio mancante oppure un settore/gestore di avvio danneggiato.
- Un errore con schermata blu di Windows potrebbe essere temporaneo o richiedere ulteriori passaggi per la risoluzione dei problemi.
Se dopo alcuni minuti Windows non viene avviato correttamente, rivedi il Risoluzione dei problemi di Windows guida.
Controlla la connettività tra la workstation e l'istanza VM
Se riscontri problemi quando connetti la tua VM Windows, a identificare se il problema riguarda la workstation o la VM a cui ti stai connettendo. Controlla la connettività tra la workstation e la VM eseguendo il seguente comando dalla workstation Linux, macOS o Windows:
curl -v telnet://DESTINATION_IP_ADDRESS:PORT
Sostituisci quanto segue:
DESTINATION_IP_ADDRESS
: l'indirizzo IP della tua VM WindowsPORT
: la porta configurata per la connessione tramite RDP sulla VM Windows
Puoi anche utilizzare i test di connettività per verificare ulteriormente la connettività tra l'istanza VM e altri prodotti e servizi Google Cloud. Inoltre, può essere utile anche configurare un bastion host sulla stessa subnet per isolare l'RDP di connettività nell'istanza VM.
Controlla la password dell'istanza Windows
Ogni istanza Windows Compute Engine deve avere una password locale impostata se non è già in un dominio o in un'immagine personalizzata. Verifica di aver impostato la password corretta collegandoti alla VM tramite lo strumento a riga di comando Google Cloud CLI
o la console Google Cloud. Per ulteriori informazioni, vedi
Connettiti alle VM Windows utilizzando il SAC.
Se hai problemi di connessione, prova a creare o reimpostare la password. Per ulteriori informazioni, vedi Creare password per le VM Windows.
Verificare se utilizzi Windows Server Core
Quando ti connetti utilizzando RDP, se ricevi una finestra del prompt dei comandi su uno spazio background questo probabilmente indica che stai utilizzando Windows Server Principale. Per confermare che stai eseguendo il comando riportato di seguito:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType
Server Core
nell'output conferma che stai utilizzando la versione Windows Core.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion InstallationType REG_SZ Server Core
Se hai bisogno di una Graphic User Interface per il tuo carico di lavoro, consulta la sezione sulla creazione di un'interfaccia Istanza Windows che contiene Esperienza desktop invece che Server Core. In alternativa, rivedi la documentazione Microsoft per la gestione di Windows Core o server web.
Controlla le regole firewall VPC
Compute Engine esegue automaticamente il provisioning dei nuovi progetti con una regola firewall che consente il traffico RDP. Se hai già un progetto o hai modificato è possibile che la regola firewall predefinita che consente l'RDP non esista. Conferma che una regola consenta al traffico RDP di connettersi alla rete l'istanza interessata è attiva.
Per verificare se la regola firewall default-allow-rdp esiste per il tuo progetto, controlla la pagina delle regole firewall oppure esegui il seguente comando gcloud CLI:
gcloud compute firewall-rules list
Per creare una nuova regola se non esiste, crea una regola con il seguente comando:
gcloud compute firewall-rules create allow-rdp --allow tcp:3389
Verifica l'indirizzo IP esterno
Assicurati di connetterti all'indirizzo IP esterno corretto per l'istanza. Visualizza l'IP dell'istanza dalla pagina dell'istanza VM o utilizzando il seguente comando gcloud CLI:
gcloud compute instances list
Utilizzo di Windows Remote Desktop Services (RDS)
Se hai Windows Remote Desktop Services (precedentemente noto come Terminale) Services) installati sull'istanza, le condizioni dell'accesso client Vengono applicate le licenze (CAL). Con queste CAL, le connessioni RDP non andranno a buon fine se si verificano una delle seguenti condizioni:
- Hai utilizzato tutte le licenze disponibili
- La licenza è installata, ma non è configurata o attivata correttamente
- Il periodo di prova di 180 giorni di RDS è scaduto
I sintomi che indicano che potresti non avere licenze valide sufficienti includono messaggi come:
- Questa sessione remota è stata disconnessa perché non sono disponibili server di licenze di Desktop remoto per fornire una licenza.
- La sessione remota è stata disconnessa a causa di un errore relativo alla licenza nel server di terminale.
- La sessione remota è stata disconnessa perché non sono disponibili licenze di accesso client per Desktop remoto per questo computer.
Se le connessioni RDP non riescono, puoi utilizzare il comando di amministrazione per connetterti all'istanza per scopi amministrativi. Questa operazione può essere eseguita su un computer Windows utilizzando il client nativo Connessione desktop remoto.
%SystemRoot%\System32\mstsc.exe /admin
L'immagine on demand di Windows Server e SQL Server include due sessioni di desktop remoto simultanee per l'amministrazione.
Per risolvere i problemi relativi alle connessioni RDP, acquista nuove licenze RDS per il tuo in esecuzione in un'istanza Compute Engine. Per ulteriori dettagli sulle CAL, consulta la documentazione Microsoft. In alternativa, se i servizi di desktop remoto non sono richiesti, disinstalla il servizio e utilizza connessioni RDP normali.
Convalida la configurazione e le risorse a livello di sistema operativo
Se le configurazioni e l'ambiente guest per l'istanza sono corretti, dell'istanza potrebbe non essere configurato in modo corretto. Inoltre, senza di risorse adeguate, è possibile che una connessione RDP non la creazione di un progetto. Per convalidare la configurazione a livello di sistema operativo, connettiti al SAC Windows:
Assicurati che la VM disponga di risorse adeguate
Verifica che CPU, memoria, utilizzo del disco e spazio disponibile non stiano raggiungendo i propri limiti. Questi dati possono essere esaminati visualizzando le metriche di osservabilità nella console Google Cloud. Alcune metriche sono disponibili solo per le VM con Ops Agent installato. In alternativa, se Ops Agent non è installato, utilizza i seguenti comandi quando il server è connesso a SAC:
Utilizzo della CPU, utilizzo della memoria, utilizzo del disco e capacità del disco
- Utilizzo CPU:
typeperf "\Processor(_Total)\% Processor Time" -sc 5
- Memoria utilizzata:
typeperf "\Memory\% Committed Bytes In Use" -sc 5
- Utilizzo del disco:
typeperf "\LogicalDisk(*)\% Idle Time" -sc 5
- Capacità disco:
fsutil volume diskfree C:
Di seguito sono riportati gli utilizzi delle risorse consigliati per una connessione RDP, tuttavia si tratta solo di stime e potrebbero variare da un'istanza all'altra.
- CPU: <80%
- Memoria: <80%
- Spazio su disco: >20%
- Disco inattivo: >50%
Se una delle stime suggerite sta raggiungendo i suoi limiti, puoi modificare la risorsa per l'istanza VM. Per modificare le proprietà della VM, scopri come modificare il tipo di macchina di un'istanza VM e aumentare le dimensioni di un disco permanente.
Controllare la configurazione del sistema operativo
Connettiti all'istanza tramite SAC ed esegui i seguenti comandi per assicurarti che l'istanza accetti le connessioni:
Verifica che l'adattatore ethernet sia attivo:
- Comando:
netsh interface show interface
- Superato: lo stato amministratore è impostato su Attivato nell'etichetta Nome interfaccia Ethernet
- Non riuscito: lo stato di amministrazione è impostato su Disattivato per il nome dell'interfaccia etichettato come Ethernet
- Soluzione: attiva l'adattatore Ethernet:
netsh interface set interface Ethernet admin=enabled
- Comando:
Verifica che l'istanza abbia una configurazione IP valida:
- Comando:
ipconfig /all
- Pass:l'adattatore Ethernet Ethernet mostra un indirizzo IPv4 della la subnet alla quale è assegnata l'istanza.
- Non superato: nessun indirizzo IPv4 oppure un indirizzo che non corrisponde a quanto visualizzato nella console Google Cloud.
- Soluzione: vai al passaggio successivo.
- Comando:
Verifica che il DHCP sia abilitato sull'istanza:
- Comando:
netsh interface ipv4 show addresses
- Pass: l'output in Ethernet contiene DHCP Enabled: Yes.
- Fail: l'output in Ethernet contiene DHCP Enabled: No.
- Soluzione: attiva DHCP sull'adattatore ethernet.
netsh interface ipv4 set address Ethernet dhcp
- Comando:
Verifica che il servizio "Remote Desktop Service" sia in esecuzione:
- Comando:
net start | find "Remote Desktop Services"
- Pass: servizio Remote Desktop
- Non riuscita: (servizio Remote Desktop mancante nell'output)
- Soluzione: avvia i servizi di Desktop remoto:
net start "Remote Desktop Services"
- Comando:
Verifica che le connessioni remote siano abilitate:
- Comando:
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
- Superata: fDenyTSConnections REG_DWORD 0x0
- Non superato: fDenyTSConnections REG_DWORD 0x1
- Soluzione: attiva le connessioni desktop remoto nel Registro di sistema:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0
- Comando:
Assicurati che le connessioni Remote Desktop siano abilitate nel firewall di Windows:
- Comando:
netsh advfirewall firewall show rule name="Remote Desktop -User Mode (TCP-In)"
Superata: Abilitata:Sì, Direzione: In entrata, Profili: Pubblico, Raggruppamento: Remoto Desktop, LocalIP: Qualsiasi, RemoteIP: Qualsiasi, Protocollo:TCP, LocalPort: 3389, RemotePort: Qualsiasi, Edge traversal: No, Azione: Consenti
Non riuscito: (risultati imprevisti, ad esempio abilitato = No)
Soluzione: attiva la regola firewall predefinita "Desktop remoto" nel firewall di Windows:
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
- Comando:
Controlla quale numero di porta è configurato per le connessioni RDP sul telecomando istanza:
- Comando:
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
- Passa: PortNumber REG_DWORD [NUMERO PORTA]
- Fail: (numero di porta imprevisto)
Soluzione: configura il numero di porta nel Registro di sistema richiesto per RDP:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /f /v PortNumber /t REG_DWORD /d [PORT NUMBER]
- Comando:
Verifica che un'altra applicazione non stia tentando di utilizzare la stessa porta:
- Comando:
netstat -ano | find "3389"
- Superata: cerca una voce relativa alla porta RDP assegnata con lo stato
In ascolto. Il servizio di corrispondenza può essere trovato utilizzando l'identificatore di processo
(PID) utilizzando il seguente comando:
dove PID è l'identificatore del comando precedente. L'output dovrebbe contenere solo Termservice.tasklist /svc | find "
" - Fail: tutto tranne Termservice utilizza la porta assegnata.
- Soluzione: configura l'applicazione/il servizio in modo da utilizzare un altro numero di porta.
- Comando:
Assicurati che l'account utente connesso disponga delle autorizzazioni per le connessioni remote:
- Comando:
net localgroup "Remote Desktop Users"
- Pass: (nome utente locale/del dominio di destinazione nell'elenco risultante)
- Non superato: (nome utente di dominio/locale di destinazione mancante)
Soluzione: aggiungi "Utenti di Remote Desktop" a un utente nel dominio:
net localgroup "Remote Desktop Users" /add [DOMAIN\USERNAME]
Il dominio è obbligatorio solo per gli account utente di un sistema unito a un dominio diverso. Per gli account locali, specifica solo il nome utente.
- Comando:
Verifica che la negoziazione di sicurezza client/server sia impostata sul valore predefinito:
- Comando:
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer
- Superata: livello di sicurezza REG_DWORD 0x1
- Fail: Securitylayer REG_DWORD 0x0 (o 0x2)
- Soluzione: imposta il valore della negoziazione della sicurezza nel Registro di sistema:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 1 /f
- Comando:
Se l'istanza è connessa a un dominio Active Directory, ma non è stato possibile stabilire la connessione, potresti visualizzare il seguente errore quando provi ad accedere all'istanza:
The remote computer that you are trying to connect to requires Network Level Authentication (NLA), but your Windows domain controller cannot be contacted to perform NLA.
Verifica che l'autenticazione a livello di rete (NLA) dell'utente sia impostata sul valore predefinito:
- Comando:
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication
- Pass: UserAuthentication REG_DWORD 0x0
- Errore: UserAuthentication REG_DWORD 0x1
- Soluzione: imposta il valore Autenticazione a livello di rete nel Registro di sistema:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
- Comando:
Verifica che la dimensione della MTU non sia superiore a quella della rete:
- Comando:
netsh interface ipv4 show subinterfaces
- Passa: quando il numero dopo MTU corrisponde a quello della rete VPC.
- Fail: quando il numero dopo la MTU è maggiore della MTU della rete VPC.
Soluzione: imposta l'MTU dell'interfaccia sull'MTU della rete VPC:
netsh interface ipv4 set subinterface Ethernet mtu=MTU_OF_VPC_NETWORK
Per ulteriori informazioni sulle incompatibilità delle dimensioni delle MTU, consulta frammentazione del pacchetto documentazione.
- Comando:
Se provi a connetterti alla VM utilizzando RDP e la VM mostra la schermata del layout della tastiera, devi selezionare una lingua connettendoti al SAC di Windows. A seleziona una lingua, completa i seguenti passaggi:
- Esegui la connessione a SAC.
- Apri Powershell digitando
powershell
. Ottieni la stringa della lingua corretta.
Get-WinUserLanguageList
Imposta il layout che preferisci. Sostituisci
LANGUAGE_TAG
con la lingua layout che preferisci (ad esempio,en-US
).Set-WinUserLanguageList -LanguageList LANGUAGE_TAG -force
Riavvia l'istanza.
shutdown -r -t 0
Per gli errori RDP nella schermata di accesso che menzionano
you need the right to sign in through Remote Desktop Services
oyou must be granted the Allow log on through Terminal Services right
, gli utenti o gli amministratori di Remote Desktop gruppo è stato rimosso dall'impostazione Criteri computer locali disponibile in Consenti l'accesso tramite Servizi Desktop remoto oppure SeRemoteInteractiveLogonRight.Verifica che non manchino autorizzazioni che bloccano l'autenticazione dei certificati:
- Comando:
icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys"
- Pass: l'output è simile a Tutti:(R,W) BUILTIN\Amministratori:(F)
- Non riuscito: l'output non corrisponde a Tutti:(R,W) BUILTIN\Amministratori:(F)
- Comando:
Assicurati che le impostazioni del client di protezione antivirus/degli endpoint consentano il numero di porta e i servizi configurati.
Verificare i limiti di timeout della sessione
Se riesci a stabilire una connessione RDP, ma la disconnessione verrà eseguita dopo di tempo con un messaggio che indica che il Timer è scaduto, verifica i seguenti valori sono quelli previsti:
Percorso del registry: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
Chiavi del Registro di sistema:
MaxDisconnectionTime
MaxIdleTime
MaxConnectionTime
MaxDisconnectionTime
RemoteAppLogoffTimeLimit
Questi valori sono impostati in millisecondi. Se questi tasti non sono presenti nel tuo
non ci sono limiti di sessioni sull'istanza VM. Se questi token
sono presenti nel registro, ma i relativi valori sono impostati su 0
, la sessione
non scadrà mai.
Risolvere i problemi di avvio di Windows
Se i passaggi per la risoluzione dei problemi riportati sopra non hanno risolto il problema di connessione RDP, è possibile che l'istanza Windows non si avvii o non funzioni correttamente. In questo caso, consulta la nostra guida per la risoluzione dei problemi Windows.
Passaggi successivi
Scopri di più sulla risoluzione dei problemi relativi al sistema operativo Windows.
Scopri come raccogliere informazioni diagnostiche da un VM.
Scopri di più sulla risoluzione dei problemi utilizzando la console seriale.
Scopri come acquisire screenshot dalle VM.