DCDiag : Comment vérifier la santé du contrôleur de domaine à l’aide de Powershell. DCDiag est un puissant outil en ligne de commande utilisé pour diagnostiquer les problèmes avec les contrôleurs de domaine dans un environnement Microsoft Windows Active Directory. Nous l’utilisons pour vérifier la santé des contrôleurs de domaine, identifier les erreurs ou les incohérences, et dépanner les problèmes de réplication. DCDiag aide également les administrateurs à détecter et à résoudre les problèmes de configuration DNS, de réplication de SYSVOL, et d’autres services critiques nécessaires au bon fonctionnement de Active Directory.
Nous examinons DCDiag, un puissant outil Microsoft Windows. Nous l’utilisons pour tester les services DNS, évaluer la santé des contrôleurs de domaine, et même corriger automatiquement les erreurs. Bien que relativement simple, l’outil est assez puissant pour maintenir la santé de tous nos contrôleurs de domaine.
Devrions-nous commencer par l’article DCDiag: Comment vérifier la santé du contrôleur de domaine à l’aide de Powershell
DCDiag: Comment vérifier la santé du contrôleur de domaine à l’aide de Powershell
Installation de l’outil DCDiag
Si nous exécutons Windows Server, nous devrions avoir DCDiag installé. Microsoft a intégré DCDiag dans les versions modernes de Windows Server, à partir de 2012R2 et les versions ultérieures.
Objectif de l’outil DCDiag
Le but de DCDiag est de diagnostiquer et de résoudre les problèmes liés aux contrôleurs de domaine dans un environnement Windows Server. Il s’agit d’un outil en ligne de commande qui effectue un large éventail de vérifications de santé sur un contrôleur de domaine, y compris des tests sur le DNS, la réplication, le LDAP, l’analyse de la sécurité d’un ou plusieurs DC simultanément dans notre forêt AD ou entreprise. Passons en revue quelques-uns des différents tests que DCDiag effectue sur un contrôleur de domaine :
- Tests de connectivité – DCDiag vérifie si le contrôleur de domaine est connecté au réseau et peut communiquer avec d’autres contrôleurs de domaine.
- Tests DNS – vérifie si le contrôleur de domaine résout et enregistre correctement le DNS.
- Tests de réplication – vérifie si le contrôleur de domaine se réplique avec précision avec les autres contrôleurs de domaine.
- Tests de confiance – DCDiag vérifie si le contrôleur de domaine fait confiance aux autres domaines et si les autres domaines font confiance au contrôleur de domaine.
- Tests LDAP – vérifie si les requêtes LDAP fonctionnent correctement sur le contrôleur de domaine.
- Tests Kerberos – DCDiag vérifie si l’authentification Kerberos fonctionne correctement sur le contrôleur de domaine.
- SYSVOL tests – DCDiag vérifie si la réplication SYSVOL fonctionne correctement sur le contrôleur de domaine.
- Tests du Catalogue Global – DCDiag vérifie si le DC agit en tant que serveur Catalogue Global et si les requêtes du Catalogue Global fonctionnent correctement.
Aperçu de l’outil DCDiag
Bien, avec l’article DCDiag : Comment vérifier la santé du contrôleur de domaine à l’aide de Powershell est un outil de ligne de commande simple. Nous exécutons DCDiag sur une invite de commandes ou une fenêtre PowerShell. N’oubliez pas d’utiliser des privilèges d’administrateur.
La syntaxe de base de DCDiag est la suivante:
dcdiag.exe /s:[:] [/u:\ /p:*||””]
Dans laquelle:
- /s – Le contrôleur de domaine
- /u:\ – Le nom d’utilisateur
- \p:* – Le mot de passe
dcdiag /?
Paramètres de commutation DCDiag
Pour utiliser l’un des commutateurs suivants, ajoutez-le après la commande DCDiag. Un résumé des commutateurs de commande populaires :
- /s <ServerName> – Spécifie le nom du serveur à tester. Si aucun nom de serveur n’est spécifié, DCDiag teste l’ordinateur local.
- /v – Fournit une sortie détaillée et des informations supplémentaires sur les tests effectués.
- /test:<TestName> – Spécifie le nom du test à exécuter. Nous exécutons plusieurs tests en spécifiant plusieurs commutateurs /test.
- /e – Effectue un ensemble complet de tests sur le contrôleur de domaine spécifié domain controller.
- /fix – Essaie de corriger les problèmes détectés lors des tests.
- /f:<LogFileName> – Spécifie le nom du fichier journal à créer.
- /c – Spécifie que DCDiag ne doit effectuer que les tests nécessaires pour la publicité des services du contrôleur de domaine.
- /skip:<TestName> – Ignore le test spécifié.
- /l:<LogFileName> – Spécifie le nom du fichier de journal à ajouter plutôt que de remplacer.
- /q – Spécifie le mode silencieux, qui supprime l’affichage des messages d’information.
- /test:DNS – Exécute les tests DNS sur le contrôleur de domaine spécifié.
- /test:KCC – Exécute les tests KCC sur le contrôleur de domaine spécifié.
- /test:Replications – Exécute les tests de réplication sur le dc spécifié.
- /test:Advertising – Exécute les tests d’annonce sur le dc spécifié.
- /test:Services – Exécute les tests de service sur le dc spécifié.
Ci-dessus se trouvent certaines des commutateurs de ligne de commande DCDiag les plus utilisés, mais de nombreuses autres options sont disponibles. Nous pouvons voir une liste complète de commutateurs et leurs définitions en exécutant la commande aide ci-dessus.
Essayez notre outil de création de rapports sur la santé Active Directory DC
Essayez-nous gratuitement, accès à toutes les fonctionnalités. – 200+ modèles de rapports AD disponibles. Personnalisez facilement vos propres rapports AD.
Exécution de DCDiag et cas d’utilisation
Pour exécuter DCDiag, tapez la commande DCDiag sans aucun commutateur pour effectuer un test de base de DCDiag sur notre DC local (ou argument).
dcdiag.exe
Puisque DCDiag identifie automatiquement le DC actuel (local), ni un contrôleur de domaine ni des informations d’identification d’administration ne sont nécessaires. Dans la section suivante, nous discutons de plusieurs cas d’utilisation en utilisant les paramètres de commutateur de DCDiag.
Vérifications de la santé des DC à distance
Nous devons ajouter l’interrupteur /s: à la fin du nom du DC et de ses informations d’identification pour exécuter des diagnostics sur un DC distant (nom d’utilisateur et mot de passe). Par exemple:
dcdiag.exe /s:dc01 /u:dc01\Administrator /p:password
Le DCPromo et l’enregistrement dans DNS, qui sont exécutés localement et pas pour un contrôleur de domaine, ne seront pas affectés par l’/s commutateur.
Notez que lorsque nous entrons les informations /u (nom d’utilisateur), nous devons spécifier le nom d’utilisateur avec des autorisations d’administrateur de domaine et utiliser le format correct : domaine/nom d’utilisateur. Ainsi, par exemple, nous ajoutons le nom d’utilisateur (Administrateur) avec le nom de domaine (dc01) : /u:dc01\Administrateur.
Vérification de l’état de santé pour tous les DC
Nous interconnectons chaque site AD qui peut contenir une collection de DC vers les autres. L’interrupteur /a est bénéfique si nous divisons l’AD en sites. Il nous permet d’exécuter l’outil DCDiag simultanément pour tous les DC des sites :
dcdiag.exe /s:dc01 /a
Utilisation de DCDiag pour tester DNS
Quoi que nous testions, l’outil DCDiag vérifie toujours par défaut la inscription DNS de chaque contrôleur de domaine lors du test de connectivité primaire. De plus, nous pourrions effectuer des tests DNS spécifiques, tels que les relais, les enregistrements d’inscription et d’autres, qui aident à enquêter sur les problèmes DNS. Pour tester DNS, utilisez la commande ci-dessous :
dcdiag.exe /s:dc01 /test:dns
Les tests de base suivants sont exécutés par défaut, à l’exception de la résolution de noms externes. Tous les résultats DNS affichent le test DNSBasic. S’il n’y a pas de valeur, l’interrupteur /test:dns passe automatiquement par défaut à /DNSall. Voici quelques tests DNS spécifiques que nous appelons lors de l’utilisation de l’outil DCDiag :
- /DNSBasic – Vérifie si le serveur DNS du contrôleur de domaine est configuré correctement et résout les noms.
- /DnsDelegation – Teste si les délégations DNS sont configurées correctement pour le contrôleur de domaine.
- /DnsForwarders – Vérifie si les forwardeurs DNS sont configurés correctement pour le contrôleur de domaine.
- /DnsDynamicUpdate – Vérifie si le contrôleur de domaine effectue des mises à jour dynamiques vers DNS.
- /DnsRecordRegistration – Teste si l’enregistrement DNS du contrôleur de domaine est à jour et précis.
Ces tests garantissent que la configuration DNS d’un contrôleur de domaine est correcte et fonctionne correctement. Si DCDiag détecte des problèmes lors de ces tests, DCDiag les traite rapidement pour éviter d’éventuels problèmes avec Active Directory et d’autres services réseau. Un test DNS devrait ressembler à ceci :
Personnalisation des résultats DCDiag
DCDiag nous permet de personnaliser les résultats en nous montrant moins ou plus d’informations. Également exporter les résultats pour une analyse ultérieure. Voici quelques exemples sur la façon dont nous personnalisons DCDiag rapport.
Exécutez DCDiag en mode silencieux
L’interrupteur silencieux /q est très pratique, réduisant la taille de la sortie en affichant uniquement la liste des messages d’erreur. Voici un exemple de DCDiag en mode silencieux :
dcdiag.exe /s:dc01 /q
La sortie avec le /q est filtrée uniquement pour les erreurs, ce qui ressemble à ceci :
Exécuter DCDiag avec sortie verbos
En ajoutant le drapeau /v verbeux, exécutez DCDiag avec sortie verbos. Il nous fournit plus d’informations sur nos tâches quotidiennes, telles que les erreurs, les avertissements, les messages d’information, etc. L’interrupteur /v est l’opposé de l’interrupteur silencieux /q.
Comme nous l’avons noté précédemment, DCDiag (sans /v) fournit suffisamment de détails pour identifier et résoudre tout problème avec notre contrôleur de domaine, ce qui peut suffire dans la plupart des circonstances. Voici un exemple de fragment avec l’interrupteur verbeux :
dcdiag.exe /s:dc01 /v
La sortie avec l’interrupteur /v devrait ressembler à ceci:
Nous recommandons uniquement la sortie verbos si nous voyons des avertissements ou des erreurs dans le tableau de résumé standard et que nous voulons en savoir plus sur le problème en détail.
Lisez également Déployer la solution de surveillance Azure AD
Exporter les résultats de DCDiag
L’outil DCDiag nous permet d’exporter les résultats de vérification de santé. Par exemple, nous enregistrons tous les résultats des tests dans un fichier texte en ajoutant l’interrupteur /f à la commande DCDiag. Par exemple :
dcdiag.exe /s:dc01 f:c:\dcdiag_dc01_test01.txt
Notez que nous personnalisons le nom du fichier de journal et le sauvegardons dans un dossier spécifique. Nous ouvrons les résultats dans le bloc-notes ou tout autre programme qui prend en charge les fichiers .txt.
Nous exportons également les résultats vers XLSX ou XML. Cependant, cette fonction ne fonctionne que pour l’interrupteur /test:dns :
dcdiag.exe /test:dns /x or, /test:dns/x:
Le DCDiag est uniquement un outil de diagnostic. Par conséquent, il effectue différents tests et fournit exclusivement ses constatations. L’interrupteur /fix, cependant, est un excellent commutateur qui tente de remédier de manière sécurisée aux problèmes énoncés.
dcdiag.exe /s:dc01 /fix
Nous n’avons pas besoin de fournir plus de paramètres ou de caractéristiques lors de l’utilisation de l’interrupteur /fix. Pour le test MachineAccount uniquement, l’interrupteur /f est fonctionnel. Il corrige l’MachineAccount objet du DC’s Service Principal Names (SPNs).
Remarque : Même si DCDiag conçoit l’interrupteur (fixe) pour effectuer des réparations automatiques, il modifie encore le contrôleur de domaine. Par conséquent, examinez les résultats des tests avant d’utiliser l’interrupteur /f, et créez toujours une sauvegarde du contrôleur de domaine.
Utilisation de DCDiag avec Powershell
Il n’y a pas de correspondant DCDiag dans Windows PowerShell . Cependant, nous utilisons DCDiag dans PowerShell en exécutant la commande dcdiag.exe avec les paramètres appropriés à l’aide des cmdlets Invoke-Expression ou Invoke-Command . Voici un exemple de l’utilisation de DCDiag dans PowerShell pour exécuter les tests DNS :
Invoke-Expression "dcdiag.exe /test:DNS /v"
Dans cet exemple, nous avons utilisé la cmdlet Invoke-Expression pour exécuter la commande dcdiag.exe avec le paramètre /test:DNS pour exécuter les tests DNS et le paramètre /v pour fournir une sortie verbale. Bien sûr, nous pouvons remplacer /test:DNS par n’importe quel autre test DCDiag que nous voulons exécuter. Par ailleurs, nous utilisons la cmdlet Invoke-Command pour exécuter DCDiag sur un ordinateur distant.
Voici un autre exemple :
Invoke-Command -ComputerName "ServerName" -ScriptBlock { dcdiag.exe /test:DNS /v }
Dans l’exemple précédent, nous avons utilisé le paramètre -ScriptBlock avec Invoke-Command pour spécifier le code que nous voulions exécuter sur l’ordinateur distant. Le paramètre -ScriptBlock prend un bloc de script, essentiellement un bloc de code entre accolades {}.
Lorsque nous utilisons Invoke-Command avec le paramètre -ScriptBlock, nous exécutons le bloc de script sur l’ordinateur distant spécifié avec le paramètre -ComputerName, et le bloc de script renvoie la sortie à l’ordinateur local. L’utilisation du paramètre -ScriptBlock avec Invoke-Command est un moyen puissant d’exécuter des commandes ou des scripts sur des ordinateurs distants. Cela permet de gérer un grand nombre d’ordinateurs dans un environnement réseau, tout comme nous avons utilisé l’outil DCDiag.
Merci d’avoir lu DCDiag : Comment vérifier l’état de santé du contrôleur de domaine à l’aide de PowerShell. Nous allons maintenant conclure l’article.
En conclusion, DCDiag est un outil essentiel pour les administrateurs qui gèrent les environnements Active Directory. Fournir une suite complète de vérifications de l’état de santé des contrôleurs de domaine permet aux administrateurs de diagnostiquer et de résoudre facilement les problèmes. La capacité à effectuer des tests détaillés liés à DNS, à la réplication, à LDAP, à la sécurité, et plus encore, fait de DCDiag un outil précieux pour garantir la santé et la stabilité des contrôleurs de domaine et de l’environnement Active Directory.
En intégrant DCDiag dans les routines de maintenance et de surveillance régulières, les administrateurs contribuent à prévenir des problèmes plus graves et à garantir que leur environnement Active Directory reste sécurisé et fiable.
Source:
https://infrasos.com/dcdiag-how-to-check-domain-controller-health-using-powershell/