DCDiag: Hoe controleer je de gezondheid van een domeincontroller met Powershell

DCDiag: Hoe de gezondheid van een domeincontroller controleren met Powershell. DCDiag is een krachtige opdrachtregeltool die wordt gebruikt om problemen met domeincontrollers in een Microsoft Windows Active Directory-omgeving te diagnosticeren. We gebruiken het om de gezondheid van domeincontrollers te controleren, fouten of inconsistenties te identificeren en replicatieproblemen op te lossen. DCDiag helpt ook beheerders om problemen met de DNS-configuratie, SYSVOL-replicatie en andere kritieke services die nodig zijn voor een correcte werking van Active Directory te detecteren en op te lossen.

We onderzoeken DCDiag, een krachtige Microsoft Windows-tool. We gebruiken het om DNS-services te testen, de gezondheid van domeincontrollers te evalueren en zelfs automatisch fouten te corrigeren. Hoewel relatief eenvoudig, is de tool krachtig genoeg om de gezondheid van al onze domeincontrollers te behouden.Zullen we beginnen met het artikel DCDiag: Hoe de gezondheid van een domeincontroller controleren met Powershell?Lees ook Hoe voeg je een domeincontroller toe aan een bestaand domein

Zullen we beginnen met het artikel DCDiag: Hoe u de gezondheid van een domeincontroller controleert met Powershell

DCDiag: Hoe u de gezondheid van een domeincontroller controleert met Powershell

Het installeren van het DCDiag-gereedschap

Als we Windows Servergebruiken, zouden we DCDiag moeten hebben geïnstalleerd. Microsoft heeft DCDiag ingebouwd in de moderne Windows Server-versies, vanaf 2012R2 en latere versies.

Doel van het DCDiag-gereedschap

Het doel van DCDiag is het diagnosticeren en problemen oplossen met domeincontrollers in een Windows Server-omgeving. Het is een opdrachtregelgereedschap dat een breed scala aan gezondheidschecks uitvoert op een domeincontroller, inclusief tests voor DNS, replicatie, LDAP, beveiligingsanalyse van één of meerdere DC’s tegelijkertijd binnen onze AD-forest of onderneming. Laten we een aantal van de verschillende tests bekijken die DCDiag uitvoert op een domeincontroller:

  1. Connectiviteitstests – DCDiag controleert of de domeincontroller is verbonden met het netwerk en kan communiceren met andere domeincontrollers.
  2. DNS-tests – controleert of de domeincontroller de DNS correct opgelost en geregistreerd heeft.
  3. Replicatietests– test of de domeincontroller nauwkeurig repliceert met andere domeincontrollers.
  4. Vertrouwens tests – DCDiag controleert of de domeincontroller andere domeinen vertrouwt en of andere domeinen de domeincontroller vertrouwen.
  5. LDAP-tests– controleert of LDAP queries correct werken op de domeincontroller.
  6. Kerberos-tests – DCDiag controleert of Kerberos authenticatie correct werkt op de domeincontroller.
  7. SYSVOL tests – DCDiag controleert of SYSVOL replicatie correct werkt op de domeincontroller.
  8. Global Catalog tests – DCDiag controleert of de DC fungeert als een Global Catalog server en of Global Catalog-query’s correct werken.

Overzicht van het DCDiag-gereedschap

Nou, met artikel DCDiag: Hoe de gezondheid van een domeincontroller te controleren met behulp van Powershell is een eenvoudig command line utility. We voeren DCDiag uit op een CMD Prompt of een PowerShell venster. Vergeet niet beheerdersrechten te gebruiken.

De basis syntaxis van DCDiag is als volgt:

dcdiag.exe /s:[:] [/u:\ /p:*||””]

Waarbij:

  • /s – De Domain Controller
  • /u:\ – Het Gebruikersnaam
  • \p:* – Het Wachtwoord

Deze basis command line retourneert de testresultaten die de primaire (connectiviteit) test en elke aangegeven test op de domeincontroller weergeven. Om te leren hoe te gebruiken DCDiag command samen met alle zijn schakelaars, laten we beginnen met de hulp opdracht:

dcdiag /?

DCDiag Schakelparameters

Om een van de volgende schakelaars te gebruiken, voeg deze toe na de DCDiag-opdracht. Een overzicht van de populaire commandoschakelaars:


  1. /s <ServerName> – Specificeert de naam van de server om te testen. Als er geen servernaam is opgegeven, test DCDiag de lokale computer.

  2. /v – Biedt uitgebreide uitvoer en aanvullende informatie over de uitgevoerde tests.

  3. /test:<TestName> – Specificeert de naam van de test om uit te voeren. We voeren meerdere tests uit door meerdere /test-schakelaars op te geven.

  4. /e – Voert een volledige reeks tests uit op de opgegeven domeincontroller.

  5. /fix – Probeert eventuele problemen die tijdens de tests zijn gevonden, op te lossen.

  6. /f:<LogFileName> – Specificeert de logboek bestandsnaam om te creëren.

  7. /c – Specificeert dat DCDiag alleen de tests uitvoert die vereist zijn voor het adverteren van de diensten van de domeincontroller.
  8. /skip:<TestName> – Hiermee wordt de opgegeven test overgeslagen.
  9. /l:<LogFileName> – Hiermee geeft u de logbestandsnaam op om aan toe te voegen in plaats van te overschrijven.
  10. /q – Hiermee wordt stille modus opgegeven, die de weergave van informatieve berichten onderdrukt.
  11. /test:DNS – Voert DNS-tests uit op de opgegeven domeincontroller.
  12. /test:KCC – Voert KCC-tests uit op de opgegeven domeincontroller.
  13. /test:Replications – Voert replicatietests uit op de opgegeven dc.
  14. /test:Advertising – Voert advertisingtests uit op de opgegeven dc.
  15. /test:Services – Voert servicetests uit op de opgegeven dc.

Hierboven staan enkele van de meest gebruikte DCDiag command line switches, maar er zijn nog veel meer opties beschikbaar. We kunnen een volledige lijst van switches en hun definities zien door de help command hierboven uit te voeren.

Probeer Onze Active Directory Health DC Rapportage Tool

Probeer ons uit voor Gratis, Toegang tot alle functies. – 200+ AD-rapportagetemplates beschikbaar. Maak gemakkelijk uw eigen AD-rapporten aan.




DCDiag uitvoeren en Gebruiksvoorbeelden

Om DCDiag uit te voeren, typ de DCDiag-opdracht zonder enige switches om een basis DCDiag-test uit te voeren op onze lokale DC (of argument).

dcdiag.exe

Omdat DCDiag automatisch de huidige (lokale) DC identificeert, zijn geen domeincontroller of beheerdersreferenties nodig. In de volgende sectie bespreken we meerdere gebruiksvoorbeelden met behulp van de switchparameters van DCDiag.

Remote DC Health Checks

We moeten de /s: schakelaar aan het einde van de naam van de DC en zijn referenties toevoegen om diagnostische gegevens uit te voeren op een externe DC (gebruikersnaam en wachtwoord). Bijvoorbeeld:

dcdiag.exe /s:dc01 /u:dc01\Administrator /p:password

Het DCPromo en het registreren in DNS, die lokaal worden uitgevoerd en niet voor een domeincontroller, worden niet beïnvloed door de /s schakelaar.

Merk op dat wanneer we de /u (gebruikersnaam) informatie invoeren, we de accountnaam met domeinbeheerdersrechten moeten opgeven en de juiste indeling gebruiken: domein/gebruikersnaam. Dus bijvoorbeeld voegen we de gebruikersnaam (Administrator) toe aan de domeinnaam (dc01): /u:dc01\Administrator.

Gezondheid controleren voor alle DC’s.

We verbinden elk AD site dat mogelijk een verzameling DC’s bevat met elkaar. De /a schakelaar is voordelig als we het AD in sites opdelen. Het stelt ons in staat om de DCDiag-utility tegelijkertijd uit te voeren voor alle site-DC’s:

dcdiag.exe /s:dc01 /a

DNS-testen met DCDiag

Wat we ook testen, het DCDiag-gereedschap controleert altijd standaard de DNS-registratie van elke domeincontroller tijdens de primaire connectiviteitstest. Ook kunnen we specifieke DNS-tests uitvoeren, zoals forwarders, registratie records en andere, die allemaal bijdragen aan het onderzoeken van DNS-problemen. Gebruik de onderstaande opdracht om DNS te testen:

dcdiag.exe /s:dc01 /test:dns

De volgende basistests worden standaard uitgevoerd, behalve voor externe naamresolutie. Alle DNS-resultaten tonen de DNSBasic-test. Als er geen waarde is, wordt de /test:dns-switch automatisch ingesteld op /DNSall. Hier zijn enkele DNS-specifieke tests die we aanroepen bij het gebruik van het DCDiag-gereedschap:

  1. /DNSBasic – Controleert of de DNS-server van de domeincontroller correct is geconfigureerd en naamoplossingen uitvoert.
  2. /DnsDelegation – Test of DNS-delegaties correct zijn geconfigureerd voor de domeincontroller.
  3. /DnsForwarders – Controleert of DNS forwarders correct zijn geconfigureerd voor de domeincontroller.
  4. /DnsDynamicUpdate – Controleert of de domeincontroller dynamische updates uitvoert naar DNS.
  5. /DnsRecordRegistration – Test of de DNS-registratie van de domeincontroller up-to-date en accuraat is.

Deze tests zorgen ervoor dat de DNS-configuratie van een domeincontroller correct is en goed functioneert. Als DCDiag problemen tijdens deze tests aantreft, worden deze snel aangepakt om mogelijke problemen met Active Directory en andere netwerkdiensten te voorkomen. Een DNS-test zou er zo uit moeten zien:

Aanpassen van DCDiag-resultaten

DCDiag stelt ons in staat om de resultaten aan te passen door ons minder of meer informatie te laten zien. Ook kunnen we de resultaten exporteren voor latere analyse. Hier zijn enkele voorbeelden van hoe we DCDiag rapportage kunnen aanpassen.

DCDiag uitvoeren in Stille Modus

De stille /q schakelaar is erg handig, waardoor de uitvoer alleen de foutmeldingenlijst bevat. Hier is een voorbeeld van DCDiag in stille modus: 

dcdiag.exe /s:dc01 /q

De uitvoer met de /q is gefilterd op alleen fouten en ziet er zo uit:

Voer DCDiag uit met uitgebreide output

Door het toevoegen van de /v uitgebreide vlag, voer DCDiag uit met uitgebreide output. Het geeft ons meer informatie over onze dagelijkse taken, zoals fouten, waarschuwingen, informatieve berichten, enz. De /v schakelaar is het tegenovergestelde van de stille /q schakelaar.

Zoals eerder vermeld, biedt DCDiag (zonder /v) voldoende details om elke kwestie met onze domeincontroller te identificeren en op te lossen, wat voldoende kan zijn in de meeste omstandigheden. Hier is een voorbeeld van de tekst met de uitgebreide schakelaar: 

dcdiag.exe /s:dc01 /v

De output met de /v schakelaar zou er zo uit moeten zien:

We raden de uitgebreide output alleen aan als we waarschuwingen of fouten in de standaard samenvattings tabel zien en de problemen in meer detail willen onderzoeken.

Exporteren van DCDiag-resultaten

Het DCDiag-gereedschap stelt ons in staat om export de resultaten van de gezondheidscontrole. Bijvoorbeeld, we slaan alle testresultaten op in een tekstbestand door de /f schakelaar toe te voegen aan de DCDiag-opdracht. Bijvoorbeeld:

dcdiag.exe /s:dc01 f:c:\dcdiag_dc01_test01.txt

Let op dat we de naam van het logbestand aanpassen en opslaan in een specifieke map. We openen de resultaten in Kladblok of een programma dat .txt bestanden ondersteunt.

We exporteren ook resultaten naar XLSX of XML. Deze functie werkt echter alleen voor de /test:dns schakelaar:

dcdiag.exe /test:dns /x or, /test:dns/x:

DCDiag is uitsluitend een diagnostisch instrument. Daarom voert het verschillende tests uit en geeft het uitsluitend zijn bevindingen. De /fix schakelaar is echter een fantastische schakelaar die probeert de genoemde problemen veilig op te lossen.

dcdiag.exe /s:dc01 /fix

We hoeven geen extra parameters of kenmerken op te geven bij het gebruik van de /fix schakelaar. Voor de MachineAccount test alleen werkt de /f schakelaar. Het repareert het MachineAccount object van de DC’s Service Principal Names (SPNs).

Opmerking: Hoewel DCDiag de (fix) schakelaar ontwerpt om veilige automatische reparaties te maken, verandert het nog steeds de domeincontroller. Daarom moet u de testresultaten bekijken voordat u de /f schakelaar gebruikt en altijd een backup van de DC aanmaken.

Het gebruik van DCDiag met PowerShell

Er is geen DCDiag-equivalent in Windows PowerShell . Toch gebruiken we DCDiag in PowerShell door de dcdiag.exe-opdracht uit te voeren met de juiste parameters met behulp van de Invoke-Expression of Invoke-Command cmdlets. Hier is een voorbeeld van hoe u DCDiag in PowerShell kunt gebruiken om de DNS-tests uit te voeren:

Invoke-Expression "dcdiag.exe /test:DNS /v"

In dit voorbeeld gebruikten we de Invoke-Expression cmdlet om de dcdiag.exe-opdracht uit te voeren met de /test:DNS parameter om de DNS-tests uit te voeren en de /v parameter om uitgebreide uitvoer te bieden. Natuurlijk kunnen we /test:DNS vervangen door elke andere DCDiag-test die we willen uitvoeren. Als alternatief gebruiken we de Invoke-Command cmdlet om DCDiag op een externe computer uit te voeren.

Hier is nog een voorbeeld:

Invoke-Command -ComputerName "ServerName" -ScriptBlock { dcdiag.exe /test:DNS /v }

In het vorige voorbeeld gebruikten we de parameter -ScriptBlock met Invoke-Command om de code aan te geven die we wilden uitvoeren op de externe computer. De parameter -ScriptBlock neemt een scriptblok aan, een blok code dat wordt omsloten door accolades {}.

Wanneer we Invoke-Command gebruiken met de parameter -ScriptBlock, wordt de scriptblok uitgevoerd op de externe computer die is opgegeven met de parameter -ComputerName, en de scriptblok retourneert de uitvoer naar de lokale computer. Het gebruik van de parameter -ScriptBlock met Invoke-Command is een krachtige manier om commando’s of scripts uit te voeren op externe computers. Het helpt bij het beheren van grote aantallen computers in een netwerkomgeving, net zoals we de DCDiag-tool hebben gebruikt.

Bedankt voor het lezen van DCDiag: Hoe controleer je de gezondheid van een domeincontroller met behulp van Powershell. We zullen het artikel nu afronden.

Conclusief, DCDiag is een essentiële tool voor beheerders die Active Directory omgevingen beheren. Het biedt een uitgebreid pakket van gezondheidscontroles voor domein controllers, waardoor beheerders problemen gemakkelijk kunnen vaststellen en oplossen. De mogelijkheid om gedetailleerde tests uit te voeren met betrekking tot DNS, replicatie, LDAP, beveiliging en meer maakt DCDiag een waardevol instrument voor het garanderen van de gezondheid en stabiliteit van domeincontrollers en de Active Directory omgeving.

Door DCDiag op te nemen in regelmatige onderhouds- en bewakings routine, helpen beheerders ernstiger problemen te voorkomen en zorgen ervoor dat hun Active Directory omgeving blijft veilig en betrouwbaar.

Source:
https://infrasos.com/dcdiag-how-to-check-domain-controller-health-using-powershell/