Résoudre ‘Un contrôleur de domaine Active Directory ne peut pas être contacté’

Chaque administrateur informatique gérant des machines dans un environnement Active Directory en est déjà passé par là. Vous essayez d’ajouter un ordinateur à un domaine Active Directory (AD) et vous obtenez l’erreur redoutée « Impossible de contacter un contrôleur de domaine Active Directory« . Dans cet article, apprenez les étapes pour diagnostiquer (et résoudre) ce problème une fois pour toutes.

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

Cette erreur est liée à DNS. Le problème principal est que l’ordinateur n’a pas réussi à trouver un enregistrement DNS SRV approprié dont il a besoin pour rejoindre le domaine AD.

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

Assurez-vous d’utiliser les bons serveurs DNS

Avant d’aller trop loin dans un labyrinthe, assurez-vous d’utiliser les bons serveurs DNS en premier lieu.

Active Directory et DNS ont une relation spéciale. Les contrôleurs de domaine enregistrent des enregistrements spécifiques dans les serveurs DNS qu’ils connaissent. Ceux-ci se trouvent dans la zone _ldap._tcp.dc.msdcs.<domainname> et aident les appareils joints au domaine AD à trouver des ressources telles que les contrôleurs de domaine. Les enregistrements SRV n’existeront pas dans les serveurs DNS qui ne sont pas intégrés à AD.

Pour résoudre ce problème, vous devez utiliser l’un des éléments suivants :

  • Un serveur DNS intégré à 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

Pour vérifier que le serveur DNS que vous utilisez est l’un des éléments ci-dessus, exécutez la commande suivante dans une session PowerShell sur un ordinateur déjà joint au domaine :

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}

Les réponses que vous obtenez sous la colonne ServerAddesses sont les serveurs DNS utilisés par cet ordinateur. Si vous n’avez pas un autre client de domaine pour vérifier, vous devrez contacter votre équipe réseau pour obtenir cette information.

Vous pouvez utiliser la commande Set-DnsClientServerAddress de PowerShell pour modifier les paramètres du client DNS de l’ordinateur ou via la boîte de dialogue Propriétés IPv4 de la carte réseau de l’ordinateur. Pour y accéder, allez dans Panneau de configuration -> Réseau -> Internet -> Connexions réseau.

Une fois dans la fenêtre Connexions réseau, faites un clic droit sur la carte réseau, choisissez Propriétés, choisissez Protocole Internet version 4 (TCP/IPv4) puis cliquez sur Propriétés

IPv4 properties dialog

Si le réseau utilise le protocole de configuration dynamique des hôtes (DHCP), assurez-vous que les options Obtenir une adresse IP automatiquement et Obtenir les adresses des serveurs DNS automatiquement sont sélectionnées.

Si votre réseau n’utilise pas DHCP, mettez à jour les valeurs des serveurs DNS préféré (Preferred DNS server) et DNS alternatif (Alternative DNS server) avec les bonnes valeurs que vous avez obtenues précédemment.

Trouvez l’erreur réelle

Si vous avez confirmé que votre ordinateur utilise les serveurs DNS corrects, il est temps de creuser un peu plus loin.

Lorsque vous essayez de joindre un ordinateur à un domaine, l’erreur « Impossible de contacter un contrôleur de domaine Active Directory » s’affiche, mais ce n’est pas le message d’erreur « réel ». Vous devez plonger un peu plus profondément.

Vous remarquerez dans la boîte de dialogue d’erreur un bouton Détails >>. Cliquez dessus. Cela affichera des informations plus détaillées vous permettant de résoudre cette erreur plus efficacement.

Expanded details view of the error dialog

Vous pouvez sélectionner le contenu de la zone de texte pour le copier et le coller dans un visualiseur de texte, ou vous pouvez trouver les mêmes informations dans le fichier C:\windows\debug\dcdiag.txt sur cette machine. Ce fichier est créé par Windows lorsque l’erreur se produit.

Le texte de l’erreur contient quelques éléments clés d’information. J’ai marqué en gras et numéroté chacun d’entre eux dans l’exemple ci-dessous :

  • Le nom de domaine que la machine pense que vous lui avez demandé de rejoindre (1)
  • Le code d’erreur (2)
  • La requête DNS qui a été effectuée (3)
  • Les serveurs DNS interrogés par la machine (le cas échéant) (4)

Remarque : Ces informations sont destinées à un administrateur réseau. Si vous n’êtes pas l’administrateur de votre réseau, informez l’administrateur que vous avez reçu ces informations, qui ont été enregistrées dans le fichier C:\windows\debug\dcdiag.txt.

L’erreur suivante s’est produite lors de la recherche DNS de l’enregistrement de ressource de localisation du service (SRV) utilisé pour localiser un contrôleur de domaine Active Directory (AD DC) pour le domaine « carisbrookelabs.local »(1):

L’erreur était : « Le nom DNS n’existe pas. »
(code d’erreur 0x0000232B RCODE_NAME_ERROR) (2)

La requête était pour l’enregistrement SRV pour _ldap._tcp.dc._msdcs.carisbrookelabs.local(3)

Les causes courantes de cette erreur comprennent les suivantes :

Les enregistrements DNS SRV nécessaires pour localiser un AD DC pour le domaine ne sont pas enregistrés dans le DNS. Ces enregistrements sont enregistrés automatiquement auprès d’un serveur DNS lorsqu’un AD DC est ajouté à un domaine. Ils sont mis à jour par l’AD DC à des intervalles réguliers. Cet ordinateur est configuré pour utiliser les serveurs DNS avec les adresses IP suivantes :

8.8.4.4
8.8.8.8 (4)

Une ou plusieurs des zones suivantes n’incluent pas de délégation vers sa zone enfant : carisbrookelabs.local

local
. (la zone racine)

0x0000267C DNS_ERROR_NO_DNS_SERVER

Cette erreur indique que le serveur DNS n’a pas pu être trouvé pour même tenter la requête. Il n’a même pas eu la chance de le faire. Cela est généralement dû à une absence de connectivité réseau avec le serveur DNS.

Notez que vous pouvez joindre un ordinateur sans connexion réseau, appelé une « adhésion de domaine hors connexion », mais cela dépasse le cadre de cet article.

Résoudre les problèmes de connexion réseau

Si vous voyez ce message d’erreur, vous devrez commencer à effectuer un dépannage réseau.

  1. Vérifiez que votre adaptateur réseau est activé et que vous pouvez vous connecter à d’autres ressources réseau.
  2. Vérifiez que vous avez une adresse IP et des serveurs DNS configurés.

Vous pouvez vérifier une adresse IP et les serveurs DNS en exécutant la commande ipconfig /all.

Si vous avez une adresse IP et que vous pouvez accéder à d’autres ressources réseau, vous devrez tester la connexion entre l’ordinateur et le serveur DNS.

Pour ce faire, vous pouvez utiliser la commande ping et la cmdlet Test-Connection de PowerShell. Testez la connectivité avec le(s) serveur(s) DNS à l’aide de ces deux utilitaires. Si le trafic ICMP (Internet Control Message Protocol) est autorisé sur le réseau, vous devriez obtenir une réponse. Si vous obtenez une erreur ou une expiration, il est probable que vous ayez un problème de réseau, tel qu’un problème de routage. Parlez à votre équipe réseau pour résoudre le problème, puis réessayez la connexion.

Vérifiez la connectivité DNS

Si vous avez confirmé que votre connexion réseau fonctionne, vous devrez ensuite vous assurer que votre ordinateur peut se connecter via TCP/53 au serveur DNS.

Essayez d’utiliser la cmdlet Resolve-DNSName de PowerShell avec le FQDN (Fully Qualified Domain Name) du domaine que vous essayez de rejoindre. Cela devrait renvoyer un ou plusieurs enregistrements de serveur 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

Si vous obtenez une erreur, il vaut la peine de vérifier qu’il n’y a rien qui bloque le trafic IP sur le port 53 (le port utilisé pour le trafic DNS) entre votre machine et les serveurs DNS.

Vous pouvez effectuer une vérification simple de la connectivité sur le port 53 en utilisant la cmdlet Test-NetConnection (à ne pas confondre avec la cmdlet Test-Connection) :

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

Vous obtiendrez une réponse de Vrai si la connexion réussit, ou de Faux si elle échoue. Un échec peut être dû à un pare-feu réseau ou basé sur l’hôte sur le serveur DNS.

0x0000232B RCODE_NAME_ERROR

Cette erreur signifie qu’il a pu trouver le serveur DNS mais que l’enregistrement SRV n’a pas été trouvé. Cette erreur nécessite un dépannage supplémentaire.

Vérifiez que vous utilisez le nom de domaine complet (FQDN)

Cela semble simple, mais vérifiez que le nom que vous avez saisi correspond au nom de domaine complet (FQDN) du domaine que vous essayez de rejoindre. Il ne doit s’agir que d’un nom de domaine, pas d’un nom de serveur. Par exemple, utilisez carisbrookelabs.local et non WIN-3467RQTHJH5.carisbrookelabs.local.

S’il y a le moindre doute, vérifiez le nom de domaine d’un client de domaine existant. Vous pouvez trouver le nom de domaine approprié en exécutant cette commande PowerShell sur un client de domaine existant.

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

Si vous essayez d’utiliser le nom NETBIOS (contoso) au lieu du FQDN (contoso.local), l’ordinateur pourrait trouver le domaine, mais Windows traitera quand même le nom comme un FQDN.

Si vous saisissez un nom NETBIOS et que vous n’avez pas d’infrastructure WINS en place, vous obtiendrez l’erreur que nous essayons de résoudre. Utilisez toujours un FQDN plutôt qu’un nom NETBIOS.

Typing an FQDN in the Computer/Domain Changes dialog

Vérifiez les enregistrements DNS

Pour cette étape, vous allez utiliser à nouveau la commande Resolve-DNSName. Cette fois, utilisez l’ exact enregistrement DNS qui n’a pas été récupéré lorsque vous avez essayé de rejoindre votre machine au domaine. Copiez-le et collez-le à partir du fichier dcdiag.txt mentionné dans l’introduction, ou de la copie du message d’erreur que vous avez prise précédemment. Cela évitera toute erreur de frappe avec des traits de soulignement et des tirets.

Votre commande devrait ressembler à ceci :

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

Utilisez l’outil gratuit Specops Password Auditor pour analyser votre Active Directory et identifier les vulnérabilités liées aux mots de passe, y compris plus de 930 millions de mots de passe compromis connus. Téléchargez aujourd’hui !

Si vous obtenez Le nom DNS n’existe pas comme réponse à cette commande, alors votre problème est lié à DNS.

  • Assurez-vous d’utiliser le bon serveur DNS
  • Assurez-vous que les enregistrements pertinents n’ont pas été supprimés.

Si vous obtenez une réponse positive à Resolve-DNSName _msdcs.<domainname> mais que vous obtenez un Le nom DNS n’existe pas de Resolve-DNSName _ldap._tcp.dc._msdcs.<domainname>, alors les enregistrements sont manquants.

Enregistrez à nouveau les enregistrements DNS de votre contrôleur de domaine en utilisant la commande ipconfig /registerdns sur chaque DC. Il peut falloir quelques minutes pour que les enregistrements apparaissent.

Une fois que vous pouvez confirmer la présence des enregistrements DNS requis en utilisant Resolve-DNSName, vous devriez être prêt à continuer.

Résumé

Dans cet article, vous avez appris quelques étapes à suivre pour résoudre le problème « Impossible de contacter un contrôleur de domaine Active Directory ». Il est impossible de couvrir tous les scénarios dans un article comme celui-ci, mais j’espère que le processus fonctionnera pour vous et vous mettra sur la bonne voie !

Lecture complémentaire

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