Em algumas situações, talvez você não consiga se conectar à instância de máquina virtual (VM) do Windows do Compute Engine com RDP. Isso pode ocorrer devido a erros de configuração, erros de rede ou o processo de inicialização pode não ter sido concluído.
Este documento descreve uma série de dicas e abordagens para solucionar problemas comuns de RDP.
Certifique-se de que a VM esteja online e pronta
Após a inicialização da VM, o que pode levar alguns minutos, confirme seu estado usando um dos seguintes métodos:
Porta serial 1
A porta serial 1 é usada para registrar atividades do sistema e do aplicativo. Veja a saída para determinar se a inicialização da sua VM foi concluída e se os serviços foram iniciados corretamente.
No console do Google Cloud, acesse a página de instâncias de VM .
Clique no nome da VM cujos logs você deseja visualizar. A página de detalhes da instância de VM é aberta.
Em logs , selecione Porta serial 1 .
Revise a saída da porta serial 1 e procure uma saída semelhante a esta:
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.
A saída contendo GCEGuestAgent
ou GCEMetadataScripts
confirma que o Windows foi iniciado com êxito. Tente reconectar-se à sua VM usando RDP.
Porta serial 2
A porta serial 2 fornece uma conexão interativa com a VM e também mostra a saída do Console Administrativo Especial (SAC) . Você pode usar o console serial 2 para determinar se os serviços do sistema foram iniciados com êxito.
No console do Google Cloud, acesse a página de instâncias de VM .
Clique no nome da VM cujos logs você deseja visualizar. A página de detalhes da instância de VM é aberta.
Em logs , expanda Mais e clique em Porta serial 2 (console) .
Revise a saída da porta serial 2 e procure uma saída semelhante a esta:
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>
A saída contendo SAC started and initialized
ou CMD command is now available
confirma que o Windows foi iniciado com sucesso. Tente reconectar-se à sua VM usando RDP.
Captura de tela da VM
As capturas de tela da VM fornecem uma representação visual do estado de uma VM, semelhante a um monitor de computador.
Antes de capturar uma captura de tela da sua VM, você deve ativar a exibição virtual da VM. Se você ainda não ativou a exibição virtual, consulte Habilitando exibições virtuais .
Faça uma captura de tela. Para obter mais informações, consulte Capturando uma captura de tela de uma VM .
Revise a captura de tela para ver se a instância está pronta.
Compare sua captura de tela com a seguinte para determinar o estado atual:
- Uma tela de login do Windows confirma que o sistema operacional foi iniciado com sucesso. Agora você pode tentar se conectar via RDP.
- A tela de progresso do Windows Update indica que a VM ainda não está pronta, aguarde mais tempo para concluir as atualizações.
- Uma tela de carregamento de serviços indica que a VM ainda não está pronta, permitindo mais tempo para que a VM inicie os serviços necessários.
- Uma tela de carregamento UEFI pode indicar um arquivo/registro de inicialização ausente ou um setor/gerenciador de inicialização corrompido.
- Um erro de tela azul do Windows pode ser temporário ou exigir solução adicional.
Se o Windows não iniciar com êxito após alguns minutos, consulte o guia Solução de problemas do Windows .
Verifique a conectividade entre sua estação de trabalho e a instância de VM
Se você tiver problemas ao conectar sua VM do Windows, é uma boa prática identificar se o problema está na estação de trabalho que você está usando para se conectar ou na VM à qual você está se conectando. Verifique a conectividade entre sua estação de trabalho e a VM executando o seguinte comando em sua 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 Windows -
PORT
: a porta configurada para conexão por meio de RDP na sua VM do Windows
Você também pode usar testes de conectividade para verificar ainda mais a conectividade entre a instância de VM e outras instâncias. Google Cloud produtos e serviços. Além disso, também pode ser útil configurar um host bastião na mesma sub-rede para isolar problemas de conectividade RDP na instância de VM.
Verifique a senha da sua instância do Windows
Cada instância do Windows do Compute Engine deverá ter uma senha local definida se ainda não estiver em um domínio ou imagem personalizada. Confirme se você definiu a senha correta conectando-se à VM por meio da ferramenta de linha de comando Google Cloud CLI
ou do console do Google Cloud. Para obter mais informações, consulte Conectar-se ao SAC de uma VM do Windows .
Se você tiver problemas para se conectar, tente criar ou redefinir a senha. Para obter mais informações, consulte Criando senhas para VMs do Windows .
Verifique se você está usando o Windows Server Core
Ao conectar-se usando RDP, se você receber uma janela do prompt de comando em um fundo em branco, isso provavelmente indica que você está usando o Windows Server Core . Para confirmar que você está execute o comando abaixo:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType
Server Core
em sua saída confirma que você está usando a edição Windows Core.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion InstallationType REG_SZ Server Core
Se você precisar de uma interface gráfica do usuário para sua carga de trabalho, considere criar uma instância do Windows que contenha Desktop Experience em vez de Server Core. Alternativamente, você pode revisar a documentação da Microsoft para gerenciar o servidor Windows Core .
Verifique as regras de firewall da sua VPC
O Compute Engine provisiona automaticamente novos projetos com uma regra de firewall que permite o tráfego RDP. Se você tiver um projeto existente ou tiver modificado as configurações, a regra de firewall padrão que permite o RDP poderá não existir. Confirme se uma regra permite que o tráfego RDP se conecte à rede em que sua instância afetada está.
Para verificar se a regra de firewall default-allow-rdp existe em seu projeto, verifique a página Regras de firewall ou execute o seguinte comando da CLI gcloud:
gcloud compute firewall-rules list
Para criar uma nova regra, caso ainda não exista, crie uma regra com o seguinte comando:
gcloud compute firewall-rules create allow-rdp --allow tcp:3389
Verifique o endereço IP externo
Certifique-se de estar se conectando ao endereço IP externo correto para a instância. Visualize 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
Uso dos Serviços de Área de Trabalho Remota do Windows (RDS)
Se você tiver o Windows Remote Desktop Services (anteriormente conhecido como Terminal Services) instalado em sua instância, as condições das Licenças de Acesso para Cliente (CALs) serão aplicadas. Com essas CALs, as conexões RDP falharão em qualquer uma das seguintes condições:
- Você usou todas as suas licenças disponíveis
- Sua licença está instalada, mas não configurada ou ativada corretamente
- Seu período de teste RDS de 180 dias expirou
Os sintomas de que você pode não ter licenças válidas suficientes incluem mensagens como:
- Esta sessão remota foi desconectada porque não há servidores de licenças de área de trabalho remota disponíveis para fornecer uma licença.
- A sessão remota foi desconectada devido a um erro relacionado ao licenciamento no servidor de terminal.
- A sessão remota foi desconectada porque não há licenças de acesso de cliente de Área de Trabalho Remota disponíveis para este computador.
Se suas conexões RDP falharem, você poderá usar a opção admin para se conectar à instância para fins administrativos. Isso pode ser feito em uma máquina Windows usando o cliente nativo Remote Desktop Connection.
%SystemRoot%\System32\mstsc.exe /admin
Duas sessões simultâneas de área de trabalho remota para administração estão incluídas na imagem sob demanda do Windows Server e do SQL Server.
Para resolver problemas com conexões RDP, adquira novas licenças RDS para sua instância. Para obter mais detalhes sobre CALs, consulte a documentação da Microsoft . Como alternativa, se os Serviços de Área de Trabalho Remota não forem necessários, desinstale o serviço e use conexões RDP regulares.
Valide a configuração e os recursos no nível do sistema operacional
Se o ambiente convidado e as configurações da instância estiverem corretos, o sistema operacional na instância poderá estar configurado incorretamente. Além disso, sem recursos adequados, é possível que uma conexão RDP não seja estabelecida. Para validar a configuração no nível do sistema operacional, conecte-se ao Windows SAC :
Certifique-se de que a VM tenha recursos adequados
Verifique se a CPU, a memória, o uso do disco e o espaço disponível em disco não estão atingindo seus limites. Esses dados podem ser inspecionados visualizando as métricas de observabilidade no console do Google Cloud. Algumas métricas estão disponíveis apenas para VMs que possuem o Ops Agent instalado. Alternativamente, se o Ops Agent não estiver instalado, use os seguintes comandos quando conectado ao SAC :
Uso de CPU, uso de memória, uso de disco e capacidade de disco
- Uso da CPU:
typeperf "\Processor(_Total)\% Processor Time" -sc 5
- Uso de memória:
typeperf "\Memory\% Committed Bytes In Use" -sc 5
- Uso de disco:
typeperf "\LogicalDisk(*)\% Idle Time" -sc 5
- Capacidade do disco:
fsutil volume diskfree C:
A seguir estão os usos de recursos recomendados para uma conexão RDP; no entanto, são apenas estimativas e podem variar entre as instâncias.
- CPU: <80%
- Memória: <80%
- Espaço em disco: >20%
- Disco ocioso: >50%
Se alguma das estimativas sugeridas estiver atingindo seus limites, você poderá 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 permanente .
Verifique a configuração do sistema operacional
Conecte-se ao SAC da VM e execute os seguintes comandos para garantir que a instância esteja aceitando conexões:
Verifique se o adaptador Ethernet está habilitado:
- Comando:
netsh interface show interface
- Aprovado: o estado do administrador está definido como Ativado no nome da interface rotulado como Ethernet
- Falha: o estado do administrador está definido como Desativado no nome da interface rotulado como Ethernet
- Solução: Habilite o adaptador 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: Adaptador Ethernet Ethernet mostrará 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 mostrado no console do Google Cloud.
- Solução: prossiga para a próxima etapa.
- Comando:
Verifique se o DHCP está habilitado na instância:
- Comando:
netsh interface ipv4 show addresses
- Aprovado: A saída em Ethernet contém DHCP habilitado: Sim .
- Falha: A saída em Ethernet contém DHCP habilitado: Não .
- Solução: Habilite o DHCP no adaptador Ethernet:
netsh interface ipv4 set address Ethernet dhcp
- Comando:
Verifique se o 'Serviço de Área de Trabalho Remota' está em execução:
- Comando:
net start | find "Remote Desktop Services"
- Aprovação: Serviço de Área de Trabalho Remota
- Falha: (Serviço de Área de Trabalho Remota ausente na saída)
- Solução: inicie os serviços de área de trabalho remota:
net start "Remote Desktop Services"
- Comando:
Verifique se as conexões remotas estão habilitadas:
- Comando :
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
- Passe : fDenyTSConnections REG_DWORD 0x0
- Falha : fDenyTSConnections REG_DWORD 0x1
- Solução : habilite conexões de área de trabalho remota no registro:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0
- Comando :
Certifique-se de que o firewall do Windows tenha Conexões de Área de Trabalho Remota habilitadas:
- Comando :
netsh advfirewall firewall show rule name="Remote Desktop -User Mode (TCP-In)"
Pass : Ativado: Sim, Direção: In, Perfis: Público, Agrupamento: Área de Trabalho Remota, LocalIP: Qualquer, RemoteIP: Qualquer, Protocolo: TCP, LocalPort: 3389, RemotePort: Qualquer, Edge traversal: Não, Ação: Permitir
Falha : (resultados inesperados, como ativado = Não)
Solução : Habilite a regra de firewall padrão "Área de Trabalho Remota" no Firewall do Windows:
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
- Comando :
Verifique qual número de porta está configurado para conexões RDP na instância remota:
- Comando :
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
- Senha : Número da porta REG_DWORD [NÚMERO DA PORTA]
- Falha : (número de porta inesperado)
Solução : Configure o número da porta no registro necessário para 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 outro aplicativo não está tentando usar a mesma porta:
- Comando :
netstat -ano | find "3389"
- Aprovado : procure uma entrada para a porta RDP atribuída com status de escuta . O serviço correspondente pode ser encontrado usando o identificador de processo (PID) usando o seguinte comando:
onde PID é o identificador do comando anterior. A saída deve retornar apenas Termservice .tasklist /svc | find "
" - Falha : Qualquer coisa, exceto o Termservice , está usando a porta atribuída.
- Solução : Configure o aplicativo/serviço para usar outro número de porta.
- Comando :
Certifique-se de que a conta do usuário conectado tenha permissões para conexões remotas:
- Comando :
net localgroup "Remote Desktop Users"
- Pass : (nome de usuário local/domínio de destino na lista resultante)
- Falha : (nome de usuário local/domínio de destino ausente)
Solução : adicione a regra "Usuários de área de trabalho remota" a um usuário no domínio:
net localgroup "Remote Desktop Users" /add [DOMAIN\USERNAME]
O domínio é necessário apenas para contas de usuário em um sistema associado a um domínio diferente. Para contas locais, especifique apenas o nome de usuário.
- Comando :
Verifique se a negociação de segurança cliente/servidor está definida com seu valor padrão :
- Comando :
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer
- Passe : SecurityLayer REG_DWORD 0x1
- Falha : SecurityLayer REG_DWORD 0x0 (ou 0x2)
- Solução : Defina o valor de negociação de segurança no registro:
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 sua instância está conectada a um domínio do Active Directory, mas a conexão não pôde ser estabelecida, você poderá receber o seguinte erro ao tentar acessar 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 o usuário Network Level Authentication (NLA) está definido com seu valor padrão :
- Comando :
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication
- Passe : UserAuthentication REG_DWORD 0x0
- Falha : autenticação de usuário REG_DWORD 0x1
- Solução : defina o valor de autenticação em nível de rede no registro:
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 do seu MTU não é maior que o MTU da rede:
- Comando :
netsh interface ipv4 show subinterfaces
- Aprovado : quando o número após o MTU corresponde ao MTU da rede VPC.
- Falha : quando o número após o MTU é maior que o MTU da rede VPC.
Solução : Defina o MTU da interface para o MTU da rede VPC:
netsh interface ipv4 set subinterface Ethernet mtu=MTU_OF_VPC_NETWORK
Para obter mais informações sobre incompatibilidades de tamanho de MTU, consulte nossa documentação sobre fragmentação de pacotes .
- Comando :
Se você tentar se conectar à VM usando RDP e a VM exibir a tela de layout do teclado, será necessário selecionar um idioma conectando-se ao Windows SAC. Para selecionar um idioma, execute as seguintes etapas:
- Conecte-se ao SAC .
- Abra o Powershell digitando
powershell
. Obtenha a string de idioma correta.
Get-WinUserLanguageList
Defina o layout desejado. Substitua
LANGUAGE_TAG
pelo layout de idioma desejado (por exemplo,en-US
).Set-WinUserLanguageList -LanguageList LANGUAGE_TAG -force
Reinicie sua instância.
shutdown -r -t 0
Para erros de RDP na tela de logon mencionando que
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 Usuários ou Administradores da Área de Trabalho Remota foi removido da configuração de Política de Computador Local encontrada em Permitir logon por meio de Serviços de Área de Trabalho Remota ou SeRemoteInteractiveLogonRight .Verifique se não há permissões ausentes bloqueando a autenticação de certificados:
- Comando :
icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys"
- Pass : A saída é semelhante a Todos:(R,W) BUILTIN\Administradores:(F)
- Falha : A saída não corresponde a Todos:(R,W) BUILTIN\Administradores:(F)
- Comando :
Certifique-se de que as configurações do cliente antivírus/proteção de endpoint permitem o número de porta e os serviços configurados.
Verifique os limites de tempo limite da sessão
Se você conseguir estabelecer uma conexão RDP, mas for desconectado após algum tempo com uma mensagem mencionando que seu temporizador expirou, verifique se os seguintes valores estão conforme o esperado:
Caminho do Registro: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
Chaves de registro:
-
MaxDisconnectionTime
-
MaxIdleTime
-
MaxConnectionTime
-
MaxDisconnectionTime
-
RemoteAppLogoffTimeLimit
Esses valores são definidos em milissegundos. Se essas chaves estiverem faltando no seu registro, não haverá limites de sessão na sua instância de VM. Se essas chaves estiverem presentes em seu registro, mas seus valores estiverem definidos como 0
, sua sessão nunca expirará.
Solucionar problemas de inicialização do Windows
Se as etapas de solução de problemas acima não resolverem o problema de conexão RDP, sua instância do Windows pode não estar inicializando ou funcionando corretamente. Nesse caso, consulte nosso guia para solução de problemas do Windows .
O que vem a seguir
Saiba mais sobre como solucionar problemas do sistema operacional Windows .
Saiba como coletar informações de diagnóstico de uma VM .
Saiba mais sobre a solução de problemas usando o console serial .
Aprenda como capturar capturas de tela de VMs .