Em algumas situações, pode não conseguir estabelecer ligação à instância de máquina virtual (VM) do Windows do Compute Engine com o RDP. Isto pode dever-se a erros de configuração, erros de rede ou o processo de arranque pode não ter sido concluído.
Este documento descreve várias sugestões e abordagens para resolver problemas comuns de RDP.
Certifique-se de que a VM está online e pronta
Depois de a VM terminar o arranque, o que pode demorar alguns minutos, confirme o respetivo estado através de um dos seguintes métodos:
Porta de série 1
A porta série 1 é usada para registar a atividade do sistema e da aplicação. Veja o resultado para determinar se a VM terminou o arranque e se os serviços foram iniciados corretamente.
Na Google Cloud consola, aceda à página Instâncias de VM.
Clique no nome da MV cujos registos quer ver. É apresentada a página de detalhes da instância de VM.
Em registos, selecione Porta de série 1.
Reveja a saída da porta de série 1 e procure uma saída semelhante à seguinte:
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.
O resultado que contém GCEGuestAgent
ou GCEMetadataScripts
confirma que o Windows foi iniciado com êxito. Experimente voltar a ligar-se à VM através do RDP.
Porta de série 2
A porta de série 2 oferece uma ligação interativa à VM e também mostra a saída da consola administrativa especial (SAC) . Pode usar a consola série 2 para determinar se os serviços do sistema foram iniciados com êxito.
Na Google Cloud consola, aceda à página Instâncias de VM.
Clique no nome da MV cujos registos quer ver. É apresentada a página de detalhes da instância de VM.
Em registos, expanda Mais e, de seguida, clique em Porta de série 2 (consola).
Reveja a saída da porta de série 2 e procure uma saída semelhante à seguinte:
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>
O resultado que contém SAC started and initialized
ou CMD command is now
available
confirma que o Windows foi iniciado com êxito. Experimente voltar a estabelecer ligação
à sua VM através do RDP.
Captura de ecrã de VM
As capturas de ecrã da VM oferecem uma representação visual do estado de uma VM, semelhante a um monitor de computador.
Antes de poder capturar uma captura de ecrã da sua MV, tem de ativar o ecrã virtual da MV. Se ainda não ativou o ecrã virtual, consulte o artigo Ativar ecrãs virtuais.
Faça uma captura de ecrã. Para mais informações, consulte o artigo Capturar uma captura de ecrã a partir de uma MV.
Reveja a captura de ecrã para ver que a instância está pronta.
Compare a sua captura de ecrã com o seguinte para determinar o estado atual:
- Um ecrã de início de sessão do Windows confirma que o SO foi iniciado com êxito. Agora, pode tentar estabelecer ligação através do RDP.
- O ecrã de progresso do Windows Update indica que a VM ainda não está pronta. Aguarde mais tempo para que as atualizações sejam concluídas.
- Um ecrã de carregamento de serviços indica que a VM ainda não está pronta. Aguarde mais tempo para que a VM inicie os serviços necessários.
- Um ecrã de carregamento do UEFI pode indicar um ficheiro/registo de arranque em falta ou um setor/gestor de arranque danificado.
- Um erro de ecrã azul do Windows pode ser temporário ou exigir mais procedimentos de resolução de problemas.
Se o Windows não tiver sido iniciado com êxito após alguns minutos, reveja o guia de resolução de problemas do Windows.
Verifique a conetividade entre a estação de trabalho e a instância de VM
Se tiver problemas quando ligar a sua VM do Windows, é uma boa prática identificar se o problema está na estação de trabalho que está a usar para estabelecer ligação ou na VM à qual está a estabelecer ligação. Verifique a conetividade entre a estação de trabalho e a VM executando o seguinte comando a partir da estação de trabalho Linux, macOS ou Windows:
curl -v telnet://DESTINATION_IP_ADDRESS:PORT
Substitua o seguinte:
DESTINATION_IP_ADDRESS
: o endereço IP da sua VM do WindowsPORT
: a porta configurada para estabelecer ligação através do RDP na sua VM do Windows
Também pode usar testes de conetividade para uma validação adicional da conetividade entre a instância de VM e outros Google Cloud produtos e serviços. Além disso, também pode ser útil configurar um anfitrião de bastião na mesma sub-rede para isolar problemas de conetividade RDP na instância de VM.
Verifique a palavra-passe da instância do Windows
Cada instância do Windows do Compute Engine tem de ter uma palavra-passe local definida
se ainda não estiver num domínio ou numa imagem personalizada. Confirme se tem a palavra-passe correta definida estabelecendo ligação à VM através da ferramenta de linha de comandos ou da consola.Google Cloud CLI
Google Cloud Para mais informações, consulte o artigo
Ligue-se ao SAC de uma VM do Windows.
Se tiver problemas ao estabelecer ligação, experimente criar ou repor a palavra-passe. Para mais informações, consulte o artigo Criar palavras-passe para VMs do Windows.
Verifique se está a usar o Windows Server Core
Quando estabelecer ligação através do RDP, se receber uma janela de comandos num fundo em branco, é provável que esteja a usar o Windows Server Core. Para confirmar que está a executar o comando abaixo:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType
Server Core
no resultado confirma que está a usar a edição Windows Core.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion InstallationType REG_SZ Server Core
Se precisar de uma interface gráfica do utilizador para a sua carga de trabalho, considere criar uma instância do Windows que contenha a experiência de ambiente de trabalho em vez do Server Core. Em alternativa, pode rever a documentação da Microsoft para gerir o Windows Core Server.
Verifique as regras de firewall da VPC
O Compute Engine aprovisiona automaticamente novos projetos com uma regra de firewall que permite o tráfego RDP. Se tiver um projeto existente ou tiver modificado as configurações, a regra de firewall predefinida que permite o RDP pode não existir. Confirme se uma regra permite que o tráfego RDP se ligue à rede em que a instância afetada se encontra.
Para verificar se a regra de firewall default-allow-rdp existe no seu projeto, consulte a página Regras de firewall ou execute o seguinte comando da CLI gcloud:
gcloud compute firewall-rules list
Para criar uma nova regra, se não existir nenhuma, crie uma regra com o seguinte comando:
gcloud compute firewall-rules create allow-rdp --allow tcp:3389
Valide o endereço IP externo
Certifique-se de que está a estabelecer ligação ao endereço IP externo correto da instância. Veja o IP da instância na página da instância de VM ou usando o seguinte comando da CLI gcloud:
gcloud compute instances list
Utilização dos serviços de ambiente de trabalho remoto (RDS) do Windows
Se tiver os Serviços de ambiente de trabalho remoto do Windows (anteriormente conhecidos como Serviços de terminal) instalados na sua instância, as condições das licenças de acesso de cliente (CALs) são aplicadas. Com estas CALs, as ligações RDP falham em qualquer uma das seguintes condições:
- Usou todas as licenças disponíveis
- A sua licença está instalada, mas não está configurada ou ativada corretamente
- O seu período de avaliação de 180 dias do RDS expirou
Os sintomas de que pode não ter licenças válidas suficientes incluem mensagens como:
- Esta sessão remota foi desligada porque não existem servidores de licenças do ambiente de trabalho remoto disponíveis para fornecer uma licença.
- A sessão remota foi desligada devido a um erro relacionado com o licenciamento no servidor de terminal.
- A sessão remota foi desligada porque não existem licenças de acesso de cliente do Ambiente de Trabalho Remoto disponíveis para este computador.
Se as suas ligações RDP falharem, pode usar o comutador de administrador para se ligar à instância para fins administrativos. Isto pode ser feito num computador Windows através do cliente nativo de ligação ao Ambiente de Trabalho Remoto.
%SystemRoot%\System32\mstsc.exe /admin
Estão incluídas duas sessões de ambiente de trabalho remoto simultâneas para administração com a imagem do Windows Server e do SQL Server a pedido.
Para resolver problemas com ligações RDP, compre novas licenças RDS para a sua instância. Para mais detalhes sobre as CALs, reveja a documentação da Microsoft. Em alternativa, se os Serviços de Ambiente de Trabalho Remoto não forem necessários, desinstale o serviço e use ligações RDP normais.
Valide a configuração e os recursos ao nível do SO
Se o ambiente e as configurações do convidado para a instância estiverem corretos, o sistema operativo na instância pode estar configurado incorretamente. Além disso, sem recursos adequados, é possível que não seja possível estabelecer uma ligação RDP. Para validar a configuração ao nível do SO, ligue-se ao SAC do Windows:
Certifique-se de que a VM tem recursos adequados
Verifique se a utilização de CPU, memória e disco, bem como o espaço em disco disponível, não estão a atingir os respetivos limites. Pode inspecionar estes dados através da visualização das métricas de observabilidade na Google Cloud consola. Algumas métricas só estão disponíveis para VMs com o agente Ops instalado. Em alternativa, se o agente de operações não estiver instalado, use os seguintes comandos quando estiver ligado ao SAC:
Utilização da CPU, utilização da memória, utilização do disco e capacidade do disco
- Utilização da CPU:
typeperf "\Processor(_Total)\% Processor Time" -sc 5
- Utilização de memória:
typeperf "\Memory\% Committed Bytes In Use" -sc 5
- Utilização do disco:
typeperf "\LogicalDisk(*)\% Idle Time" -sc 5
- Capacidade do disco:
fsutil volume diskfree C:
Seguem-se as utilizações de recursos recomendadas para uma ligação RDP. No entanto, estas são apenas estimativas e podem variar entre instâncias.
- CPU: <80%
- Memória: < 80%
- Espaço em disco: >20%
- Disco inativo: >50%
Se alguma das estimativas sugeridas estiver a atingir os respetivos limites, pode modificar esse recurso para a instância de VM. Para editar as propriedades da VM, veja como editar o tipo de máquina de uma instância de VM e aumentar o tamanho de um disco persistente.
Verifique a configuração do SO
Ligue-se ao SAC da VM e execute os seguintes comandos para garantir que a instância está a aceitar ligações:
Verifique se o adaptador de Ethernet está ativado:
- Comando:
netsh interface show interface
- Aprovado: o estado de administrador está definido como Ativado no nome da interface etiquetado como Ethernet
- Falha: o estado de administrador está definido como Desativado no nome da interface etiquetado como Ethernet
- Solução: ative o adaptador de Ethernet:
netsh interface set interface Ethernet admin=enabled
- Comando:
Verifique se a instância tem uma configuração de IP válida:
- Comando:
ipconfig /all
- Aprovado: o adaptador Ethernet Ethernet mostra um endereço IPv4 da sub-rede à qual a instância está atribuída.
- Falha: nenhum endereço IPv4 ou um endereço que não corresponde ao que é apresentado na Google Cloud consola.
- Solução: avance para o passo seguinte.
- Comando:
Verifique se o DHCP está ativado na instância:
- Comando:
netsh interface ipv4 show addresses
- Aprovado: a saída em Ethernet contém DHCP ativado: Sim.
- Falha: a saída em Ethernet contém DHCP ativado: não.
- Solução: ative o DHCP no adaptador de Ethernet:
netsh interface ipv4 set address Ethernet dhcp
- Comando:
Verifique se o "Serviço de ambiente de trabalho remoto" está em execução:
- Comando:
net start | find "Remote Desktop Services"
- Aprovado: serviço de ambiente de trabalho remoto
- Falha: (o serviço de ambiente de trabalho remoto está em falta na saída)
- Solução: inicie os serviços de ambiente de trabalho remoto:
net start "Remote Desktop Services"
- Comando:
Verifique se as ligações remotas estão ativadas:
- Comando:
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
- Pass: fDenyTSConnections REG_DWORD 0x0
- Falha: fDenyTSConnections REG_DWORD 0x1
- Solução: ative as ligações de ambiente de trabalho remoto no registo:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0
- Comando:
Certifique-se de que a firewall do Windows tem as Ligações de ambiente de trabalho remoto ativadas:
- 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
Falha: (resultados inesperados, como enabled = No)
Solução: ative a regra de firewall "Área de trabalho remota" predefinida no firewall do Windows:
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
- Comando:
Verifique o número da porta configurado para ligações RDP na instância remota:
- Comando:
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
- Pass: PortNumber REG_DWORD [PORT NUMBER]
- Falha: (número de porta inesperado)
Solução: configure o número da porta no registo necessário para o RDP:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /f /v PortNumber /t REG_DWORD /d [PORT NUMBER]
- Comando:
Verifique se outra aplicação não está a tentar usar a mesma porta:
- Comando:
netstat -ano | find "3389"
- Pass: procure uma entrada para a porta RDP atribuída com o estado
Listening. Pode encontrar o serviço correspondente através do identificador do processo (PID) com o seguinte comando:
onde PID é o identificador do comando anterior. O resultado só deve ter o Termservice a ser devolvido.tasklist /svc | find "
" - Falha: qualquer coisa que não seja o Termservice está a usar a porta atribuída.
- Solução: configure a aplicação/serviço para usar outro número de porta.
- Comando:
Certifique-se de que a conta de utilizador associada tem autorizações para ligações remotas:
- Comando:
net localgroup "Remote Desktop Users"
- Pass: (target local/domain username in resulting list)
- Falha: (falta o nome de utilizador local/do domínio de destino)
Solução: adicione a regra "Utilizadores do ambiente de trabalho remoto" a um utilizador no domínio:
net localgroup "Remote Desktop Users" /add [DOMAIN\USERNAME]
O domínio só é necessário para contas de utilizador num sistema associado a um domínio diferente. Para contas locais, especifique apenas o nome de utilizador.
- Comando:
Verifique se a negociação de segurança cliente/servidor está definida para o respetivo valor predefinido:
- Comando:
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer
- Pass: SecurityLayer REG_DWORD 0x1
- Falha: SecurityLayer REG_DWORD 0x0 (ou 0x2)
- Solução: defina o valor de negociação de segurança no registo:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 1 /f
- Comando:
Em situações em que a sua instância está ligada a um domínio do Active Directory, mas não foi possível estabelecer a ligação, pode receber o seguinte erro ao tentar aceder à sua instância:
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.
Verifique se a autenticação ao nível da rede (NLA) do utilizador está definida para o respetivo valor predefinido:
- Comando:
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication
- Pass: UserAuthentication REG_DWORD 0x0
- Falha: UserAuthentication REG_DWORD 0x1
- Solução: defina o valor de autenticação ao nível da rede no registo:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
- Comando:
Verifique se o tamanho da MTU não é superior à MTU da rede:
- Comando:
netsh interface ipv4 show subinterfaces
- Aprovado: quando o número após a MTU corresponde à MTU da rede VPC.
- Falha: quando o número após MTU é superior ao MTU da rede VPC.
Solução: defina a MTU da interface para a MTU da rede VPC:
netsh interface ipv4 set subinterface Ethernet mtu=MTU_OF_VPC_NETWORK
Para mais informações sobre incompatibilidades de tamanho da MTU, consulte a nossa documentação sobre a fragmentação de pacotes.
- Comando:
Se tentar estabelecer ligação à VM através do RDP e a VM apresentar o ecrã de esquema do teclado, tem de selecionar um idioma estabelecendo ligação ao SAC do Windows. Para selecionar um idioma, conclua os seguintes passos:
- Ligue-se ao SAC.
- Abra o Powershell escrevendo
powershell
. Obtenha a string de idioma correta.
Get-WinUserLanguageList
Defina o esquema pretendido. Substitua
LANGUAGE_TAG
pelo esquema de idioma que quer (por exemplo,en-US
).Set-WinUserLanguageList -LanguageList LANGUAGE_TAG -force
Reinicie a instância.
shutdown -r -t 0
Para erros de RDP no ecrã de início de sessão que mencionam
you need the right to sign in through Remote Desktop Services
ouyou must be granted the Allow log on through Terminal Services right
, o grupo de utilizadores ou administradores do ambiente de trabalho remoto foi removido da definição da política do computador local encontrada em Permitir início de sessão através dos Serviços de ambiente de trabalho remoto ou SeRemoteInteractiveLogonRight.Verifique se existem autorizações em falta que bloqueiam a autenticação de certificados:
- Comando:
icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys"
- Pass: a saída é semelhante a Everyone:(R,W) BUILTIN\Administrators:(F)
- Falha: a saída não corresponde a Everyone:(R,W) BUILTIN\Administrators:(F)
- Comando:
Certifique-se de que as definições do cliente de proteção de pontos finais/antivírus permitem o número de porta e os serviços configurados.
Valide os limites de tempo limite da sessão
Se conseguir estabelecer uma ligação RDP, mas a ligação for terminada após algum tempo com uma mensagem a indicar que o temporizador expirou, verifique se os seguintes valores estão como esperado:
Caminho do registo: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
Chaves de registo:
MaxDisconnectionTime
MaxIdleTime
MaxConnectionTime
MaxDisconnectionTime
RemoteAppLogoffTimeLimit
Estes valores são definidos em milissegundos. Se estas chaves estiverem em falta no registo, não existem limites de sessão na instância de VM. Se estas chaves estiverem presentes no seu registo, mas os respetivos valores estiverem definidos como 0
, a sua sessão nunca expira.
Resolva problemas de arranque do Windows
Se os passos de resolução de problemas acima não resolverem o problema de ligação RDP, a sua instância do Windows pode não estar a arrancar ou a ser executada corretamente. Neste caso, reveja o nosso guia de resolução de problemas do Windows.
O que se segue?
Saiba mais sobre a resolução de problemas do sistema operativo Windows.
Saiba como recolher informações de diagnóstico de uma MV.
Saiba como resolver problemas com a consola série.
Saiba como capturar capturas de ecrã de VMs.