Os Serviços de Área de Trabalho Remota não estão iniciando em uma VM do Azure

Este artigo descreve como solucionar problemas quando você se conecta a uma máquina virtual (VM) do Azure e os Serviços de Área de Trabalho Remota, ou TermService, não estão iniciando ou falham ao iniciar.

Sintomas

Ao tentar se conectar a uma VM, você enfrenta os seguintes cenários:

  • A captura de tela da VM mostra que o sistema operacional está totalmente carregado e aguardando as credenciais.

    A captura de tela mostra que o sistema operacional está totalmente carregado e aguardando as credenciais.

  • Você visualiza remotamente os logs de eventos na VM usando o Visualizador de Eventos. Você vê que os Serviços de Área de Trabalho Remota, TermService, não estão iniciando ou falham ao iniciar. O registro a seguir é uma amostra:

    Nome do Log: Sistema
    Fonte: Gerenciador de Controle de Serviço
    Data: 16/12/2017 11:19:36 AM
    ID do evento: 7022
    Categoria da tarefa: Nenhuma
    Nível: Erro
    Palavras-chave: Clássico
    Usuário: N/A
    Computador: vm.contoso.com
    Descrição: O serviço Serviços de Área de Trabalho Remota travou ao iniciar.

    Você também pode usar o recurso Serial Access Console para procurar esses erros executando a seguinte consulta:

    wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Service Control Manager'] and EventID=7022 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
    

Motivo

Esse problema ocorre porque os Serviços de Área de Trabalho Remota não estão sendo executados na VM. A causa pode depender dos seguintes cenários:

  • O serviço TermService está definido como Desativado.
  • O serviço TermService está travando ou não está respondendo.
  • O TermService não está iniciando devido a uma configuração incorreta.

Solução

Para solucionar esse problema, use o console serial. Ou então repare a VM off-line anexando o disco do sistema operacional da VM a uma VM de recuperação.

Usar console serial

  1. Acesse o Console Serial selecionando Suporte e Solução de problemas>Console Serial. Se o recurso estiver habilitado na VM, você poderá conectar a VM com sucesso.

  2. Crie um novo canal para uma instância CMD. Digite CMD para iniciar o canal e obter o nome do canal.

  3. Mude para o canal que está executando a instância CMD. Nesse caso, deve ser o canal 1.

    ch -si 1
    
  4. Selecione Enter novamente e insira um nome de usuário e senha válidos, local ou ID de domínio, para a VM.

  5. Verifique o status do serviço TermService:

    sc query TermService
    
  6. Se o status do serviço mostrar Parado, tente iniciar o serviço:

    sc start TermService
    
  7. Consulte o serviço novamente para garantir que ele foi iniciado com sucesso:

    sc query TermService
    
  8. Se o serviço falhar ao iniciar, siga a solução com base no erro que você recebeu:

    Error Suggestion
    5 - ACESSO NEGADO Consulte O serviço TermService foi interrompido devido a um erro de acesso negado.
    1053 - ERROR_SERVICE_REQUEST_TIMEOUT Consulte O serviço TermService está desativado.
    1058 - ERROR_SERVICE_DISABLED Consulte O serviço TermService falha ou trava.
    1059 - ERROR_CIRCULAR_DEPENDENCY Entre em contato com o suporte para resolver seu problema rapidamente.
    1067 - ERROR_PROCESS_ABORTED Consulte O serviço TermService falha ou trava.
    1068 - ERROR_SERVICE_DEPENDENCY_FAIL Entre em contato com o suporte para resolver seu problema rapidamente.
    1069 - ERROR_SERVICE_LOGON_FAILED Consulte O serviço TermService falha devido a uma falha de logon
    1070 - ERROR_SERVICE_START_HANG Consulte O serviço TermService falha ou trava.
    1077 - ERROR_SERVICE_NEVER_STARTED Consulte O serviço TermService está desativado.
    1079 - ERROR_DIFERENCE_SERVICE_ACCOUNT Entre em contato com o suporte para resolver seu problema rapidamente.
    1753 Entre em contato com o suporte para resolver seu problema rapidamente.

O serviço TermService foi interrompido devido a um problema de acesso negado

  1. Conecte-se ao Serial Console e abra uma instância do PowerShell.

  2. Baixe a ferramenta Process Monitor executando o seguinte script:

    remove-module psreadline  
    $source = "https://download.sysinternals.com/files/ProcessMonitor.zip" 
    $destination = "c:\temp\ProcessMonitor.zip" 
    $wc = New-Object System.Net.WebClient 
    $wc.DownloadFile($source,$destination) 
    
  3. Agora inicie um rastreamento procmon:

    procmon /Quiet /Minimized /BackingFile c:\temp\ProcMonTrace.PML 
    
  4. Reproduza o problema iniciando o serviço que está dando Acesso negado:

    sc start TermService 
    

    Quando falhar, encerre o rastreamento do Monitor do Processo:

    procmon /Terminate 
    
  5. Colete o arquivo c:\temp\ProcMonTrace.PML:

    1. Anexar um disco de dados à VM.
    2. Use o console serial para copiar o arquivo para a nova unidade. Por exemplo, copy C:\temp\ProcMonTrace.PML F:\. Neste comando, F é a letra do driver do disco de dados anexado.
    3. Desanexe a unidade de dados e anexe-a a uma VM em funcionamento que tenha o Monitor de Processo ubstakke instalado.
  6. Abra ProcMonTrace.PML usando o Process Monitor da VM em funcionamento. Em seguida, filtre por O resultado é ACESSO NEGADO, conforme mostrado na captura de tela a seguir:

    Captura de tela da filtragem por resultado na janela Filtro do monitor de processo.

  7. Corrija as chaves de registro, pastas ou arquivos que estão na saída. Normalmente, esse problema é causado quando a conta de login usada no serviço não tem permissão ACL para acessar esses objetos. Para saber a permissão de ACL correta para a conta de login, você pode verificar uma VM íntegra.

O serviço TermService está desativado

  1. Restaure o serviço para seu valor de inicialização padrão:

    sc config TermService start= demand 
    
  2. Iniciar o serviço:

    sc start TermService
    
  3. Consulte seu status novamente para garantir que o serviço esteja em execução:

    sc query TermService 
    
  4. Tente se conectar à VM usando a Área de Trabalho Remota.

O serviço TermService falha devido a uma falha de logon

  1. Esse problema ocorre se a conta de inicialização desse serviço foi alterada. Mudou isso de volta ao seu padrão:

    sc config TermService obj= 'NT Authority\NetworkService'
    
  2. Iniciar o serviço:

    sc start TermService
    
  3. Tente se conectar à VM usando a Área de Trabalho Remota.

O serviço TermService falha ou trava

  1. Se o status do serviço estiver preso em Iniciando ou Parando, tente parar o serviço:

    sc stop TermService
    
  2. Isole o serviço em seu próprio contêiner 'svchost':

    sc config TermService type= own
    
  3. Iniciar o serviço:

    sc start TermService
    
  4. Se o serviço ainda não iniciar, Entre em contato com o suporte.

Repare a VM off-line

Anexe o disco do sistema operacional a uma VM de recuperação

  1. Anexe o disco do SO a uma VM de recuperação.

  2. Inicie uma conexão de área de trabalho remota com a VM de recuperação. Certifique-se de que o disco anexado esteja sinalizado como Online no console de gerenciamento de disco. Observe a letra da unidade atribuída ao disco do sistema operacional anexado.

  3. Abra uma instância elevada do prompt de comando (Executar como administrador). Em seguida, execute o script a seguir. Assumimos que a letra da unidade atribuída ao disco do sistema operacional anexado é F. Substitua-o pelo valor apropriado em sua VM.

    reg load HKLM\BROKENSYSTEM F:\windows\system32\config\SYSTEM
    
    REM Set default values back on the broken service 
    reg add "HKLM\BROKENSYSTEM\ControlSet001\services\TermService" /v start /t REG_DWORD /d 3 /f
    reg add "HKLM\BROKENSYSTEM\ControlSet001\services\TermService" /v ObjectName /t REG_SZ /d "NT Authority\NetworkService“ /f
    reg add "HKLM\BROKENSYSTEM\ControlSet001\services\TermService" /v type /t REG_DWORD /d 16 /f
    reg add "HKLM\BROKENSYSTEM\ControlSet002\services\TermService" /v start /t REG_DWORD /d 3 /f
    reg add "HKLM\BROKENSYSTEM\ControlSet002\services\TermService" /v ObjectName /t REG_SZ /d "NT Authority\NetworkService" /f
    reg add "HKLM\BROKENSYSTEM\ControlSet002\services\TermService" /v type /t REG_DWORD /d 16 /f
    
  4. Desanexe o disco do SO e recrie a VM. Faça um teste para verificar se o problema foi resolvido.

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.