Check-Liste, Tools: Konsistenz von Active Directory prüfen

    Active Directory Health CheckDie Kon­sistenz eines Active Directory sollte regel­mäßig geprüft werden. Dazu kommen beson­dere Anlässe, etwa bei Ver­dacht auf Störungen oder wenn die Synchro­nisation mit Azure AD ansteht. Dieser Bei­trag listet die wich­tigsten Maß­nahmen auf und be­schreibt, wie man sie mit den gängigen Tools umsetzt.

    Die Active Directory Domain Services sollten besonders in großen verteilten Infra­strukturen permanent unter Beobachtung stehen. Microsoft SCOM, Azure Monitor oder Lösungen von Dritt­anbietern unter­stützen Admins dabei (siehe dazu auch: Kostenlose Tools für Active Directory). Fehler in der Active Directory-Struktur können lange Zeit nicht sonderlich auffallen und eines Tages zu Problemen führen (Stichwörter: Tombstone Lifetime, Lingering Object, DFSR MaxOfflineTimeInDays oder USN Rollback).

    Gründe für eine AD-Konsistenzprüfung

    Die Gründe für eine derartige Prüfung können vielfältig sein und sicher hat jeder eigene Vorstellungen. Dazu einige Anregungen:

    • Eine bevorstehende Active-Directory-Migration
    • Hinzufügen eines neuen DC
    • Anheben der Funktionsebenen
    • Schemaerweiterungen
    • Übernahme eines Forest als Dienstleister oder Admin
    • Fusionen
    • Planung eines Bastion Forest
    • Eine Koexistenz mit dem Azure AD (AADConnect, PTA, AD FS)
    • Implementieren einer Lösung, welche das Verzeichnis via LDAP anzapft
    • Plötzliche Probleme bei User-Anmeldungen
    • Fehler in den Eventlogs
    • Gewährleistung einer "sauberen" Cluster-Imple­men­tierung, beispiels­weise für eine hyper­konvergente Lösung mit Storage Spaces Direct

    Checkliste für eine Konsistenzprüfung

    In größeren Umgebungen mit mehreren Sites und geografisch verteilten Standorten ist eine reibungslose Replikation ein Muss. Doch auch in einem Forest mit einer Domain, bestehend aus 2 oder 3 Controllern, muss ein Abgleich sauber funktionieren. Wichtig, eine AD-Struktur basiert auf DNS-Servern und somit müssen diese mit berücksichtigt werden. Meine Checkliste sieht folgender­maßen aus:

    • Vorab: Sicherstellen, dass der System State regelmäßig gesichert wird, Alter der Sicherungen prüfen.
    • Verifizieren der System-Zeiten (Stichwörter: Kerberos Richtlinie, AD Zeitstempel).
    • Setzt das Unternehmen eine Monitoring-Lösung ein, dann gilt der erste Blick den problematischen Meldungen hierzu.
    • Ist die Site-Infrastruktur klar, also wer mit wem repliziert und wohin, sind Erreich­barkeiten zu prüfen. Dazu kann man beginnend einen einfachen Ping verwenden.
    • DNS-Topologie prüfen (wo gibt es Namensserver?), Auswertung der DNS Eventlogs.
    • AD-Topologie prüfen, Domänen-Controller ermitteln und Rollen­verteilung klären.
    • Eventlogs zum Directory Service untersuchen.
    • Grundlegend und manchmal vernachlässigt: Performance-Werte der AD-Controller begutachten, d.h. erst einmal RAM- und CPU-Auslastungen. Weiter liefern Performance-Counter detaillierte Werte.
    • Inspizieren des Speicher­ortes, Speicher­verbrauchs und Speicher­platzes für die Active Directory Multimaster-Datenbank (NTDS.dit, edb, etc.).
    • Wenn vorhanden, Malware-Engines betrachten, und nötige Ausschlüsse kontrollieren.
    • Die Active Directory-Replikationen testen (nächster Abschnitt).
    • Wie lange war ein DC ggfs. offline.
    • Einfach und effektiv: Ein User- oder Computer-Objekt anlegen und prüfen, ob dieses auf Replikationspartnern erscheint.

    Active Directory Replication Status Tool

    Beginnen möchte ich mit der GUI-Variante zur Replikations­analyse. Das etablierte ADREPLSTATUS-Tool (einige Zeit lokal nicht verfügbar, da komplett in OMS gewandert) untersucht die Replikationen in einer Domäne und/oder im Forest.

    Prüfung mit dem AD Replication Status Tool

    Das Tool kommt in meiner Umgebung auf einem Management-Hop-Server zum Einsatz und benötigt die Rechte eines Enterprise Admin für die Forest-Analyse. Fehler lassen sich aus der GUI heraus weiter­verfolgen und analysieren.

    ADREPLSTATUS Tool ist kostenlos und kann von Microsofts Website heruntergeladen werden.

    Replikationsanalyse mit Repadmin

    Das Kommando

    repadmin /showrepl

    zeigt den Status der letzten erfolgreichen oder misslungenen eingehenden Replikation zu den Active Directory-Partitionen an. In diesem Fall wird es auf ADDS-NODE-A ausgeführt, und der eingehende Partner ist ADDS-NODE-B. Soll der eingehende Traffic von Knoten ADDS-NODE-B geprüft werden, sieht das Kommando folgender­maßen aus:

    repadmin /showrepl ADDS-NODE-B

    Auch diesen Befehl führe ich im Forest unter einem Enterprise Admin-Account (Orga Admin) aus.

    Hinweis: Für diesen Beitrag nutze ich einen deutsch­sprachigen Domänen-Controller unter Windows Server 2016. In freier Wildbahn und inter­nationalen Unter­nehmen kommen DCs typischer­weise in Englisch vor.

    Status der letzten eingehenden Replikation anzeigen mit repadmin /showrepl

    Als nächstes frage ich eine Zusammen­fassung aller Domänen-Controller ab:

    repadmin /replsummary

    Zusammenfassung für alle Controller inkl. Delta-Versatz

    Folgendes Kommando filtert nur die Replikations­fehler heraus:

    repadmin /replsummary /errorsonly

    Zusätzlich kann die eingehende Wartes­chlange ausgegeben werden:

    repadmin /queue

    Das Tool initiiert mit dem folgenden Aufruf eine Synchro­nisation von ADDS-NODE-B nach ADDS-NODE-A:

    repadmin /replicate ADDS-NODE-A.kueppers.lab ADDS-NODE-B.kueppers.lab DC=kueppers,DC=lab

    Repadmin ist verfügbar, sobald die MMC-Snap-Ins und Commandline-Tools für AD DS installiert sind.

    Das Diagnose-Tool Dcdiag

    Ich beginne bei der Diagnose mit einer detaillierten Verbose-Abfrage und leite ihre Ausgabe in diese TXT-Datei um:

    dcdiag /v > C:\ARCHIV\dcdiag_ADDS-NODE-A.txt

    Umfangreiche Dcdiag-Analyse

    Das Speichern der Ergebnisse in einer Textdatei vereinfacht die Suche nach Hinweisen. Darüber hinaus dient sie mir als Dokumentations­grundlage. Dcdiag prüft zudem die FSMO-Rollen-Halter (Operations masters). Eine generelle Abfrage kann manuell am einfachsten mit netdom erledigt werden:

    netdom query fsmo

    Abfrage der FSMO-Rollen mit netdom

    PowerShell liefert diese Ergebnisse über Get-ADDomain, Get-ADForest oder Get-ADDomainController. Der Screenshot zeigt meinen DC unter Windows Server 2019 in englischer Sprache:

    Controller abfragen mit PowerShell

    Eine übersichtliche Darstellung der Operations masters liefert dieser Syntax:

    Get-ADDomainController -Filter * | Select Name, Domain, Forest, OperationMasterRoles | Where-Object {$_.OperationMasterRoles}

    Möchte man alle Domain-Controller im Forest mit Dcdiag testen, dann hilft der Schalter /e weiter, also

    dcdiag /e

    Eine gezielte Abfrage eines Controllers kann folgendermaßen gestartet werden:

    dcdiag /s:ADDS-NODE-B

    Eine DNS-Analyse gehört zum Umfang eines Trouble­shooting und einer Konsistenzprüfung, Dcdiag hilft hier beispielsweise mit:

    dcdiag /test:DNS /DNSBasic

    Dcdiag DNS Basic

    Einen ausführlichen DNS-Test leite ich wieder in eine TXT-Datei um:

    dcdiag /test:DNS /DNSAll > C:\ARCHIV\dcdiag_DNSAll.txt

    Auch Dcdiag ist erst vorhanden, nachdem die Commandline-Tools für AD DS installiert wurden.

    Event-Log Analyse pro Domänen-Controller

    Nach dem Einsatz dieser Tools wechseln wir zur Ereignis­proto­kollierung. Gerade diese liefert wichtige Hinweise für eine Analyse pro DC.

    Event-Log Analyse bei einer AD-Konsistenzprüfung (hier: deutschsprachiger Domänen-Controller)

    Folgende Protokolle müssen gesichtet und ggfs. gefiltert werden:

    • System
    • DFS-Replikation
    • Directory Service
    • DNS Server
    • Active Directory Web Services
    • DirectoryServices-Deployment

    Konsolidiert findet man die wichtigsten unter Benutzerdefinierte Ansichten => Serverrollen => Active Directory-Domänendienste.

    Benutzerdefinierte Ansicht für Directory Services in der Ereignisanzeige

    Diese Event-IDs sollten Beachtung finden: 1311, 1925, 1988, 2087, 2088, 2095 oder 4012.

    Prüfen Sie bei dieser Gelegenheit auch einmal die Eigen­schaften eines Protokolls, d.h., die maximal erlaubte Protokoll­größe, und was bei Erreichen derselben passiert. Außerdem interessant: Gibt es schon eine Filterung und muss diese angepasst oder gelöscht werden? Nur wenn Protokolle bei einer Fülle von Events nicht ständig überschrieben werden, können Ereignisse der Vergangenheit besser eingegrenzt werden und Hinweise liefern.

    Bei meinen Routineprüfungen kontrolliere ich zusätzlich auch immer das DCPROMO.log unter:

    %systemroot%\debug

    Hier kann nachvollzogen werden, ob es schon Probleme beim promoten gab.

    Ordner und Laufwerk der Active Directory Datenbank prüfen

    Wie eingangs erwähnt, macht es Sinn, die Datenbank zu inspizieren und das Laufwerk, auf dem sie liegt, auf verfügbaren Speicherplatz zu prüfen.

    Speicherort der AD-Datenbank

    Die NTDS.dit ist die schützenswerte ESE-Datenbankdatei, sie beinhaltet die Identitäten und Informationen zur AD-Struktur. Achten Sie alle 12 Stunden auf Ereignisse (ID 700 und 701) zur Online-Defragmentierung im Directory-Service-Log. Ein Tool für das AD-Datenbanksystem ist NTDSUTIL.exe. Damit kann man die Datenbank auch offline defragmentieren.

    Dieses Programm für die Kommandozeile ist auch in der Lage die Integrität des AD zu prüfen. Dazu geht man folgendermaßen vor:

    1. Login am Domain Controller als Domain-/Enterprise-Administrator
    2. PowerShell as Administrator starten
    3. NTDS-Service beenden mit net stop ntds

    Schließlich gibt man folgende Befehlssequenz ein:

    ntdsutil
    activate instance ntds
    files
    integrity

    Link-Sammlung zur AD-Konsistenzprüfung

    How to perform offline defragmentation of the Active Directory database

    USN Rollback, Virtualized DCs and improvements on Windows Server 2012

    Veraltete Objekte aus dem AD entfernen mit dem Lingering Object Liquidator

    Running Domain Controllers in Hyper-V

    Enable Strict Replication Consistency

    Notes for FSMO Roles (Flexible Single Master Operation)

    • Zeiteinstellungen in Windows-Domänen über NTP konfigurieren

    • What does DCDIAG actually… do?

    Active Directory files and their functions

    • ESE Deep Dive: The Anatomy of an ESE database

    • Deep Dive: Active Directory ESE Version Store Changes in Server 2019

    Implementing Content Freshness protection in DFSR

    Just-In-Time Administration (JIT) in Windows Server 2016

    How the Active Directory Replication Model Works

     

    2 Kommentare

    Bild von Thomas
    Thomas sagt:
    10. März 2019 - 14:02

    Klasse Beitrag, hat mir sehr geholfen.
    Tom

    Bild von  Marcel
    Marcel sagt:
    8. Mai 2019 - 7:09

    Prima, ... so schaut man den DC‘s mal vernüftig unter die „Haube“ ....