Logo faq-o-matic.net
Logo faq-o-matic.net

ADRepCheckLatency: AD-Replikationslatenz messen

von veröffentlicht am30. September 2009, 06:28 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Active Directory, AD: Replikation, VBScript   Translate with Microsoft Translator Translate EN   Die angezeigte Seite drucken

In einer verteilten AD-Umgebung ist es manchmal nicht ganz leicht herauszufinden, wie lang die effektive Replikationslatenz ist – wie lang es also dauert, bis eine Änderung an Daten des AD auf allen Domänencontrollern angekommen ist. Für einen Praxisworkshop in der Fachzeitschrift “IT-Administrator” (Heft Oktober 2009) habe ich gemeinsam mit Florian Frommherz das Skript “ADRepCheckLatency” entwickelt, das bei dieser Aufgabe unterstützt. Es steht hier zum Download bereit.

Das Skript “injiziert” auf einem DC eine Änderung in die AD-Datenbank und prüft dann auf einem anderen DC, wann die Änderung dort vorliegt. Durch Vergleich der lokalen Zeitstempel im Attribut “whenChanged” errechnet es die Latenz dieses Replikationsvorgangs. Um ein aussagekräftiges Ergebnis zu erhalten, sollte man die Messung zu verschiedenen Zeitpunkten wiederholen und an allen AD-Standorten ausführen.

Die Skripts

Eigentlich handelt es sich nicht um ein Skript, sondern um drei:

  1. ADRepCheckLatency-Inject.vbs: Dieses ausführbare Skript modifiziert Daten in AD und gibt Auskunft darüber.
  2. ADRepCheckLatency-Detect.vbs: Das zweite ausführbare Skript fragt auf einem zweiten DC nach den geänderten Daten. Ist die Änderung dort angekommen, so zeigt es die Änderungszeit an und gibt die Replikationslatenz in Sekunden aus.
  3. ADRepCheckLatency-Parameters.vbs: Dieses ist kein ausführbares Skript, sondern eine Parameterdatei. Bevor man die anderen beiden Skripts ausführt, passt man die Werte in dieser Datei an.

Die Nutzung

  • Schritt 1: Die Datei “ADRepCheckLatency-Parameters.vbs” in einem Texteditor (z.B. Notepad) öffnen. Die vier Variablen des Skripts wie angegeben an die eigene Umgebung anpassen:
    • strObject: hier gibt man den LDAP-Namen (Distinguished Name) eines AD-Objekts an, das das Skript ändern soll. Für die Messung der Domänenreplikation nimmt man ein Domänenobjekt, für die Konfigurationsreplikation eines aus der Configuration Partition.
      Im Domänenkontext kann der vordefinierte “Administrator”-Account durchaus geeignet sein, weil dort normalerweise nur wenige unternehmensrelevante Attribute gesetzt sind. Wer ein eigenes Objekt für die Messung erzeugt, sollte es hinterher auch wieder löschen.
    • strAttribute: hier das Attribut angeben, das das Skript ändern soll. Es muss ein einwertiges Text-Attribut sein.
    • strNewValue: hier den Textwert angeben, den das Skript in das Attribut schreiben sollen. Idealerweise nimmt man einen Wert, den man leicht erkennen kann. Der Wert muss sich außerdem vom momentanen Wert unterscheiden. Keine dynamischen Daten nehmen (wie etwa die “Now”-Funktion von VBS), weil dann die Erkennung nicht funktioniert.
    • strLocalDC: der Name des DCs, der die Änderung im AD ausführen soll. Die Änderungszeit auf diesem DC ist später die Grundlage für die Latenzberechnung.
  • Schritt 2: Man öffne ein CMD-Fenster mithilfe eines Kontos, das auf das Zielobjekt im AD Schreibrechte hat. Dort startet man das Skript "ADRepCheckLatency-Inject.vbs" mit cscript ohne Argumente. Beispiel:
    cscript C:\MeinOrdner\ADRepCheckLatency-Inject.vbs
    Auf das Ende des Skripts warten. Sollte es sich beschweren, dass der neue Wert dem alten entspricht, dann in Schritt 1 einen anderen Wert wählen. Oder aber in ADSI Edit vor dem Skriptaufruf den “aktuellen” Wert ändern.
  • Schritt 3: Eine gewisse Zeit abwarten, bis die Replikation auf dem enfernten DC wahrscheinlich durchgelaufen ist. Dann ein CMD-Fenster mithilfe eines Kontos öffnen, das das geänderte Objekt lesen darf. Das Skript "ADRepCheckLatency-Detect.vbs" mit cscript und dem Namen des entfernten DCs als Argument starten. Beispiel:
    cscript C:\MeinOrdner\ADRepCheckLatency-Detect.vbs DC007
    Abwarten, bis das Skript fertig ist. Sollte das Skript feststellen, dass die Replikation noch nicht angekommen ist, wartet es eine Minute und prüft dann erneut. Ist die Replikation durch, dann gibt das Skript die Änderungszeit des entfernten DC aus sowie die Replikationslatenz in Sekunden.

Die Replikationslatenz gegen mehrere DCs prüfen

Das “Detect”-Skript fragt genau einen DC nach dem geänderten Objekt. Wer die Latenz gegen mehrere Sites oder DCs messen möchte, kann das Detect-Skript wie in Schritt 3 einfach mehrfach ausführen, entweder nacheinander (nützlich, wenn man die Ausgabe etwa in eine Datei umleitet) oder auch simultan (dazu mehrere CMD-Fenster öffnen).

Support und Haftungsausschluss

Weder die Autoren (Nils Kaczenski und Florian Frommherz) noch faq-o-matic.net geben irgendeine Garantie für dieses Skript. Support gewähren wir nicht. Wer die Skripts einsetzt, tut dies auf eigene Gefahr. Eines der Skripts ändert Daten im AD, daher ist der Ausführende selbst für die Daten verantwortlich. Es ist unerlässlich, vor der Ausführung eine vollständige Datensicherung des AD auszuführen.

Und hier der Download

Download: ADRepCheckLatency  ADRepCheckLatency (5,4 KiB, 1.480 Downloads, letzte änderung am 24. September 2009)

© 2005-2017 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!