Solução de problemas do RDP


Em algumas situações, talvez você não consiga se conectar à instância de máquina virtual (VM, na sigla em inglês) do Windows no Compute Engine com RDP. Isso pode ocorrer por erros de configuração ou de rede ou, ainda, porque o processo de inicialização pode não ter sido concluído.

Nesta página, há algumas dicas para resolver problemas comuns do RDP.

Garanta que a instância esteja on-line e pronta

Depois que a inicialização da VM for concluída, o que pode levar alguns minutos, confirme o estado dela usando um dos seguintes métodos:

Porta serial 1

A porta serial 1 é usada para registrar atividades de sistemas e aplicativos. Visualize a saída para determinar se a VM foi concluída e se os serviços foram iniciados corretamente.

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique no nome da VM com os registros que você quer ver. A página de detalhes da instância de VM será aberta.

  3. Em registros, selecione Porta serial 1.

  4. Analise a saída da porta serial 1 e procure um resultado semelhante a este:

    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 sucesso. Tente se reconectar à VM usando o 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 de administração especial (SAC, na sigla em inglês) . Use o console serial 2 para determinar se os serviços do sistema foram iniciados com sucesso.

  1. No Console do Google Cloud, acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Clique no nome da VM com os registros que você quer ver. A página de detalhes da instância de VM será aberta.

  3. Em registros, expanda Mais e clique em Porta serial 2 (console).

  4. Analise 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 se reconectar à VM usando o 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.

  1. Antes de realizar uma captura de tela da VM, você precisa ativar a exibição virtual da VM. Se você ainda não ativou a exibição virtual, consulte Como ativar exibições virtuais.

  2. Faça uma captura de tela. Para mais informações, consulte Como fazer a captura de tela de uma VM.

  3. Veja a captura de tela para ver se a instância está pronta.

Compare a captura de tela com as informações a seguir para determinar o estado atual:

Se o Windows não tiver sido iniciado depois de alguns minutos, consulte o guia Solução de problemas do Windows.

Verificar a conectividade entre a estação de trabalho e a instância de VM

Se você tiver problemas ao conectar sua VM do Windows, recomendamos identificar se o problema está na estação de trabalho que você está usando ou na VM a que está se conectando. Verifique a conectividade entre a estação de trabalho e a VM executando o seguinte comando na estação de trabalho Linux, macOS ou Windows:

curl -v telnet://DESTINATION_IP_ADDRESS:PORT

Substitua:

  • DESTINATION_IP_ADDRESS: o endereço IP da VM do Windows.
  • PORT: a porta configurada para se conectar por RDP na VM do Windows.

Também é possível usar Testes de conectividade para verificar melhor a conectividade entre a instância de VM e outros produtos e serviços do Google Cloud. Além disso, talvez seja útil configurar um Bastion Host na mesma sub-rede para isolar problemas de conectividade do RDP na instância de VM.

Verificar sua senha da instância do Windows

Cada instância do Compute Engine do Windows deve ter uma senha local definida caso ainda não esteja em um domínio ou imagem personalizada. Confirme se você tem a senha correta definida ao se conectar à VM pela ferramenta de linha de comando Google Cloud CLI ou pelo console do Google Cloud. Para mais informações, consulte Conectar-se a VMs do Windows usando o SAC.

Se você tiver problemas para se conectar, tente criar ou redefinir a senha. Para mais informações, consulte Como criar senhas para VMs do Windows.

Verificar se você está usando o Windows Server Core

Se aparecer uma janela do prompt de comando em um plano de fundo em branco ao se conectar usando RDP, isso provavelmente indica que você está usando o Windows Server Core. Para confirmar se você está, execute o comando abaixo:

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

Server Core na saída confirma que você está usando a edição do 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 a carga de trabalho, veja como criar uma instância do Windows que contenha Experiência Desktop em vez de Server Core. Também é possível consultar a documentação da Microsoft para gerenciar o servidor do Windows Core.

Verificar as regras de firewall VPC

O Compute Engine provisiona automaticamente novos projetos com uma regra de firewall que permite o tráfego RDP. Se você já tiver um projeto ou tiver modificado as configurações, a regra de firewall padrão que permite o RDP pode não existir. Confirme se uma regra permite que o tráfego RDP se conecte à rede onde está sua instância afetada.

Para verificar se a regra de firewall default-allow-rdp existe no seu projeto, verifique a página Regras de firewall ou execute o comando CLI gcloud a seguir:

gcloud compute firewall-rules list

Para criar uma nova regra, caso não tenha uma, use o comando a seguir:

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

Verificar o endereço IP externo

Verifique se você está se conectando ao endereço IP externo correto da instância. Consulte o IP na página da instância da VM ou use o seguinte comando do CLI do gcloud:

gcloud compute instances list

Uso dos Serviços de Área de Trabalho Remota do Windows (RDS, na sigla em inglês)

Se você tiver os Serviços de Área de Trabalho Remota do Windows (antes conhecidos como Serviços de Terminal) instalados em sua instância, as condições das Licenças de Acesso do Cliente (CALs, na sigla em inglês) serão aplicadas. Com essas CALs, as conexões RDP falharão em qualquer uma das condições a seguir:

  • Você usou todas as licenças disponíveis
  • Sua licença está instalada, mas não está configurada ou foi ativada corretamente
  • Seu período de avaliação do RDS de 180 dias expirou

Os sintomas de que você talvez não tenha 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 para cliente de área de trabalho remota disponíveis para este computador.

Se suas conexões RDP falharem, use a opção admin para se conectar à instância para fins administrativos. Isso pode ser feito em uma máquina Windows usando o cliente de Conexão de Área de Trabalho Remota nativo.

%systemroot%/system32/mstsc.exe /admin

Duas sessões de computador remoto simultâneas 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 mais detalhes sobre CALs, consulte a documentação da Microsoft. Como alternativa, se os Serviços da área de trabalho remota não forem obrigatórios, desinstale o serviço e use conexões RDP regulares.

Validar a configuração e os recursos no nível do SO

Se o ambiente convidado e as configurações da instância estiverem corretos, é possível que o sistema operacional na instância esteja configurado incorretamente. Além disso, sem os recursos adequados, é possível que uma conexão RDP não seja estabelecida. Para validar a configuração no nível do SO, conecte-se ao Windows SAC:

Garantir 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 os limites. Esses dados podem ser inspecionados consultando as métricas de observabilidade no console do Google Cloud. Algumas métricas estão disponíveis apenas para VMs que têm o Agente de operações instalado. Como alternativa, se o Agente de operações não estiver instalado, use os seguintes comandos quando estiver conectado ao SAC:

Uso da CPU, uso da memória, uso do disco e capacidade do disco

  • Uso da CPU:
    typeperf "\Processor(_Total)\% Processor Time" -sc 5
  • Uso da memória:
    typeperf "\Memory\% Committed Bytes In Use" -sc 5
  • Uso do disco:
    typeperf "\LogicalDisk(*)\% Idle Time" -sc 5
  • Capacidade do disco:
    fsutil volume diskfree C:

Veja a seguir os usos de recursos recomendados para uma conexão RDP, mas são apenas estimativas e podem variar entre as instâncias.

  • CPU: <80%
  • Memória: <80%
  • Espaço em disco: >20%
  • Disco inativo: >50%

Se alguma das estimativas sugeridas estiver atingindo o limite, é possível 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.

Verificar a configuração do SO

Conecte-se à instância por meio do SAC e execute os seguintes comandos para garantir que a instância esteja aceitando conexões:

  1. Verifique se o adaptador Ethernet está ativado:

    • 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 é definido como Desativado no nome da interface rotulado como Ethernet.
    • Solução: ative o adaptador Ethernet:
      netsh interface set interface Ethernet admin=enabled
  2. Verifique se a instância tem uma configuração de IP válida:

    • Comando:
      ipconfig /all
    • Aprovado: o adaptador Ethernet Ethernet mostrará um endereço IPv4 da sub-rede à qual a instância foi atribuída.
    • Com falha: não há endereço IPv4 ou um endereço que não corresponde ao que é mostrado no console do Google Cloud.
    • Solução: siga para a próxima etapa.
  3. 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 Ethernet:
      netsh interface ipv4 set address Ethernet dhcp
  4. Verifique se o "Serviço de Área de Trabalho Remota" está em execução:

    • Comando:
      net start | find "Remote Desktop Services"
    • Aprovado: Remote Desktop Service
    • Com falha: (Remote Desktop Service não aparece no resultado)
    • Solução: inicie os serviços da Área de trabalho remota:
      net start "Remote Desktop Services"
  5. Verifique se as Conexões remotas estão ativadas:

    • Comando:
      reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
    • Aprovado: fDenyTSConnections REG_DWORD 0x0
    • Com falha: fDenyTSConnections REG_DWORD 0x1
    • Solução: ative as conexões da área de trabalho remota no registro:
      reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0
  6. Certifique-se de que o firewall do Windows tenha Conexões de área de trabalho remota ativadas:

    • Comando:
      netsh advfirewall firewall show rule name="Remote Desktop -User Mode (TCP-In)"
    • Aprovado: Enabled:Yes, Direction: In, Profiles: Public, Grouping: Remote Desktop, LocalIP: Any, RemoteIP: Any, Protocol:TCP, LocalPort: 3389, RemotePort: Any, Edge traversal: No, Action: Allow

    • Com falha: (resultados inesperados, como "enabled = No")

    • Solução: ative 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

  7. Verifique se o número da 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
    • Aprovado: PortNumber REG_DWORD [PORT NUMBER]
    • Com falha: (unexpected port number)
    • Solução: configure o número da porta no registro 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]

  8. 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 um status Ouvir. O serviço correspondente pode ser encontrado com o identificador de processo (PID, na sigla em inglês) usando o seguinte comando:
      tasklist /svc | find ""
      em que PID é o identificador do comando anterior. A saída precisa ter apenas Termservice sendo retornado.
    • Com falha: tudo menos o Termservice está usando a porta atribuída.
    • Solução: configurar o aplicativo/serviço para usar outro número de porta.
  9. Certifique-se de que a conta de usuário conectada tenha permissões para conexões remotas:

    • Comando:
      net localgroup "Remote Desktop Users"
    • Aprovado: (nome de usuário do domínio/local de destino aparece na lista resultante)
    • Com falha: (nome de usuário do domínio/local de destino não aparece na lista resultante)
    • Solução: adicione a regra "Usuários da Á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 vinculado a um domínio diferente. Para contas locais, especifique apenas o nome de usuário.

  10. Verifique se a negociação de segurança do cliente/servidor está definida como o valor padrão:

    • Comando:
      reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer
    • Aprovado: SecurityLayer REG_DWORD 0x1
    • Com falha: SecurityLayer REG_DWORD 0x0 (ou 0x2)
    • Solução: defina o valor da 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
  11. Em situações em que a instância está conectada a um domínio do Active Directory, mas não foi possível estabelecer a conexão, é possível que você receba o seguinte erro ao tentar acessar a 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 está definido como o valor padrão da autenticação no nível da rede (NLA, na sigla em inglês):

    • Comando:
      reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication
    • Aprovado: UserAuthentication REG_DWORD 0x0
    • Com falha: UserAuthentication REG_DWORD 0x1
    • Solução: defina o valor da autenticação no nível da rede no registro:
      reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
  12. Verifique se o tamanho da sua MTU não é maior do que a MTU da rede:

    • Comando:
      netsh interface ipv4 show subinterfaces
    • Aprovado: quando o número após a MTU corresponde à MTU da rede VPC.
    • Não aprovado: quando o número após a MTU é maior do que a 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 nossa documentação sobre fragmentação de pacotes.

  13. Se você tentar se conectar à VM usando o RDP e ela exibir a tela de layout do teclado, será necessário selecionar um idioma conectando-se ao SAC do Windows. Para selecionar um idioma, siga estas etapas:

    1. Conecte-se ao SAC.
    2. Abra o PowerShell digitando powershell.
    3. Use a string de idioma correta.

      Get-WinUserLanguageList
    4. Defina o layout desejado. Substitua LANGUAGE_TAG pelo layout da linguagem que você quer (por exemplo, en-US).

      Set-WinUserLanguageList -LanguageList LANGUAGE_TAG -force
    5. Reinicie a instância.

      shutdown -r -t 0
  14. Para erros de RDP na tela de login mencionando you need the right to sign in through Remote Desktop Services ou you must be granted the Allow log on through Terminal Services right, o grupo de usuários ou administradores da Área de trabalho remota foi removido da configuração da política do computador local encontrada em Permitir login pelos serviços de área de trabalho remota ou SeRemoteInteractiveLogonRight.

  15. Verifique se não há permissões ausentes bloqueando a autenticação de certificados:

    • Comando:
      icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys"
    • Aprovado: a saída é semelhante a Everyone:(R,W) BUILTIN\Administrators:(F)
    • Reprovado: a saída não corresponde a Everyone:(R,W) BUILTIN\Administrators:(F).
  16. Verifique se as configurações do cliente de proteção antivírus/endpoint permitem o número de porta e os serviços configurados.

Verificar os limites de tempo limite da sessão

Se você conseguir estabelecer uma conexão RDP, mas estiver desconectado depois de algum tempo com uma mensagem mencionando que o Timer expirou, verifique se os seguintes valores estão conforme o esperado:

Caminho de 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 ausentes no registro, não haverá limites de sessão na instância de VM. Se essas chaves estiverem presentes no registro, mas os valores delas estiverem definidos como 0, a sessão nunca vai expirar.

Resolver problemas de inicialização do Windows

Se as etapas de solução de problemas acima não resolveram o problema de conexão RDP, a instância do Windows pode não estar sendo inicializada ou executada corretamente. Nesse caso, consulte nosso guia de solução de problemas no Windows.

A seguir