Uma das principais dificuldades que afligem os administradores de sistemas Windows é quando os computadores do Active Directory parecem sair do domínio. O infame erro “a relação de confiança entre esta estação de trabalho e o domínio principal falhou” é muito comum.
Neste guia, você aprenderá todos os truques que encontrei ao longo dos meus mais de 20 anos gerenciando o Active Directory e como automatizá-los com o PowerShell.
Mensagem de erro “A relação de confiança entre esta estação de trabalho e o domínio principal falhou“
Quando um domínio AD não confia mais em um computador, é provável que seja porque a senha do computador local não corresponde à senha armazenada no Active Directory.

As duas senhas devem estar sincronizadas para que o AD confie em um computador. Se não estiverem sincronizadas, você receberá a famosa mensagem de erro “a relação de confiança entre esta estação de trabalho e o domínio principal falhou“.
Infelizmente, nunca houve uma solução única que eu ou outros administradores de sistemas encontrassem que funcionasse 100% do tempo. É por isso que escrevi este guia.
Este guia pretende ser um único repositório para todas as maneiras de corrigir esse problema de uma vez por todas e automatizar o processo com o PowerShell.
Senhas de Contas de Computadores do Active Directory
Quando um novo computador é adicionado ao Active Directory, uma conta de computador é criada com uma senha. Essa senha é válida por padrão por 30 dias. Após 30 dias, ela é alterada automaticamente. Se ela mudar e a senha do cliente não mudar, você receberá a mensagem de erro “a relação de confiança entre esta estação de trabalho e o domínio principal falhou”.
Visualizando Políticas Existente
Você pode visualizar a política em toda a domínio abrindo o Console de Gerenciamento de Diretiva de Grupo (GPMC). Dentro do GPMC, clique na Política de Domínio Padrão, e navegue até Configuração do Computador –> Configurações do Windows –> Configurações de Segurança > Políticas Locais > Opções de Segurança.
Uma vez em Opções de Segurança, procure pela política chamada Membro do Domínio: Idade máxima da senha da conta da máquina.

Em um computador associado ao AD, abra o regedit e vá para a chave do registro HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters e encontre o valor MaximumPasswordAge conforme mostrado abaixo.

Enquanto estiver lá, você pode desabilitar o computador local de alterar a senha completamente, configurando o valor DisablePasswordChange para 1.
Quando a conta do computador muda, tanto o computador local quanto a conta do AD devem alterar suas senhas juntos. O AD conhece a atual e a anterior, caso elas fiquem fora de sincronia por um curto período.
O Processo de Alteração de Senha da Conta do Computador
Quando as coisas estão funcionando normalmente, usando o serviço Netlogon do Windows, o computador inicia automaticamente uma alteração de senha. Isso ocorre durante a reinicialização do computador ou quando o objeto do computador precisa se autenticar no AD.
Usando o serviço Netlogon do Windows, o computador local inicia uma sequência de alteração de senha. O computador primeiro inicia uma alteração de senha em um controlador de domínio. Se for bem-sucedido, ele tenta então alterar a senha local para coincidir com a chave de registro HKLM\SECURITY\Policy\Secrets<hostname>.ACC.
Normalmente, esse processo funciona muito bem, mesmo se o computador for desligado ou estiver offline por mais de 30 dias, porque o computador local inicia uma alteração de senha.
No entanto, um problema ocorre quando:
- o computador altera a conta do computador no AD, mas não consegue alterar a senha local
- o computador é reimaged sem executar o Sysprep
- o sistema operacional é reinstalado e está tentando se autenticar com a conta de computador antiga, habilitada, no AD
- e mais?
Se qualquer uma das situações acima ocorrer, você verá a mensagem de erro “a relação de confiança entre esta estação de trabalho e o domínio principal falhou.”
Verificando o Problema
Depois de identificar o problema, como replicá-lo ou pelo menos ter um método para determinar quais computadores têm o problema? Você poderia tentar fazer login interativamente em cada computador, mas isso não é escalável e eu não quero sair da minha mesa!
Vamos construir um script que possamos executar tanto localmente quanto remotamente para determinar quais computadores no domínio têm esse problema e erradicar de vez a mensagem de erro “a relação de confiança entre esta estação de trabalho e o domínio principal falhou”.
Primeiramente, como você está assumindo que a autenticação de domínio não está funcionando, será necessário saber uma conta de usuário local no grupo de administradores. Espero que saiba a senha do seu administrador local!
O nltest (Ferramenta de Linha de Comando)
nltest é uma ferramenta de linha de comando antiga que testará a relação de confiança para um computador. Essa ferramenta é instalada quando você instala RSAT ou está disponível diretamente em um controlador de domínio.
Você pode verificar uma relação de confiança em um computador quando estiver logado nele, executando:
AVISO: Este método não é recomendado porque o nltest só funciona no contexto do usuário em que foi iniciado. Se o computador tiver uma relação de confiança quebrada e você estiver logado como usuário local, ele tentará se conectar ao domínio usando as credenciais do usuário local. Isso resultará em um erro de acesso negado.
netdom (Ferramenta de Linha de Comando)
netdom é outra ferramenta de linha de comando que você pode usar para verificar um relacionamento de confiança. Esta ferramenta também é instalada quando você instala RSAT ou está disponível diretamente em um controlador de domínio.
Você pode verificar um relacionamento de confiança usando netdom verify
fornecendo:
- o nome do computador para verificar
- FQDN do domínio
- nome de usuário para autenticar a solicitação
- senha da conta do usuário
Abaixo está um exemplo:
Ao fornecer o valor de *
para o parâmetro PasswordO
, netdom solicitará a senha.
Test-ComputerSecureChannel (PowerShell)
Uma das melhores maneiras de resolver o problema “o relacionamento de confiança entre esta estação de trabalho e o domínio principal falhou” é usar o cmdlet Test-ComputerSecureChannel
. Este cmdlet do PowerShell vem com o Windows 10 e é mais fácil de usar.
O cmdlet Test-ComputerSecureChannel
funciona localmente em um computador com Windows 10. Quando estiver conectado ao computador de forma interativa, abra um console do PowerShell e execute Test-ComputerSecureChannel
sem parâmetros. Ele retornará True ou False dependendo se a confiança é válida.
Você também pode especificar um controlador de domínio específico para confirmar se as senhas estão sincronizadas usando o parâmetro Server
.
Este cmdlet é fácil de usar e possui uma opção Repair
, mas vamos deixar a demonstração disso para a seção de correção.
Se você souber a senha do administrador local desses computadores que deseja verificar e a Remoção do PowerShell estiver habilitada neles, você também pode usar o cmdlet Invoke-Command
. Usando o cmdlet Invoke-Command
, você pode executar remotamente Test-ComputerSecureChannel
em um ou muitos computadores de uma só vez.
Verificação de Relacionamentos de Confiança em Massa
Agora que você sabe como verificar remotamente um relacionamento de confiança, aqui está um trecho de código que você pode usar para verificar todos os seus computadores AD! Neste script, primeiro estou testando para garantir que o computador esteja online. Se não estiver, ele retornará Offline. Se sim, ele executará Test-ComputerSecureChannel
em cada computador e retornará True ou False.
Saber e entender o problema é o primeiro passo, mas como você o corrige? Agora você sabe que precisa fazer com que a conta do computador armazenada no computador local seja a mesma que a conta do computador armazenada no AD.
Existem muitas “soluções” diferentes disponíveis para o problema “a relação de confiança entre esta estação de trabalho e o domínio principal falhou”. Essas soluções podem ser executadas por meio da GUI, por meio do PowerShell ou por meio de ferramentas de linha de comando antigas.
- Redefinir a senha da conta de computador no AD
- Redefinir a senha da conta de computador local
- Remover e reintegrar o computador Windows
- Remover completamente a conta de computador e reintegrar o computador Windows
São muitas opções! Neste guia, vamos nos concentrar em resolver esse problema com o PowerShell e ferramentas de linha de comando (por questão de completude). Se você ainda não está usando o PowerShell, deveria!
Resolvendo o problema: Redefinindo senhas de computador
netdom (Ferramenta de Linha de Comando)
A trust can be repaired and the “the trust relationship between this workstation and the primary domain failed” error message can be eliminated by using the old-school netdom command-line tool. If you’re logged into the computer locally as an administrative user, you can run netdom resetpwd to initiate the password reset sequence as shown below.
Neste exemplo:
- DC é o nome do controlador de domínio
- abertram é o nome da conta de usuário do Active Directory com direitos para redefinir a conta de computador
- * é um espaço reservado para a senha da conta de usuário, que solicitará a senha.
Reset-ComputerMachinePassword (PowerShell)
Uma das melhores maneiras de corrigir uma relação de confiança é usar o cmdlet Reset-ComputerMachinePassword
. Esse cmdlet é executado no computador local e iniciará uma sequência de redefinição de senha. Sua sintaxe não poderia ser mais simples.
Se você deseja especificar um DC específico para redefinir, pode especificá-lo usando o parâmetro Server
junto com uma credencial opcional (que será o usuário local por padrão).
O exemplo abaixo solicitará um nome de usuário e uma senha do AD e tentará redefinir a senha no computador local e no controlador de domínio DC.
Isso também pode ser executado remotamente usando Invoke-Command
se PowerShell Remoting estiver disponível no computador. Abaixo, estou obtendo o nome de usuário e a senha da conta de administrador local no computador. Também estou obtendo a credencial que tem direitos para redefinir a senha da conta do AD deste computador. Em seguida, estou passando $domainCredential
para a sessão remota usando a construção $using
.
Observe que isso também funciona mesmo se a conta do computador tiver sido removida do Active Directory. Crie uma conta de computador com o mesmo nome e
Reset-ComputerMachinePassword
garantirá que a senha seja sincronizada.
Redefinindo Senhas de Conta de Computador Local em Massa
Quer resolver aquele erro “a relação de confiança entre esta estação de trabalho e o domínio primário falhou” em vários computadores de uma vez? Sem problemas. Usando um prático laço foreach, também podemos executar Reset-ComputerMachinePassword
em massa.
Test-ComputerSecureChannel -Repair (PowerShell)
Outra maneira de iniciar o processo de alteração de senha é executar Test-ComputerSecureChannel
, mas desta vez usando a opção Repair
. Pelo que posso perceber, esse processo é idêntico ao uso de Reset-ComputerMachinePassword
. No console do computador, utilize os parâmetros Repair
e Credential
.
Certifique-se de sempre usar o parâmetro Credential
aqui. Se não o fizer, semelhante à utilidade nltest, ele tentará usar a conta local e não funcionará.
Reparar Relacionamentos de Confiança em Massa
Insira este comando no prático loop foreach que temos usado e está feito!
Resolvendo o Problema: Reassociando ao Domínio
Se redefinir as senhas da conta do computador não funcionar para você, há sempre a opção nuclear. Você pode reintegrar um computador ao domínio do Active Directory. Embora não seja necessário o tempo todo, houve momentos em que tive que usar essa abordagem.
Observe que ouvi relatos de que uma desassociação não é necessária. Você pode conseguir apenas forçando uma nova associação. YMMV.
Você poderia:
- logar no computador via uma conta administrativa local
- ir para Propriedades do Sistema
- clicar em Alterar
- definir para um grupo de trabalho
- reiniciar
- definir de volta para o domínio
Observe como eu menciono que poderia. Não faça isso. É uma perda de tempo quando você pode automatizar com o PowerShell.
Existem duas maneiras que eu encontrei que você pode usar o PowerShell para desassociar um domínio e usar o PowerShell para associar um domínio.
Usando CIM
Você pode associar um domínio com PowerShell (e desassociá-lo) usando a classe CIM Win32_ComputerSystem. Esta classe tem dois métodos que permitem desassociar e associar um computador a um domínio chamados UnJoinDomainOrWorkgroup()
e JoinDomainOrWorkGroup
.
Como isso é CIM, você pode executar isso tão facilmente remotamente quanto localmente. Como eu presumo que você prefira executar isso remotamente do conforto de sua mesa, aqui está um trecho de código que faz exatamente isso.
Erro “o relacionamento de confiança entre esta estação de trabalho e o domínio principal falhou” desapareça!
Observe o parâmetro FUnjoinOptions
acima. Eu escolhi especificar 4 aqui. Isso executa o comportamento padrão ao desassociar um computador manualmente. Esta opção desativa a conta do computador no Active Directory (se encontrar uma). Se você preferir não ter esse comportamento, pode usar a opção 0 aqui.
Depois que o computador é desassociado, você pode então associar novamente ao domínio usando o método JoinDomainOrWorkGroup()
.
Observe o parâmetro FJoinOptions
acima. Eu optei por especificar 3 aqui. Isso realiza o comportamento padrão ao ingressar manualmente um computador. Essa opção cria uma conta de computador AD. Você pode encontrar algumas outras opções, como adicionar a uma OU específica via documentação JoinDomainOrWorkgroup.
DICA: Você também pode desassociar e reassociar muitos computadores de uma vez via este método, especificando vários computadores através do parâmetro
ComputerName
emGet-CimInstance
.
Usando os Cmdlets Remove-Computer e Add-Computer
Você também pode usar cmdlets integrados do PowerShell para desassociar e associar um computador a um domínio com PowerShell. Você pode usar os cmdlets Remove-Computer
e Add-Computer
.
Para desassociar um computador com PowerShell, faça login no console do computador e use o cmdlet Remove-Computer
. Forneça as credenciais de domínio com permissões para desassociar o computador. Você também pode especificar o parâmetro Restart
para forçar uma reinicialização após a desassociação e Force
para não solicitar confirmação.
Depois que o computador for reiniciado, você poderá usar o cmdlet Add-Computer
para associar o computador ao domínio com o PowerShell. Você pode usar o cmdlet Add-Computer
remotamente fornecendo o parâmetro ComputerName
. Você também usará credenciais de usuário local para fazer a conexão e as credenciais de domínio para autenticar no domínio.
Quando ele voltar, esperamos que você não receba mais a mensagem de erro “o relacionamento de confiança entre esta estação de trabalho e o domínio principal falhou”.
Desassociação e Reassociação Automática do Domínio
Como tive que fazer este processo muitas vezes, criei um script PowerShell que faz tudo para você. Se você fornecer o nome do computador, ele irá:
- Desassociar o computador
- Reiniciar e aguardar a reinicialização
- Associar o computador
- Reiniciar e aguardar a reinicialização
Você pode experimentar este script via GitHub.
Resumo
Você deve agora ter uma compreensão completa do problema e várias soluções para a infame mensagem de erro “A relação de confiança entre esta estação de trabalho e o domínio primário falhou“. Espero que este guia tenha fornecido algumas ideias e permitido que você encontrasse algumas soluções próprias para o problema de computadores saindo do domínio!
Leitura Adicional
Não deixe de conferir alguns outros posts relacionados!