Risoluzione dei problemi relativi a RDP

In alcune situazioni potresti non riuscire a connetterti al tuo Istanza di macchina virtuale (VM) Windows di Compute Engine con RDP. Questo potrebbe essere dovuti a errori di configurazione, errori di rete oppure il processo di avvio potrebbe non sono state completate.

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 le attività di sistema e delle applicazioni. Visualizza per determinare che la VM ha terminato l'avvio e se i servizi sono è stata avviata correttamente.

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sul nome della VM di cui vuoi visualizzare i log. L'istanza VM si apre la pagina dei dettagli.

  3. In Log, seleziona Porta seriale 1.

  4. 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 usare la console seriale 2 per determinare se servizi di sistema sono stati avviati correttamente.

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sul nome della VM di cui vuoi visualizzare i log. L'istanza VM si apre la pagina dei dettagli.

  3. In Log, espandi Altro, quindi fai clic su Porta seriale 2 (console).

  4. Esamina l'output della porta seriale 2 e cerca un output simile al seguenti:

    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 delle VM forniscono una rappresentazione visiva dello stato di una VM, sul monitor di un computer.

  1. 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.

  2. Acquisisci uno screenshot. Per ulteriori informazioni, consulta la sezione Acquisizione di uno screenshot. da una VM.

  3. Esamina lo screenshot per verificare che l'istanza sia pronta.

Confronta il tuo screenshot con il seguente per determinare lo stato attuale:

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 tua workstation e la VM eseguendo il comando seguente Workstation Linux, macOS o Windows:

curl -v telnet://DESTINATION_IP_ADDRESS:PORT

Sostituisci quanto segue:

  • DESTINATION_IP_ADDRESS: l'indirizzo IP della tua VM Windows
  • PORT: la porta configurata per la connessione tramite RDP su la tua VM Windows

Puoi anche utilizzare Connectivity Tests per un'ulteriore verifica della connettività tra la 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

Per ogni istanza Windows di Compute Engine deve essere impostata una password locale. se non si trova già in un dominio o in un'immagine personalizzata. Verifica di avere i dati corretti password impostata connettendoti alla VM tramite la riga di comando Google Cloud CLI Google Cloud 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 il password. Per ulteriori informazioni, consulta la sezione Creazione di password per Windows delle VM.

Verifica se utilizzi Windows Server Core

Quando ti connetti utilizzando RDP, se viene visualizzata una finestra del prompt dei comandi su uno spazio background questo probabilmente indica che stai utilizzando Windows Server Principale. Per verificare che tu abbia eseguito seguente:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType

Server Core nell'output conferma che stai utilizzando Windows Core Edition.

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 default-allow-rdp esiste una regola firewall per il tuo progetto, controlla pagina Regole firewall oppure esegui il seguente comando gcloud CLI:

gcloud compute firewall-rules list

Per creare una nuova regola se non ne esiste una, crea una regola con il seguente codice :

gcloud compute firewall-rules create allow-rdp --allow tcp:3389

Verifica l'indirizzo IP esterno

Assicurati di connetterti all'indirizzo IP esterno corretto per il in esecuzione in un'istanza Compute Engine. Visualizza l'IP per l'istanza dal 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 avranno esito negativo una qualsiasi delle seguenti condizioni:

  • Hai utilizzato tutte le licenze disponibili
  • La tua licenza è installata, ma non è configurata o attivata correttamente
  • Il periodo di prova RDS di 180 giorni è scaduto

I sintomi che indicano che potresti non avere un numero sufficiente di licenze valide includono messaggi come:

  • Questa sessione remota è stata disconnessa perché non sono presenti Remote Desktop License Server disponibili per fornire una licenza.
  • La sessione remota è stata disconnessa a causa di un errore relativo a delle licenze nel server terminal.
  • La sessione remota è stata disconnessa perché non sono presenti Remote Desktop licenze di accesso client disponibili per questo computer.

Se le connessioni RDP non riescono, puoi utilizzare l'opzione di amministrazione per connetterti per scopi amministrativi. Questa operazione può essere eseguita su un computer Windows usando il client nativo Connessione desktop remoto.

%SystemRoot%\System32\mstsc.exe /admin

Il componente include due sessioni di desktop remoto simultanee per l'amministrazione un'immagine Windows Server e SQL Server on demand.

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 Desktop remoto non sono necessari, disinstalla il servizio e utilizza le normali connessioni RDP.

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 di Windows:

Assicurati che la VM abbia risorse adeguate

Verifica che CPU, memoria, utilizzo del disco e spazio disponibile non stiano raggiungendo i propri limiti. Questi dati possono essere ispezionati 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 CPU, memoria, utilizzo disco e capacità disco

  • Utilizzo CPU:
    typeperf "\Processor(_Total)\% Processor Time" -sc 5
  • Memoria utilizzata:
    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 consigliati delle risorse per una connessione RDP. tuttavia queste sono solo stime e potrebbero variare da un caso all'altro.

  • CPU: <80%
  • Memoria: <80%
  • Spazio su disco: >20%
  • Disco inattivo: >50%

Se una delle stime suggerite raggiunge i limiti, puoi modificarla per l'istanza VM. Per modificare le proprietà della VM, scopri come modificare il tipo di macchina di un'istanza VM e aumenta la dimensione di un disco permanente.

Controllare la configurazione del sistema operativo

Connettiti all'istanza tramite SAC ed esegui questi comandi per assicurarti che l'istanza stia accettando connessioni:

  1. Verifica che l'adattatore ethernet sia attivo:

    • Comando:
      netsh interface show interface
    • Superato: lo stato amministratore è impostato su Attivato nell'etichetta Nome interfaccia Ethernet
    • Fail: lo stato amministratore è impostato su Disabled (Disabilitata) in Nome interfaccia con etichetta Ethernet
    • Soluzione: attiva l'adattatore Ethernet.
      netsh interface set interface Ethernet admin=enabled
  2. 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.
  3. 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
  4. Verifica che il "Servizio desktop remoto" è in esecuzione:

    • Comando:
      net start | find "Remote Desktop Services"
    • Pass: servizio Remote Desktop
    • Non riuscito: (il servizio Desktop remoto non è presente nell'output)
    • Soluzione: avvia i servizi Remote Desktop:
      net start "Remote Desktop Services"
  5. 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 di desktop remoto nel registro:
      reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0
  6. Assicurati che le connessioni desktop remoto 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 superato: (risultati imprevisti, ad esempio abilitato = No)

    • Soluzione: attiva l'impostazione predefinita "Remote Desktop" regola firewall all'interno di Windows Firewall:

      netsh advfirewall firewall set rule group="remote desktop" new enable=Yes

  7. 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
    • Superata: numero di porta REG_DWORD [PORT NUMBER]
    • Fail: (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]

  8. 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:
      tasklist /svc | find ""
      dove PID è l'identificatore del comando precedente. L'output dovrebbe viene restituito solo Termservice.
    • Fail: tutto tranne Termservice utilizza la porta assegnata.
    • Soluzione: configura l'applicazione o il servizio in modo che utilizzi un'altra porta numero.
  9. Assicurati che l'account utente connesso disponga delle autorizzazioni per le connessioni remote:

    • Comando:
      net localgroup "Remote Desktop Users"
    • Pass: (scegli il nome utente locale/di dominio 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 in un sistema aggiunto a un altro dominio. Per gli account locali, specifica solo il nome utente.

  10. Verifica che la negoziazione di sicurezza del 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 di sicurezza nel registro:
      reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 1 /f
  11. 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
    • Superato: UserAuthentication REG_DWORD 0x0
    • Fail: UserAuthentication REG_DWORD 0x1
    • Soluzione: imposta il valore di autenticazione a livello di rete nel registry:
      reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
  12. Verifica che la dimensione della MTU non sia superiore a quella della rete:

    • Comando:
      netsh interface ipv4 show subinterfaces
    • Superato: quando il numero dopo la MTU corrisponde alla MTU della rete VPC.
    • Errore: quando il numero dopo la MTU è maggiore della MTU della rete VPC.
    • Soluzione: imposta la MTU dell'interfaccia sulla 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.

  13. Se provi a connetterti alla VM utilizzando RDP e la VM visualizza la tastiera schermata di layout, devi selezionare una lingua eseguendo la connessione a Windows SAC. A seleziona una lingua, completa i seguenti passaggi:

    1. Esegui la connessione a SAC.
    2. Apri PowerShell digitando powershell.
    3. Ottieni la stringa della lingua corretta.

      Get-WinUserLanguageList
    4. Imposta il layout che preferisci. Sostituisci LANGUAGE_TAG con la lingua layout che preferisci (ad esempio, en-US).

      Set-WinUserLanguageList -LanguageList LANGUAGE_TAG -force
    5. Riavvia l'istanza.

      shutdown -r -t 0
  14. Per gli errori RDP nella schermata di accesso che menzionano you need the right to sign in through Remote Desktop Services o you 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.

  15. Verifica che non manchino autorizzazioni che bloccano l'autenticazione dei certificati:

    • Comando:
      icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys"
    • Superata: l'output è simile a Tutti:(R,W) BUILTIN\administrators:(F)
    • Fail: l'output non corrisponde a Tutti:(R,W) BUILTIN\administrators:(F)
  16. Assicurati che le impostazioni del client di protezione antivirus/endpoint consentano il numero di porta e i servizi configurati.

Verifica i limiti di timeout della sessione

Se riesci a stabilire una connessione RDP, ma la disconnessione verrà interrotta dopo di tempo con un messaggio che indica che il Timer è scaduto, verifica i seguenti valori sono quelli previsti:

Percorso del registro: 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 queste chiavi 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 precedenti non hanno risolto il problema di connessione RDP, è possibile che l'istanza Windows non si avvii o non sia in esecuzione correttamente. In questo caso, consulta la nostra guida per la risoluzione dei problemi Windows.

Passaggi successivi