In alcune situazioni, potresti non essere in grado di connetterti alla tua istanza di macchina virtuale (VM) Compute Engine Windows con RDP. Il problema potrebbe essere dovuto a errori di configurazione, errori di rete o al mancato completamento della procedura di avvio.
Questo documento descrive una serie di suggerimenti e approcci per risolvere i problemi comuni di RDP.
Assicurati che la VM sia online e pronta
Dopo l'avvio della VM, che potrebbe richiedere alcuni minuti, conferma il suo stato utilizzando uno dei seguenti metodi:
Porta seriale 1
La porta seriale 1 viene utilizzata per registrare l'attività di sistema e delle applicazioni. Visualizza l'output per determinare se l'avvio della VM è terminato e se i servizi 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. Viene visualizzata la pagina dei dettagli dell'istanza VM.
Nella sezione 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 correttamente. 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 Special Administrative Console (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. Viene visualizzata la pagina dei dettagli dell'istanza VM.
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 utilizzando RDP.
Screenshot della VM
Gli screenshot delle VM forniscono una rappresentazione visiva dello stato di una VM, simile a un monitor del computer.
Prima di poter acquisire uno screenshot della VM, devi attivare il display virtuale della VM. Se non hai ancora attivato il display virtuale, consulta la sezione Attivare i display virtuali.
Acquisisci uno screenshot. Per saperne di più, consulta Acquisire uno screenshot da una VM.
Controlla lo screenshot per vedere che l'istanza è pronta.
Confronta lo screenshot con quanto segue per determinare lo stato attuale:
- Una schermata di accesso a Windows 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. Lascia più tempo per completare gli aggiornamenti.
- Una schermata di caricamento dei servizi indica che la VM non è ancora pronta. Lascia più tempo alla VM per avviare i servizi necessari.
- Una schermata di caricamento UEFI potrebbe indicare un file/record di avvio mancante o un settore/gestore di avvio danneggiato.
- Un errore di schermata blu di Windows potrebbe essere temporaneo o richiedere ulteriori procedure per la risoluzione dei problemi.
Se Windows non è stato avviato correttamente dopo alcuni minuti, consulta la guida Risoluzione dei problemi di Windows.
Controlla la connettività tra la workstation e l'istanza VM
Se riscontri problemi durante la connessione alla VM Windows, è buona norma identificare se il problema riguarda la workstation che utilizzi per connetterti o la VM a cui ti connetti. 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 tua VM Windows
Puoi anche utilizzare Connectivity Tests per un'ulteriore verifica della connettività tra l'istanza VM e altri prodotti e servizi Google Cloud . Inoltre, potrebbe essere utile configurare un bastion host nella stessa subnet per isolare i problemi di connettività RDP sull'istanza VM.
Controllare la password dell'istanza Windows
Ogni istanza Windows di Compute Engine deve avere una password locale impostata
se non si trova già in un dominio o in un'immagine personalizzata. Verifica di aver impostato la password corretta connettendoti alla VM tramite lo strumento a riga di comando Google Cloud CLI
o la console Google Cloud . Per ulteriori informazioni, consulta
Connettiti al SAC di una VM Windows.
Se hai problemi di connessione, prova a creare o reimpostare la password. Per saperne di più, consulta Creazione di password per VM Windows.
Verificare se utilizzi Windows Server Core
Quando ti connetti utilizzando RDP, se ricevi una finestra del prompt dei comandi su uno sfondo vuoto, probabilmente stai utilizzando Windows Server Core. Per verificare di aver eseguito 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 Windows Core.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion InstallationType REG_SZ Server Core
Se hai bisogno di una GUI per il tuo carico di lavoro, valuta la possibilità di creare un'istanza Windows che contenga Esperienza desktop anziché Server Core. In alternativa, puoi consultare la documentazione Microsoft per la gestione di Windows Core Server.
Controlla le regole firewall VPC
Compute Engine esegue automaticamente il provisioning di nuovi progetti con una regola firewall che consente il traffico RDP. Se hai un progetto esistente o hai modificato le configurazioni, la regola firewall predefinita che consente RDP potrebbe non esistere. Conferma che una regola consenta al traffico RDP di connettersi alla rete in cui si trova l'istanza interessata.
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 Servizi Desktop remoto (RDS) di Windows
Se hai installato Servizi Desktop remoto di Windows (precedentemente noto come Servizi terminal) sulla tua istanza, vengono applicate le condizioni delle licenze di accesso client (CAL). Con queste CAL, le connessioni RDP non andranno a buon fine in 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 disporre di un numero sufficiente di licenze valide includono messaggi come:
- Questa sessione remota è stata disconnessa perché non sono disponibili server licenze Servizi terminal disponibili per fornire una licenza.
- La sessione remota è stata disconnessa a causa di un errore relativo alle licenze nel server terminale.
- La sessione remota è stata disconnessa perché non sono disponibili licenze di accesso client Desktop remoto per questo computer.
Se le connessioni RDP non vanno a buon fine, puoi utilizzare l'opzione di amministrazione per connetterti all'istanza a scopo amministrativo. Questa operazione può essere eseguita su un computer Windows utilizzando il client nativo Connessione Desktop remoto.
%SystemRoot%\System32\mstsc.exe /admin
Sono incluse due sessioni di Remote Desktop simultanee per l'amministrazione con l'immagine on demand di Windows Server e SQL Server.
Per risolvere i problemi relativi alle connessioni RDP, acquista nuove licenze RDS per la tua istanza. Per maggiori dettagli sulle CAL, consulta la documentazione di Microsoft. In alternativa, se non sono necessari i Servizi Desktop remoto, disinstalla il servizio e utilizza le normali connessioni RDP.
Convalida della configurazione e delle risorse a livello di sistema operativo
Se l'ambiente e le configurazioni guest per l'istanza sono corretti, il sistema operativo sull'istanza potrebbe essere configurato in modo errato. Inoltre, senza risorse adeguate, è possibile che una connessione RDP non venga stabilita. Per convalidare la configurazione a livello di sistema operativo, connettiti al SAC di Windows:
- Assicurati che la VM disponga di risorse adeguate
- Controllare la configurazione del sistema operativo
Assicurati che la VM disponga di risorse adeguate
Verifica che l'utilizzo di CPU, memoria e disco e lo spazio su disco disponibile non stiano raggiungendo i limiti. Questi dati possono essere esaminati visualizzando le metriche di osservabilità nella console Google Cloud . Alcune metriche sono disponibili solo per le VM in cui è installato Ops Agent. In alternativa, se Ops Agent non è installato, utilizza i seguenti comandi quando ti connetti a SAC:
Utilizzo della CPU, della memoria e del disco e capacità del disco
- Utilizzo CPU:
typeperf "\Processor(_Total)\% Processor Time" -sc 5
- Utilizzo della memoria:
typeperf "\Memory\% Committed Bytes In Use" -sc 5
- Utilizzo 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 tra le istanze.
- CPU: <80%
- Memoria: <80%
- Spazio su disco: >20%
- Disco inattivo: > 50%
Se una delle stime suggerite sta raggiungendo i 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 al SAC della VM ed esegui questi comandi per assicurarti che l'istanza accetti le connessioni:
Controlla che l'adattatore Ethernet sia attivo:
- Comando:
netsh interface show interface
- Superato:lo stato di amministrazione è impostato su Abilitato in Nome interfaccia con etichetta Ethernet
- Errore: lo stato di amministrazione è impostato su Disattivato in Nome interfaccia con etichetta 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
- Superato:l'adattatore Ethernet Ethernet mostrerà un indirizzo IPv4 della subnet a cui è assegnata l'istanza.
- Errore:nessun indirizzo IPv4 o un indirizzo che non corrisponde a quello mostrato nella console Google Cloud .
- Soluzione: procedi al passaggio successivo.
- Comando:
Controlla che DHCP sia abilitato sull'istanza:
- Comando:
netsh interface ipv4 show addresses
- Pass:l'output in Ethernet contiene DHCP Enabled: Yes.
- Errore: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 sia in esecuzione:
- Comando:
net start | find "Remote Desktop Services"
- Pass: Servizio Desktop remoto
- Errore: (servizio Remote Desktop mancante nell'output)
- Soluzione: avvia i servizi Remote Desktop:
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
- Pass: fDenyTSConnections REG_DWORD 0x0
- Fail: fDenyTSConnections REG_DWORD 0x1
- Soluzione: attiva le connessioni desktop remoto nel registro:
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 in Windows Firewall:
- Comando:
netsh advfirewall firewall show rule name="Remote Desktop -User Mode (TCP-In)"
Pass: Enabled:Yes, Direction: In, Profiles: Public, Grouping: Remote Desktop, LocalIP: Any, RemoteIP: Any, Protocol:TCP, LocalPort: 3389, RemotePort: Any, Edge traversal: No, Action: Allow
Errore: (risultati imprevisti, ad esempio enabled = No)
Soluzione: attiva la regola firewall predefinita "Desktop remoto" in Windows Firewall:
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
- Comando:
Controlla quale numero di porta è configurato per le connessioni RDP nell'istanza remota:
- Comando:
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
- Pass: PortNumber REG_DWORD [NUMERO PORTA]
- Fail (Errore): (numero di porta imprevisto)
Soluzione: configura il numero di porta nel registro 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"
- Pass: cerca una voce per la porta RDP assegnata con lo stato
Listening. Il servizio di corrispondenza può essere trovato utilizzando l'identificatore di processo (PID) con il seguente comando:
dove PID è l'identificatore del comando precedente. L'output dovrebbe restituire solo Termservice.tasklist /svc | find "
" - Errore: qualsiasi servizio diverso da Termservice utilizza la porta assegnata.
- Soluzione: configura l'applicazione/il servizio in modo che utilizzi un altro numero di porta.
- Comando:
Assicurati che l'account utente collegato disponga delle autorizzazioni per le connessioni remote:
- Comando:
net localgroup "Remote Desktop Users"
- Pass: (nome utente locale/di dominio di destinazione nell'elenco risultante)
- Errore: (nome utente locale/di dominio di destinazione mancante)
Soluzione: aggiungi la regola "Utenti Remote Desktop" a un utente del dominio:
net localgroup "Remote Desktop Users" /add [DOMAIN\USERNAME]
Il dominio è obbligatorio solo per gli account utente su un sistema collegato 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
- Pass: SecurityLayer REG_DWORD 0x1
- Fail: SecurityLayer REG_DWORD 0x0 (o 0x2)
- Soluzione: imposta il valore di negoziazione della sicurezza nel registro:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 1 /f
- Comando:
Nelle situazioni in cui l'istanza è connessa a un dominio Active Directory, ma la connessione non è stata stabilita, potresti ricevere il seguente errore quando tenti di 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
- Fail: UserAuthentication REG_DWORD 0x1
- Soluzione: imposta il valore dell'autenticazione a livello di rete nel registro:
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 MTU non sia superiore a quella della rete:
- Comando:
netsh interface ipv4 show subinterfaces
- Pass: quando il numero dopo MTU corrisponde all'MTU della rete VPC.
- Errore: quando il numero dopo MTU è maggiore dell'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 saperne di più sulle incompatibilità delle dimensioni MTU, consulta la nostra documentazione sulla frammentazione dei pacchetti.
- Comando:
Se provi a connetterti alla VM utilizzando RDP e la VM mostra la schermata del layout della tastiera, devi selezionare una lingua connettendoti a Windows SAC. Per selezionare una lingua, completa i seguenti passaggi:
- Connettiti a SAC.
- Apri PowerShell digitando
powershell
. Ottieni la stringa di lingua corretta.
Get-WinUserLanguageList
Imposta il layout che preferisci. Sostituisci
LANGUAGE_TAG
con il layout della lingua 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
, il gruppo Utenti o Amministratori di Desktop remoto è stato rimosso dall'impostazione Criteri computer locali disponibile in Consenti accesso tramite Servizi Desktop remoto o 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 Everyone:(R,W) BUILTIN\Administrators:(F)
- Errore: l'output non corrisponde a Everyone:(R,W) BUILTIN\Administrators:(F)
- Comando:
Assicurati che le impostazioni del client antivirus/di protezione 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 connessione viene interrotta dopo un po' di tempo con un messaggio che indica che il timer è scaduto, verifica che i seguenti valori siano quelli previsti:
Percorso del registro: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
Chiavi di registro:
MaxDisconnectionTime
MaxIdleTime
MaxConnectionTime
MaxDisconnectionTime
RemoteAppLogoffTimeLimit
Questi valori sono impostati in millisecondi. Se queste chiavi non sono presenti nel
registro, non esistono limiti di sessione per l'istanza VM. Se queste chiavi
sono presenti nel registro, ma i loro 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, l'istanza Windows potrebbe non avviarsi o non funzionare correttamente. In questo caso, consulta la nostra guida per la risoluzione dei problemi di Windows.
Passaggi successivi
Scopri di più sulla risoluzione dei problemi del sistema operativo Windows.
Scopri come raccogliere informazioni diagnostiche da una VM.
Scopri di più sulla risoluzione dei problemi utilizzando la console seriale.
Scopri come acquisire screenshot dalle VM.