Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016
DCDiag.exe analyse l’état des contrôleurs de domaine (DC) dans une forêt ou une entreprise et signale tous les problèmes à résoudre. En tant que programme de création de rapports utilisateur final, DCDiag est un outil en ligne de commande qui encapsule des connaissances détaillées sur l’identification du comportement anormal dans le système.
Par défaut, DCDiag est facilement disponible s’il est connecté à un contrôleur de domaine. Une autre méthode pour accéder à DCDiag consiste à installer les outils d’administration de serveur distant (RSAT) sur votre appareil. DCDiag doit être exécuté avec des droits d’administration à partir d’une invite de commandes avec élévation de privilèges (CMD) ou De PowerShell.
DCDiag se compose d’une infrastructure pour l’exécution de tests et d’une série de tests pour vérifier différentes zones fonctionnelles du système. Cette infrastructure sélectionne le contrôleur de domaine testé en fonction des directives d’étendue de l’utilisateur, telles que l’entreprise, le site ou le serveur unique. Le test de la connectivité globale et de la réactivité du contrôleur de domaine inclut la vérification :
- Le contrôleur de domaine peut se trouver dans DNS
- Le contrôleur de domaine répond aux pings ICMP (Internet Control Message Protocol)
- Le contrôleur de domaine autorise la connectivité LDAP (Lightweight Directory Access Protocol) en liant l’instance
- Le contrôleur de domaine autorise la liaison à l’interface AD RPC à l’aide de la fonction DsBindWithCred .
Note
Le blocage d’ICMP empêche DCDiag de fonctionner comme prévu. Bien que le blocage d’ICMP soit recommandé à la périphérie Internet de votre réseau, le blocage interne du trafic ICMP entraîne des problèmes d’administration qui interrompent les stratégies de groupe héritées, la détection de routeur de trous noirs ou les tailles MTU inefficaces en raison d’un manque d’option de découverte. Les outils de résolution des problèmes tels que ping.exe ou tracert.exe sont également affectés.
DCDiag syntax
dcdiag [/s:<DomainController>] [/n:<NamingContext>] [/u:<Domain>\<UserName> /p:{* | <Password> | ""}] [{/a | /e}] [{/q | /v}] [/i] [/f:<LogFile>] [/c [/skip:<Test>]] [/test:<Test>] [/fix] [{/h | /?}] [/ReplSource:<SourceDomainController>]
DCDiag utilise les paramètres suivants :
| Parameter | Description |
|---|---|
/s:<DomainController> |
Spécifie le nom du serveur sur lequel exécuter la commande. Si ce paramètre n’est pas spécifié, les tests sont exécutés sur le contrôleur de domaine local. Ce paramètre est ignoré pour les tests DcPromo et RegisterInDns, qui peuvent uniquement être exécutés localement. |
/n:<NamingContext> |
Utilise NamingContext comme contexte d’affectation de noms pour tester. Vous pouvez spécifier des domaines au format NetBIOS, Dns (Domain Name System) ou nom unique. |
/u :<Domain>\<UserName> /p :{<Password> | ""} |
Uses Domain\UserName. DCDiag utilise les informations d’identification actuelles de l’utilisateur (ou du processus) connecté. Si d’autres informations d’identification sont nécessaires, utilisez les options suivantes pour fournir ces informations d’identification pour la liaison avec mot de passe en tant que mot de passe : utilisez des guillemets (« ») pour un mot de passe vide ou null. Utilisez le caractère générique (*) pour demander le mot de passe. |
| /a | Teste tous les serveurs sur ce site AD DS. |
| /e | Teste tous les serveurs de l’entreprise. Remplace /a. |
| /q | Quiet. Imprime uniquement les messages d’erreur. |
| /v | Verbose. Imprime les informations étendues. |
| /fix | Affecte le test MachineAccount uniquement. Ce paramètre entraîne le test pour corriger les noms de principal de service (SPN) sur l’objet Compte d’ordinateur du contrôleur de domaine. |
/f:<LogFile> |
Redirige toutes les sorties vers un fichier journal. |
| /c | Comprehensive. Exécute tous les tests, sauf DCPromo et RegisterInDNS, y compris les tests non par défaut. Si vous le souhaitez, vous pouvez utiliser ce paramètre avec le /skip paramètre pour ignorer les tests spécifiés.Les tests suivants ne sont pas exécutés par défaut :
|
| /h ou / ? | Affiche l’aide à l’invite de commandes. |
/test:<Test> |
Exécute ce test uniquement. Le test de connectivité ne peut pas être ignoré avec le /skip paramètre. |
/ReplSource:<SourceDomainController> |
Teste la connexion entre le contrôleur de domaine sur lequel vous exécutez la commande et le contrôleur de domaine source. (Ce paramètre est utilisé pour le test CheckSecurityError.) SourceDomainController est le nom DNS, le nom NetBIOS ou le nom unique d’un serveur réel ou potentiel qui sera le contrôleur de domaine source pour la réplication, comme représenté par un objet de connexion réel ou potentiel. |
Tests connus DCDiag
Le tableau suivant affiche les tests connus qui s’exécutent par défaut, sauf indication contraire.
| Test | Description |
|---|---|
| Advertising | Vérifie si chaque contrôleur de domaine se publie dans les rôles qu’il doit être capable d’effectuer. Ce test vérifie que la fonction publique DsGetDcName utilisée par les ordinateurs pour localiser les contrôleurs de domaine localisera correctement tous les contrôleurs de domaine. Ce test échoue si le service Netlogon s’est arrêté ou n’a pas pu démarrer. Si le service clé de distribution de clé (KDC) est arrêté, le test Publicité échoue, car l’indicateur retourné par DsGetDcName n’inclut pas KDC. Si le port 88 sur TCP et UDP est bloqué sur un pare-feu, le test Publicité réussit malgré que le KDC ne puisse pas répondre aux demandes de tickets Kerberos. |
| CheckSDRefDom | Vérifie que toutes les partitions d’annuaire d’applications ont des domaines de référence de descripteur de sécurité appropriés. Ce test utilise LDAP et valide les objets de référence croisée situés dans cn=partitions,cn=configuration,dc=<forest root domain> contiennent les noms de domaine corrects dans leurs attributs msDS-SDReferenceDomain . |
| CheckSecurityError | Le test n’est pas exécuté par défaut. Effectue différentes vérifications de sécurité pour les erreurs liées aux composants de sécurité du contrôleur de domaine, telles que les problèmes liés à la stratégie de sécurité ou à la base de données de sécurité à l’aide de LDAP, RPC, RPC sur SMB et ICMP. It checks:
Lorsque le paramètre /ReplSource est ajouté, le partenaire vérifie également :
|
| Connectivity | Vérifie que les DSA et DNS sont inscrits et accessibles à l’aide du protocole LDAP et RPC. |
| CrossRefValidation | Récupère une liste de contextes de nommage situés dans le domaine< racine cn=partitions,cn=configuration,dc=>forest avec leurs références croisées, puis les valide de la même manière que le test CheckSDRefDom à l’aide de LDAP. Ce test examine les attributs nCName, dnsRoot, nETBIOSName et systemFlags pour :
|
| CutoffServers | Teste la réplication AD pour vous assurer qu’il n’existe pas de contrôleurs de domaine sans utiliser d’objets de connexion entre les partenaires. Tous les serveurs qui ne peuvent pas répliquer les serveurs entrants ou sortants à partir d’un contrôleur de domaine sont considérés comme coupés à l’aide de la fonction DsReplicaSyncAll , qui déclenche la réplication sur les contrôleurs de domaine. Utilisez le /e paramètre avec précaution s’il existe des liens WAN mal implémentés qui sont conservés propres à l’aide de planifications. Si un serveur ne peut pas être contacté ou n’est pas disponible pour LDAP sur le réseau, il ne fournit aucun résultat d’erreur ou de test, même si le /v paramètre est spécifié. Ce test utilise RPC. |
| DcPromo | Teste le serveur spécifié dans les paramètres DNS du client si l’infrastructure répond aux exigences nécessaires pour promouvoir votre appareil vers un contrôleur de domaine. Ce test utilise DNS sur le réseau et vérifie :
Les arguments suivants sont requis :
|
| DFSREvent | Ce test valide l’état du service™DFSR (Distributed File System Replication) en vérifiant les entrées d’avertissement et d’erreur du journal des événements DFSR des dernières 24 heures. Ce test utilise RPC et EventLog Remoting Protocol. |
| DNS | Teste les vérifications d’intégrité DNS à l’échelle de l’entreprise à l’aide des protocoles DNS, RPC et WMI. Non exécuté par défaut et doit être demandé explicitement. Voir Syntaxe DNS. |
| FrsEvent | Vérifie s’il existe des erreurs dans le journal des événements du service de réplication de fichiers (FRS) au cours des 24 dernières heures, car la réplication défaillante du partage SysVol peut entraîner des problèmes de stratégie. Ce test utilise RPC et EventLog Remoting Protocol. |
| Intersite | Vérifie les défaillances qui empêchent ou conservent temporairement la réplication intersite et prédit le temps nécessaire à la récupération du KCC. Ce test utilise des fonctions DRS pour vérifier les conditions qui empêchent la réplication AD intersite au sein d’un site spécifique ou de tous les sites par :
Le ou /a le /e paramètre doit être utilisé comme ne pas fournir de site autoriserait l’exécution du test, mais ignore les tests réels. Ce test utilise RPC sur le réseau pour tester les aspects de réplication et demande aux connexions de Registre de vérifier les entrées de remplacement NTDS. LDAP est également utilisé pour localiser les informations de connexion. |
| KccEvent | Ce test interroge le contrôleur de domaine sur le contrôleur de domaine pour les erreurs et les avertissements générés dans le journal des événements des services d’annuaire au cours des 15 dernières minutes. Le seuil de 15 minutes est indépendamment de la valeur de registre de la période de mise à jour de la topologie Repl (ss) sur le contrôleur de domaine. Si des règles de pare-feu sont à l’origine de l’échec de ce test, consultez KB2512643 qui couvre l’activation de ces règles pour permettre au test de réussir. Ce test utilise RPC avec le protocole EventLog Remoting. |
| KnowsOfRoleHolders | Ce test retourne les connaissances des contrôleurs de domaine des cinq rôles FSMO (Flexible Single Master Operation), mais ne vérifie pas toutes les connaissances des contrôleurs de domaine pour assurer la cohérence. L’utilisation du /e paramètre fournit des données pour la comparaison. Ce test utilise RPC pour retourner DSListRoles dans les fonctions DRS ( Directory Replication Service ). |
| MachineAccount | Vérifie si le compte d’ordinateur a correctement inscrit et que les services sont publiés à l’aide du protocole LDAP et RPC sur SMB, notamment la vérification :
Ce test a également deux options de réparation :
|
| NCSecDesc | Vérifie les autorisations sur tous les contextes d’affectation de noms (par exemple, schéma, configuration, etc.) sur le contrôleur de domaine source pour vérifier que la réplication et la connectivité fonctionnent entre les contrôleurs de domaine. Il garantit que les groupes Contrôleurs de domaine et Administrateurs d’entreprise disposent des autorisations minimales correctes, ce qui est le même test effectué dans CheckSecurityError. Ce test utilise LDAP. |
| NetLogons | Vérifie que l’utilisateur exécutant DCDiag peut se connecter et lire les partages SYSVOL et NETLOGON sans aucune erreur de sécurité. Il vérifie également que le groupe Administrateurs, Utilisateurs authentifiés et Tout le monde dispose du privilège Accéder à cet ordinateur à partir du privilège réseau sur le contrôleur de domaine. |
| ObjectsReplicated | Vérifie que les objets DSA (Machine Account and Directory System Agent) ont été répliqués. Deux objets sont validés par défaut et qu’ils existent dans chaque contrôleur de domaine et sont à jour sur tous les autres contrôleurs de domaine :
Vous pouvez utiliser le /objectdn:dn paramètre avec le /n:nc paramètre pour spécifier un objet supplémentaire à vérifier. Ce test s’effectue à l’aide de RPC avec des fonctions DRS. |
| OutboundSecureChannels | Ce test ne s’exécute pas par défaut. Il vérifie que les canaux sécurisés existent entre tous les contrôleurs de domaine du domaine et les domaines spécifiés par le /testdomain paramètre. Le /nositerestriction paramètre empêche DCDiag de limiter le test aux contrôleurs de domaine du site. |
| RegisterInDNS | Teste si le serveur d’annuaire peut inscrire les enregistrements DNS du localisateur de serveurs d’annuaire. Ces enregistrements doivent être présents dans DNS pour permettre à d’autres ordinateurs de localiser ce serveur d’annuaire pour le <domaine Active_Directory_Domain_DNS_Name> . Cela indique également si des modifications apportées à l’infrastructure DNS existante sont requises. Le paramètre /DnsDomain:<Active_Directory_Domain_DNS_Name> doit être utilisé. Ce test vérifie :
|
| Replications | Ce test vérifie tous les objets de connexion de réplication AD pour tous les contextes de nommage sur le ou les contrôleurs de domaine spécifiés si :
|
| RidManager | Vérifie si le maître de l’identificateur relatif (RID) est accessible et si :
Le titulaire du rôle doit être en ligne et accessible pour que les contrôleurs de domaine puissent créer des principaux de sécurité (utilisateurs, ordinateurs et groupes) ainsi que d’autres contrôleurs de domaine à promouvoir au sein d’un domaine. Ce test utilise LDAP et RPC. |
| Services | Ce test vérifie que différents services dépendants d’AD sont en cours d’exécution, accessibles et définis sur des types de démarrage spécifiques. Ces services démarrent automatiquement et s’exécutent dans un processus partagé, sauf indication contraire :
Ces noms de service sont répertoriés dans le chemin d’accès au registre HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services. Ce test utilise RPC et le protocole distant Service Control Manager . |
| SysVolCheck | Ce test lit la clé de registre Netlogon SysVolReady du contrôleur de domaine pour valider que SYSVOL est prêt. Le nom de la valeur doit exister avec la valeur 1 pour réussir ce test et fonctionne avec FRS ou DFSR répliqués SYSVOLs. Il ne vérifie pas si les partages SYSVOL et NELOGON sont accessibles, car cela est effectué par CheckSecurityError. Ce test utilise RPC sur SMB. |
| SystemLog | Valide l’état du journal des événements système en lisant et en écrivant les entrées des 60 dernières minutes pour détecter les erreurs et les avertissements. Ce test utilise RPC et le protocole distant Service Control Manager . |
| Topology | Vérifie que la topologie de réplication AD générée est entièrement connectée pour tous les DSA. Ce test n’est pas effectué par défaut et doit être exécuté explicitement. It checks:
Ce test utilise RPC, LDAP et DsReplicaSyncAll avec l’indicateur DS_REPSYNCALL_DO_NOT_SYNC, ce qui signifie qu’il analyse et valide la topologie de réplication sans répliquer les modifications. Ce test ne valide pas la disponibilité des partenaires de réplication. Le fait d’avoir un partenaire hors connexion ne provoque pas d’échecs dans ce test. Elle ne teste pas non plus si la planification est fermée, ce qui empêche la réplication. Pour voir les résultats de la réplication active, utilisez les tests Replications ou CutoffServers. |
| VerifyEnterpriseReferences | Vérifie que les références système spécifiées sont intactes pour l’infrastructure FRS et de réplication sur tous les objets de l’entreprise sur chaque contrôleur de domaine. Cela inclut les attributs et objets de site DC suivants :
Les deux tests DFSR ne sont effectués que si le niveau fonctionnel du domaine est Windows Server 2008 ou supérieur. Cela signifie qu’il y aura un échec attendu si DFSR n’a pas été migré vers SYSVOL. Ce test utilise LDAP et seuls les contrôleurs de domaine spécifiés sont contactés. |
| VerifyReferences | Vérifie que certaines références système sont intactes pour l’infrastructure FRS et de réplication. Ce test vérifie les attributs de référence d’ordinateur pour un contrôleur de domaine unique, y compris les attributs et objets de site DC suivants :
Ce test utilise LDAP et est similaire au test VerifyEnterpriseRerences , sauf qu’il ne vérifie pas les références croisées de partition ou tous les autres objets DC. |
| VerifyReplicas | Vérifie que toutes les partitions de répertoire d’application sont entièrement instanciées sur tous les serveurs réplicas. Il vérifie que le serveur spécifié héberge les partitions d’application spécifiées par ses attributs crossref dans le conteneur de partitions. Il fonctionne comme CheckSDRefDom sauf qu’il n’affiche pas les données de sortie et valide l’hébergement. Ce test utilise LDAP. |
Note
Les vérifications de connectivité sur les contrôleurs de domaine qui sont enregistrés sur le réseau et qui se connectent à d’autres ressources telles que DNS, LDAP et RPC ne peuvent pas être ignorées.
DNS syntax
dcdiag /test:DNS [/DnsBasic | /DnsForwarders | /DnsDelegation | /DnsDynamicUpdate | /DnsRecordRegistration | /DnsResolveExtName [/DnsInternetName:<InternetName>] | /DnsAll] [/f:<LogFile>] [/x:<XMLLog.xml>] [/xsl:<XSLFile.xsl> or <XSLTFile.xslt>] [/s:<DomainController>] [/e] [/v]
Le test DNS utilise les paramètres suivants :
| Parameter | Description |
|---|---|
| /test:DNS | Effectue le test DNS spécifié. Si aucun test n’est spécifié, la /DnsAllvaleur par défaut est . |
| /DnsBasic | Effectue des tests DNS de base, notamment la connectivité réseau, la configuration du client DNS, la disponibilité du service et l’existence de zone. |
| /DnsForwarders | Effectue les /DnsBasic tests et vérifie également la configuration des redirecteurs. |
| /DnsDelegation | Effectue les /DnsBasic tests et vérifie également les délégations appropriées. |
| /DnsDynamicUpdate | Effectue des /DnsBasic tests et détermine également si la mise à jour dynamique est activée dans la zone Active Directory. |
| /DnsRecordRegistration | Effectue les /DnsBasic tests et vérifie également si l’adresse (A), le nom canonique (CNAME) et les enregistrements de ressources de service connus (SRV) sont inscrits. En outre, crée un rapport d’inventaire basé sur les résultats des tests. |
/DnsResolveExtName [/DnsInternetName :\<InternetName>] |
Effectue les /DnsBasic tests et tente également de résoudre InternetName. Si /DnsInternetName ce n’est pas spécifié, tente de résoudre le nom <www.microsoft.com>. Si /DnsInternetName elle est spécifiée, tente de résoudre le nom Internet fourni par l’utilisateur. |
| /DnsAll | Effectue tous les tests, à l’exception du /DnsResolveExtName test, et génère un rapport. |
/f:<LogFile> |
Redirige toutes les sorties vers un fichier journal. |
/s:<DomainController> |
Exécute les tests sur le contrôleur de domaine. Si ce paramètre n’est pas spécifié, les tests sont exécutés sur le contrôleur de domaine local. |
| /e | Exécute tous les tests spécifiés par rapport à /test:DNS tous les contrôleurs de domaine dans la forêt Active Directory. |
| /v | Verbose. Présente des informations étendues sur les résultats de test réussis en plus des informations sur les erreurs et les avertissements. Lorsque le /v paramètre n’est pas utilisé, fournit uniquement des informations d’erreur et d’avertissement. Utilisez le /v commutateur lorsque des erreurs ou des avertissements sont signalés dans la table récapitulative. |
/x:<XMLLog.xml> |
Redirige toutes les sorties vers xmllog.xml. Ce paramètre fonctionne uniquement avec l’option /test:DNS . |
/xsl :<XSLFile.xsl> ou /xsl: <XSLTFile.xslt> |
Ajoute les instructions de traitement qui référencent la feuille spécifiée. Ce paramètre fonctionne uniquement avec l’option /test:DNS /x:<XMLLog.xml . |
Note
Les temps d’exécution des tests DNS peuvent être significatifs dans les grandes entreprises lorsque le /e paramètre est utilisé. Les contrôleurs de domaine et les serveurs DNS hors connexion augmenteront les temps d’exécution en raison de longues périodes d’attente pour RPC et d’autres protocoles.
Examples
Connectivity test
Pour exécuter une série de tests de connectivité sur le domaine local, exécutez la commande suivante :
dcdiag
Une sortie de test de connectivité réussie :
Directory Server Diagnosis
Performing initial setup:
Trying to find home server...
Home Server = MapleWaffle-WS22
* Identified AD Forest.
Done gathering initial info.
Doing initial required tests
Testing server: Default-First-Site-Name\MAPLEWAFFLE-WS2
Starting test: Connectivity
......................... MAPLEWAFFLE-WS2 passed test Connectivity
Doing primary tests
Testing server: Default-First-Site-Name\MAPLEWAFFLE-WS2
Starting test: Advertising
......................... MAPLEWAFFLE-WS2 passed test Advertising
Starting test: FrsEvent
......................... MAPLEWAFFLE-WS2 passed test FrsEvent
Starting test: DFSREvent
......................... MAPLEWAFFLE-WS2 passed test DFSREvent
Starting test: SysVolCheck
......................... MAPLEWAFFLE-WS2 passed test SysVolCheck
Starting test: KccEvent
......................... MAPLEWAFFLE-WS2 passed test KccEvent
Starting test: KnowsOfRoleHolders
......................... MAPLEWAFFLE-WS2 passed test KnowsOfRoleHolders
Starting test: MachineAccount
......................... MAPLEWAFFLE-WS2 passed test MachineAccount
Starting test: NCSecDesc
......................... MAPLEWAFFLE-WS2 passed test NCSecDesc
Starting test: NetLogons
......................... MAPLEWAFFLE-WS2 passed test NetLogons
Starting test: ObjectsReplicated
......................... MAPLEWAFFLE-WS2 passed test ObjectsReplicated
Starting test: Replications
......................... MAPLEWAFFLE-WS2 passed test Replications
Starting test: RidManager
......................... MAPLEWAFFLE-WS2 passed test RidManager
Starting test: Services
......................... MAPLEWAFFLE-WS2 passed test Services
Starting test: SystemLog
......................... MAPLEWAFFLE-WS2 passed test SystemLog
Starting test: VerifyReferences
......................... MAPLEWAFFLE-WS2 passed test VerifyReferences
Running partition tests on : ForestDnsZones
Starting test: CheckSDRefDom
......................... ForestDnsZones passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... ForestDnsZones passed test CrossRefValidation
Running partition tests on : DomainDnsZones
Starting test: CheckSDRefDom
......................... DomainDnsZones passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... DomainDnsZones passed test CrossRefValidation
Running partition tests on : Schema
Starting test: CheckSDRefDom
......................... Schema passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... Schema passed test CrossRefValidation
Running partition tests on : Configuration
Starting test: CheckSDRefDom
......................... Configuration passed test
CheckSDRefDom
Starting test: CrossRefValidation
......................... Configuration passed test
CrossRefValidation
Running partition tests on : corp
Starting test: CheckSDRefDom
......................... corp passed test CheckSDRefDom
Starting test: CrossRefValidation
......................... corp passed test CrossRefValidation
Running enterprise tests on : corp.contoso.com
Starting test: LocatorCheck
......................... corp.contoso.com passed test
LocatorCheck
Starting test: Intersite
......................... corp.contoso.com passed test
Intersite
Pour exécuter une série de tests de connectivité sur un contrôleur de domaine spécifique, exécutez la commande suivante :
dcdiag /s:<DomainControllerName>
Il doit générer des résultats similaires au test local si aucun problème n’est rencontré.
Sortie dans un fichier journal
DCDiag est en mesure d’enregistrer les résultats de sortie dans un fichier texte en exécutant :
dcdiag /s:<DomainControllerName> /f:<FileName.txt>
Si aucun n’est <FilePath> spécifié, les résultats sont enregistrés C:\Users\<UserName>\<FileName.txt> par défaut.
Pour enregistrer dans un emplacement spécifique, exécutez :
dcdiag /s:<DomainControllerName> /f:<DriveLetter>\<FilePath>\<FileName.txt>