Corrigir ‘Um Controlador de Domínio do Active Directory Não Pôde Ser Contatado’

Todo administrador de TI que gerencia máquinas em um ambiente de Active Directory já passou por isso. Você tenta adicionar um computador a um domínio do Active Directory (AD) e recebe o temido erro “Não foi possível contatar um Controlador de Domínio do Active Directory“. Neste artigo, aprenda os passos para diagnosticar (e resolver) esse problema de uma vez por todas.

A FREE read only tool that scans your AD and generates multiple interactive reports for you to measure the effectiveness of your password policies against a brute-force attack. Download Specops Password Auditor now!

An Active Directory Domain Controller Could not be Contacted

Este erro está relacionado ao DNS. O problema principal é que o computador falhou em encontrar um registro SRV de DNS apropriado que ele precisa para se juntar ao domínio AD.

I’ve put together a few steps for you to follow to fix this error and get your computer joined to your domain.

Garanta que Você Esteja Usando os Servidores DNS Corretos

Antes de mergulhar muito fundo na toca do coelho, primeiro garanta que você esteja usando os servidores DNS corretos desde o início.

O Active Directory e o DNS têm uma relação especial. Os controladores de domínio registram registros específicos nos servidores DNS que conhecem. Eles residem na zona _ldap._tcp.dc.msdcs.<nomedodomínio> e ajudam os dispositivos associados ao AD a encontrar recursos como controladores de domínio. Registros SRV não existirão em servidores DNS que não estejam integrados ao AD.

Para resolver esse problema, você precisa estar usando um dos seguintes:

  • Um servidor DNS integrado ao AD
  • A DNS server that replicates records from an AD aware DNS server
  • A DNS server that has forwarding set up to query either an AD-integrated DNS server or a DNS server with replicated records

Para verificar se o servidor DNS que você está usando é um dos acima, execute o seguinte comando em uma sessão do PowerShell em um computador já associado a um domínio existente:

PS C:\> Get-DnsClientServerAddress

InterfaceAlias               Interface Address ServerAddresses
                             Index     Family
--------------               --------- ------- ---------------
Ethernet                             9 IPv4    {10.0.0.101}
Ethernet                             9 IPv6    {}
Loopback Pseudo-Interface 1          1 IPv4    {}
Loopback Pseudo-Interface 1          1 IPv6    {fec0:0:0:ffff::1, fec0:0:0:ffff::2, fec0:0:0:ffff::3}

As respostas que você obtém na coluna ServerAddesses são os servidores DNS sendo usados por esse computador. Se você não tiver outro cliente de domínio para verificar, será necessário entrar em contato com sua equipe de rede para obter essas informações.

Você pode usar o cmdlet Set-DnsClientServerAddress do PowerShell para alterar as configurações do cliente DNS do computador ou através da caixa de diálogo Propriedades do Protocolo de Internet Versão 4 (TCP/IPv4) para o adaptador de rede do computador. Isso é feito indo para Painel de Controle -> Rede -> Internet -> Conexões de Rede.

Ao abrir a janela de Conexões de Rede, clique com o botão direito do mouse no adaptador de rede, escolha Propriedades, selecione Protocolo de Internet Versão 4 (TCP/IPv4) e então clique em Propriedades

IPv4 properties dialog

Se a rede usar o Protocolo de Configuração Dinâmica de Hosts (DHCP), certifique-se de que as opções Obter um endereço IP automaticamente e Obter endereço do servidor DNS automaticamente estejam selecionadas.

Se sua rede não usar DHCP, então atualize os valores do Servidor DNS preferencial e Servidor DNS alternativo para os corretos que você obteve anteriormente.

Encontre o Erro Verdadeiro

Se você confirmou que o computador possui os servidores DNS corretos, então é hora de investigar um pouco mais a fundo.

Ao tentar ingressar um computador em um domínio, o erro “O Controlador de Domínio do Active Directory não pôde ser Contatado” aparece, mas esse não é o mensagem de erro “verdadeira”. Você precisa se aprofundar um pouco mais.

Você notará no diálogo de erro um botão Detalhes >>. Clique nele. Isso retornará informações mais detalhadas, permitindo que você solucione esse erro de maneira mais eficiente.

Expanded details view of the error dialog

Você pode selecionar o conteúdo da caixa de texto para copiar e colar em um visualizador de texto, ou você pode encontrar as mesmas informações no arquivo C:\windows\debug\dcdiag.txt nessa máquina. Esse arquivo é criado pelo Windows quando o erro ocorre.

O texto do erro contém algumas informações importantes. Eu marquei em negrito e numerado cada uma delas no exemplo abaixo:

  • O nome de domínio que a máquina acredita que você solicitou para se juntar (1)
  • O código de erro (2)
  • A consulta DNS que foi feita (3)
  • O(s) servidor(es) DNS consultado(s) pela máquina (se houver) (4)

Observação: Essas informações são destinadas a um administrador de rede. Se você não é o administrador da rede, notifique o administrador de que você recebeu essas informações, que foram registradas no arquivo C:\windows\debug\dcdiag.txt.

O seguinte erro ocorreu quando o DNS foi consultado para o registro de recurso de localização do serviço (SRV) usado para localizar um Controlador de Domínio do Active Directory (AD DC) para o domínio “carisbrookelabs.local” (1):

O erro foi: “Nome DNS não existe.”
(código de erro 0x0000232B RCODE_NAME_ERROR) (2)

A consulta foi para o registro SRV para _ldap._tcp.dc._msdcs.carisbrookelabs.local (3)

As causas comuns deste erro incluem o seguinte:

Os registros SRV DNS necessários para localizar um AD DC para o domínio não estão registrados no DNS. Esses registros são registrados automaticamente com um servidor DNS quando um AD DC é adicionado a um domínio. Eles são atualizados pelo AD DC em intervalos definidos. Este computador está configurado para usar servidores DNS com os seguintes endereços IP:

8.8.4.4
8.8.8.8 (4)

Uma ou mais das seguintes zonas não incluem delegação para sua zona filha: carisbrookelabs.local

local
. (a zona raiz)

0x0000267C DNS_ERROR_NO_DNS_SERVER

Este erro indica que o servidor DNS não pôde ser encontrado nem mesmo para tentar a consulta. Nem mesmo teve uma chance. Isso é tipicamente devido à falta de conectividade de rede com o servidor DNS.

Observe que você pode associar um computador sem uma conexão de rede conhecida como uma junção de domínio offline, mas isso está fora do escopo deste artigo.

Solução de problemas da sua conexão de rede

Se você visualizar esta mensagem de erro, precisará começar a fazer algumas soluções de problemas de rede.

  1. Verifique se o seu adaptador de rede está habilitado e se você pode se conectar a outros recursos de rede.
  2. Verifique se você tem um endereço IP e servidores DNS configurados.

Você pode verificar um endereço IP e servidores DNS executando o comando ipconfig /all.

Se você tiver um endereço IP e puder acessar outros recursos de rede, precisará testar a conexão entre o computador e o servidor DNS.

Para fazer isso, você pode usar o comando ping e o cmdlet Test-Connection do PowerShell. Teste a conectividade com o(s) servidor(es) DNS usando qualquer uma dessas duas utilidades. Se o tráfego do Protocolo de Mensagem de Controle da Internet (ICMP) for permitido na rede, você deverá receber uma resposta. Se houver um erro ou tempo esgotado, provavelmente há algum problema de rede, como roteamento. Fale com sua equipe de rede para resolver o problema e tente a junção novamente.

Verifique a conectividade com o DNS

Se você confirmou que sua conexão de rede está funcionando, precisará garantir que seu computador possa se conectar via TCP/53 ao servidor DNS.

Tente usar o cmdlet do PowerShell Resolve-DNSName com o FQDN do domínio que você está tentando ingressar. Isso deve retornar um ou mais registros de servidor DNS:

PS C:\> Resolve-DNSName carisbrookelabs.local


Name                                           Type   TTL   Section	IPAddress
----                                       	----   ---   -------	---------
carisbrookelabs.local                      	A  	600   Answer 	10.0.0.103
carisbrookelabs.local                      	A  	600   Answer 	10.0.0.102
carisbrookelabs.local                      	A  	600   Answer 	10.0.0.101

Se você receber um erro, vale a pena verificar se não há nada bloqueando o tráfego IP na porta 53 (a porta usada para o tráfego DNS) entre sua máquina e os servidores DNS.

Você pode fazer uma verificação simples de conectividade na porta 53 usando o cmdlet Test-NetConnection (não confunda com o cmdlet Test-Connection):

PS C:\> Test-NetConnection -Port 53 -ComputerName <DNSSERVERHERE>
True

Você receberá uma resposta de Verdadeiro se a conexão for bem-sucedida, ou Falso se falhar. Uma falha pode ser devido a um firewall baseado em rede ou host no servidor DNS.

0x0000232B RCODE_NAME_ERROR

Esse erro significa que foi possível encontrar o servidor DNS, mas o registro SRV não foi encontrado. Esse erro requer um pouco mais de solução de problemas.

Garanta que você esteja usando o FQDN do Domínio

Parece simples, mas verifique se o nome que você digitou corresponde ao nome de domínio totalmente qualificado (FQDN) do domínio que você está tentando ingressar. Isso deve ser apenas um nome de domínio, não um nome de servidor. Por exemplo, use carisbrookelabs.local e não WIN-3467RQTHJH5.carisbrookelabs.local.

Se houver alguma dúvida, verifique o nome de domínio de um cliente de domínio existente. Você pode encontrar o nome de domínio apropriado executando este comando do PowerShell em um cliente de domínio existente.

PS51> (Get-CimInstance Win32_ComputerSystem).Domain
carisbrookelabs.local

Se você tentar usar o nome NETBIOS (contoso) em vez do FQDN (contoso.local), o computador pode encontrar o domínio, mas o Windows tratará o nome como um FQDN de qualquer maneira.

Se você digitar um nome NETBIOS e não tiver uma infraestrutura WINS em vigor, você irá obter o erro que estamos tentando corrigir. Sempre use um FQDN em vez de um nome NETBIOS.

Typing an FQDN in the Computer/Domain Changes dialog

Verifique os registros DNS

Para esta etapa, você vai usar o comando Resolve-DNSName novamente. Desta vez, use o exato registro DNS que não foi recuperado quando você tentou ingressar sua máquina no domínio. Copie e cole isso do arquivo dcdiag.txt mencionado na introdução, ou da cópia do texto de erro que você salvou anteriormente. Isso evitará erros de digitação com underscores e traços.

Seu comando deve se parecer com algo assim:

PS C:\> Resolve-DNSName _ldap._tcp.dc._msdcs.carisbrookelabs.local


Name                    	Type TTL   Section	PrimaryServer           	NameAdministrator       	SerialNumber
----                    	---- ---   -------	-------------           	-----------------       	------------
_msdcs.carisbrookelabs.loca SOA  3600  Authority  WIN-3467RQTHJH5.carisbrooke hostmaster.carisbrookelabs. 419
l                                             	labs.local              	local

Use a ferramenta gratuita Specops Password Auditor para escanear seu Active Directory e identificar vulnerabilidades relacionadas a senhas, incluindo mais de 930 milhões de senhas comprometidas conhecidas. Baixe hoje!

Se você receber Nome DNS não existe como resposta a este comando, então o problema está no DNS.

  • Garanta que você está usando o servidor DNS correto
  • Verifique se os registros relevantes não foram excluídos

Se você receber uma resposta positiva para Resolve-DNSName _msdcs.<nome do domínio> mas obter um Nome DNS não existe de Resolve-DNSName _ldap._tcp.dc._msdcs.<nome do domínio>, então os registros estão faltando.

Re-registre os registros DNS do controlador de domínio usando o comando ipconfig /registerdns em cada DC. Pode levar alguns minutos para que os registros apareçam.

Assim que você puder confirmar a presença do(s) registro(s) DNS necessário(s) usando Resolve-DNSName, então você deve estar pronto para prosseguir.

Resumo

Neste artigo, você aprendeu alguns passos para tentar quando estiver solucionando o erro “Um Controlador de Domínio do Active Directory não Pôde ser Contatado“. É impossível cobrir todos os cenários em um artigo como este, mas espero que o processo funcione para você e o coloque no caminho certo!

Leitura Adicional

Source:
https://adamtheautomator.com/an-active-directory-domain-controller-could-not-be-contacted/