Tools überwachen das AD, Teil 1

8. Februar 2010

Einige in Administratorkreisen eher weniger bekannte Tools machen die Verwaltung am Active Directory einfacher. Dazu gehören in erster Linie das Sichern und Wiederherstellen von Gruppenrichtlinien-Objekten (GPOs). Die Gruppenrichtlinienmanagementkonsole (GPMC, Group Policy Management Console) hilft bei diesen Arbeiten. Sie verfügt in der Version für den Windows Server 2003 bereits standardmäßig über eine Bibliothek von 32 Skripts für die Wartungsarbeiten an den Gruppenrichtlinien. Beim Server 2008 kann man diese Programme via Download beziehen. Weitere Aufgaben im AD-Umfeld sind das Überwachen des File Replication Service (FRS) sowie das Ntdsutil-Skripting.

Wie bei jedem komplexen System so gibt es auch beim Active Directory (AD) und den zugehörigen Werkzeugen eine Vielzahl von Befehlen und Techniken, um die Administrationsaufgaben leichter und letztendlich auch effektiver zu gestalten. Mit der Zeit wird ein jeder Administrator bei diesen Aufgaben sein Know-how erweitern. Aber er wird auch immer mehr neue Werkzeuge verwenden. Dabei kommt es zwangsläufig dazu, dass er sich auch mit eher unbekannten Tools beschäftigen wird. In dem hier gezeigten Beitrag präsentiert der Autor einige in weiten Kreisen eher unbekannte Tools – die er allerdings als wahre Goldstücke bezeichnet.

Wiederherstellen von GPOs ist eine Pflichtübung

Der Bereich des Sichern und Wiederherstellen von Informationen ist eine Schlüsselaufgabe für den Administrator eines AD. Doch es reicht nicht, nur für den oder die Domänencontroller (DC) einen Sicherungs- und Wiederherstellungsplan vor zu halten. Es bedarf zusätzlicher eines entsprechenden Plans für die Gruppenrichtlinienobjekte (Group Policy Objects, GPOs). Hierbei kommt ein wesentliches Argument ins Spiel: Anders als bei den DCs wird die Verwaltung der GPOs an eine größere Gruppe von „OU-Administratoren“ delegiert.

Je mehr Akteure mit den GPOs hantieren, umso größer ist die Wahrscheinlichkeit, dass dabei etwa etwas schief geht. GPOs werden  versehentlich oder absichtlich gelöscht oder geändert, ohne dass man sich der gesamten Konsequenzen bewusst ist. Zudem haben die für OUs zuständigen Administratoren in aller Regel nicht die Qualifizierung, wie sie Domänen-Administratoren aufweisen.

Da die Änderungen an den GPOs in einer Produktivumgebung sich immer auf eine Vielzahl von Benutzern auswirken, genießt das Wiederherstellen von GPOs eine hohe Priorität. Die GPOs lassen sich zwar im Zuge einer Wiederherstellung von DCs zurücksetzen. Doch dieser Vorgang ist nicht einfach und – weitaus schlimmer in einer Produktivumgebung – er dauert seine Zeit.

Das Aufsetzen einer grundlegenden Sicherung und Wiederherstellung für die GPOs ist keine besonders knifflige Aufgabe. Die Gruppenrichtlinienmanagementkonsole (GPMC, Group Policy Management Console) ist beim Windows Server 2008 und bei Windows Server 2008 Release 2 (R2) enthalten. Für den Server 2003 gibt es diese Software als Download.

Für die Wartungsarbeiten an den Gruppenrichtlinien verfügt dieses  Paket über eine Bibliothek von 32 Skripts (siehe Bild 1). Nachdem die GPMC beim Server 2003 installiert ist, liegen diese Skripts unter C:\Program Files\GPMC\Scripts. Der Server 2008 wie auch das R2 enthalten diese 32 Skripts nicht – doch die Skripts funktionieren auch mit den beiden neueren Server-Versionen, sprich Windows Server 2008 und R2. Über die Download-Seite von Microsoft kann sie der Administrator allerdings kostenlos beziehen. Diese Skripts werden dann zum Beispiel auf einem englischsprachigen System in dem Verzeichnis C:\Program Files\Microsoft Group Policy\GPMC Sample Scripts abgelegt.

All diese Skripts erledigen verschiedenste nützliche Aufgaben an den GPOs. Doch für den Themenbereich Sicherung und Wiederherstellung sind vor allem die folgenden Skripts zu nennen:

  • BackupGPO.wsf,
  • BackupAllGPOs.wsf,
  • RestoreGPO.wsf und
  • RestoreAllGPOs.wsf.

Aus dem Blickwinkel eines Administrators wird das Augenmerk zum einen auf BackupAllGPOs liegen, um alle GPOs in einer Domäne zu sichern. Zum anderen wird sich für das Wiederherstellen eines einzelnen GPO das RestoreGPO eignen. Die Skripts sind entweder in VBScript oder JScript geschrieben. Wenn cscript.exe nicht der standardmäßige Skripting-Host ist, muss man cscript.exe explizit auf der Kommandozeile angeben, um eines der Skripts ausführen zu können.

Um zum Beispiel alle GPOs in einer Domäne zu sichern, muss der Administrator in das Verzeichnis mit den Skripts gehen und dort – auf der Kommandozeile – den folgenden Befehl eingeben:

cscript backupallgpos.wsf <BackupLocation> [/Comment:<Comment>] [/Domain:<DNSDomain>]

Damit wird das Skript alle GPOs in der Domäne an den Ort sichern, der als BackupLocation angegeben wurde. Dabei legt das Skript für jedes GPO ein Unterverzeichnis an und benennt es mit dem 128 Bit großen GUID, der die GPO eindeutig identifiziert.

Sind alle GPOs gesichert, lassen sich einzelne GPOs mit Hilfe von RestoreGPO.wsf wiederherstellen:

cscript restoreGPO.wsf <backup location> <GPO name> /domain:<DNSDomain>

Die Skripts sichern und stellen sowohl die GPOs im Active Directory (AD) und die Gruppenrichtlinien-Vorlagen in SYSVOL wieder her. Doch sie Sichern – bzw. Restaurieren – nicht die Verlinkungen zwischen den GPOs und den Organisationseinheiten (OU, Organizational Units), an die sie zugewiesen wurden.

Diese Verlinkungen muss der Administrator separat behandeln. Dazu kann er das Skript ListSOMPolicyTree.wsf verwenden. Dieses Programm führt die Beziehungen zwischen den GPOs und den Standorten, Domänen und OUs auf, an die sie verknüpft sein können.

Bild 2. Beispiel für eine Ausgabe des Skripts, das Ntdsutil mit der Snapshot-Funktion verwendet.

Das Überwachen des File Replication Service

Ein Bereich, der zu den Gruppenrichtlinien gehört, ist die Verzeichnisstruktur SYSVOL. Sie liegt auf jedem Domänencontroller (DC) vor und enthält die Gruppenrichtlinien-Vorlagen und Anmeldeskripts für die Domäne. Ein eigener Replikationsmechanismus  sorgt dafür, dass die SYSVOL-Struktur unter allen DCs in einer Domäne synchronisiert bleibt.

Unter Windows Server 2003 gibt es dazu den File Replication Service (FRS). Beim Windows Server 2008 und dem R2 kommt die Distributed File System Replication (DFSR) zum Einsatz. Letztere stellt eine enorme Verbesserung  gegenüber dem FRS dar – der mit einigen Schwierigkeiten zu kämpfen hatte. Da aber DFSR nur auf den neueren Server-Versionen verfügbar ist und da zudem ein händischer Upgrade-Prozess von FRS zu DFSR nötig ist, agieren die meisten Domänen in den Produktivumgebungen immer noch auf dem FRS.

Deswegen sollte der Administrator den FRS immer im Blick behalten. Zum einen ist ein funktionierendes SYSVOL kritisch, um die Domäne in einem sauberen Zustand am Laufen zu halten. Allerdings prüfen nur die wenigsten AD-Administratoren den FRS proaktiv oder überwachen ihn permanent. Der Grund dafür ist auch schnell gefunden:

Nachrichten des FRS treten nicht sehr häufig im Ereignisprotokoll auf. Zudem gelten sie nicht als besonders informativ – und des Weiteren dauert es immer eine Zeitlang, bis die FRS-Probleme sich richtig auswirken und ersichtlich werden. Zum anderen muss der Administrator sicherstellen, dass der FRS sauber funktioniert, ehe er einen Upgrade zur DFSR-Replikation macht. Ist das nicht der Fall, kann er sein SYSVOL zerschießen.

Für diese Aufgabe stellt Microsoft das Werkzeug Ultrasound zur Verfügung. Es lässt sich kostenlos als Download  beziehen. Das ist für ein Tool des Software-Giganten ein unüblicher Name – kam aber zum Einsatz, weil das Vorgänger-Tool als Sonar bezeichnet wurde (bitte nicht weiter fragen, woher dieser Name stammt).

Ultrasound besteht aus drei Basiskomponenten. Ein ist ein WMI-Provider (Windows Management Instrumentation), der auf jedem DC installiert wird. Dieses Modul ermittelt Statusinformationen zum FRS und sendet sie an die nächste Komponente: den Ultrasound-Controller. Diese ihrerseits besteht aus einem Service (dem eigentlichen Controller) und einer Datenbank, in der die Statusdaten des FRS liegen, die der Controller von den überwachten Systemen herunter zieht. Bei dieser Datenbank kann es sich entweder um die Microsoft SQL Server Desktop Engine (MSDE), oder um den SQL Server handeln.Die Datenbank muss dabei nicht auf demselben System wie der Controller liegen.

Die dritte Komponente ist die Administrations-Konsole von Ultrasound, die allerdings auf demselben System installiert sein muss wie die Controller-Komponente. Mit diesem Modul lassen sich DCs für die Überwachung des FRS hinzunehmen oder entfernen. Zudem zeigt sie den generellen Zustand – sprich die Vitalität – des gesamten FRS-Konstrukts an.

Mit diesem Tool kann der Administrator sich sehr detaillierte Informationen heraussuchen. Da die Administrations-Konsole doch recht eingeschränkt ist, was ihren Einsatzort angeht, braucht sie ein Administrator nicht die ganze Zeit über geöffnet halten. Es empfiehlt sich eher eine Arbeitsweise, bei der nach der Installation das Tool eingesetzt wird, um bestehende Replikations-Probleme bei SYSVOL zu beheben. Danach kann man sich das Tool zum Beispiel einmal in der Woche vornehmen und sich dann den Zustand des FRs anzeigen lassen.

Kombination aus Skripting und Ntdsutil

Die meisten Administratoren verwenden Ntdsutil für viele Aufgaben, die in der Praxis zu  meistern sind. Dazu gehört zum Beispiel das Aufräumen bei den Metadaten, wenn es zu ungeplanten DC-Fehlern gekommen ist. Doch die wenigsten wissen, dass man einfache Skripts erstellen kann, in denen Ntdsutil-Aktionen über den Zeitplandienst oder interaktiv ausgeführt werden können.

Dazu muss der Systembetreuer nur die einzelnen Ntdsutil-Befehle nacheinander auf einer Zeile aufführen. Benötigt ein Kommando mehrere Argumenten, müssen diese in Anführungszeichen eingeklammert werden.

Ein gutes Beispiel dazu ist das AD-Snapshot-Funktionalität, die es beim Windows Server 2008 gibt. Damit kann man den Volume Shadow Copy Service (VSS) verwenden, um einen Schnappschuss der Domänendaten zu bekommen. Erzeugen lässt sich dieser Snapshot mit dem Snapshot-Kommando von Ntdsutil. Liegen diese Informationen dann vor, kann der Administrator recht schnell ein Objekt mit allen Attributen (auch mit den schwierig zu restaurierenden „Backlinks“, wie sie etwa bei „Mitglied von“ gegeben sind) wiederherstellen. Dazu benötigt er eine Kombination aus der Tombstone-Reanimation und Powershell-Skripts.

Damit die Snapshot-Funktion einen Nutzen bringt, bedarf es aber regelmäßiger Schnappschüsse. Hier setzt das Skripting mit Ntdsutil an. Der folgende Skript-Einzeiler bringt die dazu nötige Funktionalität:

ntdsutil snapshot "activate instance ntds" create quit quit

Im Bild 2 wird eine Ausgabe gezeigt, die von diesem Skript geliefert wurde. Dieses Skript sollte an den Zeitplandienst in einer Stapelverarbeitungsdatei übergeben werden. Auf ähnliche Weise kann man ein Skript erstellen, um alle verfügbaren Snapshots anzuzeigen. Das erweist sich als nützlich, wenn der Systembetreuer ein Objekt möglichst schnell wiederherstellen soll.

ntdsutil snapshot "act inst ntds "list all" quit quit

Damit besitzt der Administrator die Möglichkeit, durch die Auflistung der Snapshots zu gehen und dort zu bestimmen, welchen Snapshot er mit dem Datenbank-Mounting-Tool (dsamain.exe) einhängen möchte.

Sean Deuby/rhh

Lesen Sie auch