Solucionar problemas de conexão RDP da VM do Azure por ID do evento
Aplica-se a: ✔️ VMs do Windows
Este artigo explica como usar IDs de evento para solucionar problemas que impedem uma conexão de protocolo de área de trabalho remota (RDP) a uma máquina virtual (VM) do Azure.
Sintomas
Você tenta usar uma sessão de protocolo de área de trabalho remota (RDP) para se conectar a uma VM do Azure. Após você inserir suas credenciais, a conexão falha e a seguinte mensagem de erro é exibida:
Este computador não pode se conectar ao computador remoto. Tente se conectar novamente e, se o problema persistir, entre em contato com o proprietário do computador remoto ou o administrador da rede.
Para solucionar esse problema, revise os logs de eventos na VM e consulte os seguintes cenários.
Antes de solucionar problemas
Criar um instantâneo de backup
Para criar um instantâneo de backup, siga as etapas em Instantâneo de um disco.
Conecte-se à VM remotamente
Para se conectar à VM remotamente, use um dos métodos em Como usar ferramentas remotas para solucionar problemas de VM do Azure.
Cenário 1
Logs de eventos
Em uma instância CMD, execute os seguintes comandos para verificar se o evento 1058 ou 1057 foi registrado no log do sistema nas últimas 24 horas:
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-TerminalServices-RemoteConnectionManager'] and EventID=1058 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-TerminalServices-RemoteConnectionManager'] and EventID=1057 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
Nome do log: Sistema
Fonte: Microsoft-Windows-TerminalServices-RemoteConnectionManager
Data: hora
ID do evento: 1058
Categoria da tarefa: Nenhum
Nível: Erro
Palavras-chave: Clássico
Usuário: N/A
Computador: computador
Descrição: O Servidor Host de Sessão RD falhou ao substituir o certificado autoassinado expirado usado para autenticação do Servidor Host de Sessão RD em conexões TLS. O código de status relevante foi Acesso negado.
Nome do log: Sistema
Fonte: Microsoft-Windows-TerminalServices-RemoteConnectionManager
Data: hora
ID do evento: 1058
Categoria da tarefa: Nenhum
Nível: Erro
Palavras-chave: Clássico
Usuário: N/A
Computador: computador
Descrição: O servidor host da Sessão RD falhou ao criar um novo certificado autoassinado para ser usado para autenticação do servidor host da Sessão RD em conexões TLS, o código de status relevante era o objeto já existente.
Nome do log: Sistema
Fonte: Microsoft-Windows-TerminalServices-RemoteConnectionManager
Data: hora
ID do evento: 1057
Categoria da tarefa: Nenhum
Nível: Erro
Palavras-chave: Clássico
Usuário: N/A
Computador: computador
Descrição: O Servidor Host de Sessão RD falhou ao criar um novo certificado autoassinado para ser usado para autenticação do Servidor Host de Sessão RD em conexões TLS. O código de status relevante era O conjunto de chaves não existe
Você também pode verificar os eventos de erro SCHANNEL 36872 e 36870 executando os seguintes comandos:
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36870 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36872 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
Nome do log: Sistema
Fonte: Schannel
Data: —
ID do evento: 36870
Categoria da tarefa: Nenhum
Nível: Erro
Palavras-chave:
Usuário: SISTEMA
Computador: computador
Descrição: Ocorreu um erro fatal ao tentar acessar a chave privada da credencial do servidor TLS. O código de erro retornado pelo módulo de criptografia é 0x8009030D.
O estado de erro interno é 10001.
Motivo
Esse problema ocorre porque as chaves de criptografia RSA locais na pasta MachineKeys na VM não podem ser acessadas. Este problema ocorre por um dos seguintes motivos:
Configuração de permissões incorretas na pasta Machinekeys ou nos arquivos RSA.
Chave RSA corrompida ou ausente.
Resolução
Para solucionar esse problema, você precisa configurar as permissões corretas no certificado RDP usando estas etapas.
Conceder permissão para a pasta MachineKeys
Crie um script usando o seguinte conteúdo:
remove-module psreadline icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\BeforeScript_permissions.txt takeown /f "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /a /r icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\System:(F)" icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\NETWORK SERVICE:(R)" icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "BUILTIN\Administrators:(F)" icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\AfterScript_permissions.txt Restart-Service TermService -Force
Execute este script para redefinir as permissões da pasta MachineKey e redefinir os arquivos RSA para os valores padrão.
Tente acessar a VM novamente.
Depois de executar o script, você pode verificar os seguintes arquivos com problemas de permissão:
- C:\temp\BeforeScript_permissions.txt
- C:\temp\AfterScript_permissions.txt
Criar um certificado RDP autoassinado
Se o problema persistir, execute o seguinte script para garantir que o certificado autoassinado RDP seja renovado:
Import-Module PKI
Set-Location Cert:\LocalMachine
$RdpCertThumbprint = 'Cert:\LocalMachine\Remote Desktop\'+((Get-ChildItem -Path 'Cert:\LocalMachine\Remote Desktop\').thumbprint)
Remove-Item -Path $RdpCertThumbprint
Stop-Service -Name "SessionEnv"
Start-Service -Name "SessionEnv"
Se você não conseguir renovar o certificado, siga estas etapas para tentar excluí-lo:
Em outra VM na mesma VNET, abra a caixa Executar, digite mmc e pressione OK.
No menu Arquivo, clique em Adicionar/Remover Snap-in.
Na lista Snap-ins disponíveis, selecione Certificados e, em seguida, Adicionar.
Selecione Conta do computador e Avançar.
Selecione Outro computador e adicione o endereço IP da VM com problemas.
Observação
Tente usar a rede interna para evitar o uso de um endereço IP virtual.
Selecione Concluir e, em seguida, selecione OK.
Expanda os certificados, vá para a pasta Remote Desktop\Certificates, clique com o botão direito do mouse no certificado e selecione Excluir.
Reiniciar o serviço de configuração dos Serviços de Área de Trabalho Remota
net stop SessionEnv net start SessionEnv
Observação
Neste ponto, se você atualizar o armazenamento do mmc, o certificado reaparecerá.
Tente acessar a VM usando o RDP novamente.
Atualizar certificado TLS/SSL
Se você configurar a VM para usar um certificado TLS/SSL, execute o seguinte comando para obter a impressão digital. Em seguida, verifique se é igual à impressão digital do certificado:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash
Caso não esteja, altere a impressão digital
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash /t REG_BINARY /d <CERTIFICATE THUMBPRINT>
Você também pode tentar excluir a chave para que o RDP use o certificado autoassinado para RDP:
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash
Cenário 2
Log de eventos
Em uma instância CMD, execute os seguintes comandos para verificar se o evento de erro SCHANNEL 36871 foi registrado no log do sistema nas últimas 24 horas:
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36871 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
Nome do log: Sistema
Fonte: Schannel
Data: —
ID do evento: 36871
Categoria da tarefa: Nenhum
Nível: Erro
Palavras-chave:
Usuário: SISTEMA
Computador: computador
Descrição: Ocorreu um erro fatal ao criar uma credencial de servidor TLS. O estado de erro interno é 10013.
Motivo
Esse problema é causado por políticas de segurança. Quando versões mais antigas do TLS (como 1.0) são desativadas, o acesso RDP falha.
Resolução
O RDP usa o TLS 1.0 como o protocolo padrão. No entanto, o protocolo pode ser alterado para TLS 1.1, que é o novo padrão.
Para solucionar esse problema, consulte Solucionar erros de autenticação ao usar o RDP para se conectar à VM do Azure.
Cenário 3
Se você instalou a função Remote Desktop Connection Broker na VM, verifique se há evento 2056 ou evento 1296 nas últimas 24 horas. Em uma instância CMD, execute os seguintes comandos:
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name=' Microsoft-Windows-TerminalServices-SessionBroker '] and EventID=2056 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name=' Microsoft-Windows-TerminalServices-SessionBroker-Client '] and EventID=1296 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
Nome do log: Microsoft-Windows-TerminalServices-SessionBroker/Operational
Fonte: Microsoft-Windows-TerminalServices-SessionBroker
Data: hora
ID do evento: 2056
Categoria da Tarefa: (109)
Nível: Erro
Palavras-chave:
Usuário: SERVIÇO DE REDE
Computador: computador fqdn
Descrição: A descrição da ID do Evento 2056 da fonte Microsoft-Windows-TerminalServices-SessionBroker não pode ser encontrada. O componente que gera esse evento não está instalado no computador local ou a instalação está corrompida. Você pode instalar ou reparar o componente no computador local.
Se o evento se originou em outro computador, as informações de exibição tiveram que ser salvas com o evento.
As seguintes informações foram incluídas no evento:
ZERO
ZERO
O logon no banco de dados falhou.
Nome do log: Microsoft-Windows-TerminalServices-SessionBroker-Client/Operational
Fonte: Microsoft-Windows-TerminalServices-SessionBroker-Client
Data: hora
ID do evento: 1296
Categoria de Tarefa: (104)
Nível: Erro
Palavras-chave:
Usuário: SERVIÇO DE REDE
Computador: computador fqdn
Descrição: A descrição da ID de evento 1296 da origem Microsoft-Windows-TerminalServices-SessionBroker-Client não pode ser encontrada. O componente que gera esse evento não está instalado no computador local ou a instalação está corrompida. Você pode instalar ou reparar o componente no computador local.
Se o evento se originou em outro computador, as informações de exibição tiveram que ser salvas com o evento.
As seguintes informações foram incluídas no evento:
text
text
O Agente de Conexão de Área de Trabalho Remota não está pronto para comunicação RPC.
Motivo
Esse problema ocorre porque o nome do host do servidor Agente de Conexão de Área de Trabalho Remota foi alterado, o que não é uma alteração com suporte.
O nome do host tem entradas e dependências no Banco de Dados Interno do Windows, que é exigido pelo farm do Serviço de Área de Trabalho Remota para poder funcionar. Alterar o nome do host depois que o farm já foi criado causa muitos erros e pode fazer com que o servidor intermediário pare de funcionar.
Resolução
Para corrigir esse problema, a função Agente de Conexão de Área de Trabalho Remota e o Banco de Dados Interno do Windows devem ser reinstalados.
Próximas etapas
Visão geral técnica Schannel SSP
Schannel 36872 ou Schannel 36870 em um controlador de domínio
Event ID 1058 — Autenticação e Criptografia dos Serviços de Área de Trabalho Remota
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.