von postNils Kaczenski post21. Oktober 2007, 15:53 Uhr post http://faq-o-matic.net/?p=695
post Kategorie: AD-Schema, Active Directory, Downloads, Scripting

In dem kürzlich hier erschienenen Artikel "Schema-Erweiterungen auffinden" habe ich einen manuellen Weg beschrieben, mit dem sich Erweiterungen im Schema des Active Directory über einen Vergleich von zwei CSV-Exportdateien ausfindig machen lassen. Mit dem Skript "CompareSchemaCSV.vbs" lässt sich dies nun automatisieren. Das Skript gibt es hier zum Download:

Download: Active Directory: Schema-Versionen vergleichen  Active Directory: Schema-Versionen vergleichen (2.0 KiB, 800 hits)

 

Vorbereitung

Genau wie bei der manuellen Methode müssen auch hier zwei CSV-Exportdateien des AD-Schema vorhanden sein. Die erste Datei stellt die Vergleichsgrundlage dar ("Baseline") und enthält in der Regel das Schema in einer Version, die bekannt ist (z.B. Windows Server 2003 R2 mit Exchange Server 2003). Die zweite Datei enthält einen aktuellen Export der zu untersuchenden Schema-Version. Ein Kommando, mit dem sich diese Exportdatei erzeugen lässt, ist das Folgende:

csvde -f "C:\data\schema-baseline.txt"
-d "CN=Schema,CN=Configuration,DC=faq-o-matic,DC=net"
-r "(|(objectClass=attributeSchema)(objectClass=classSchema))"
-l "name,whenCreated,whenChanged,description,mayContain,mustContain,
objectClass,objectCategory,attributeID,governsID,subClassOf,
isSingleValued,lDAPDisplayName"

Dieses Kommando muss in einer einzigen zusammenhängenden Zeile auf einem Windows-Server in einem CMD-Fenster ausgeführt werden. Der Dateipfad und der Domänenname (beide hier kursiv) müssen natürlich angepasst werden. Eine passende Baseline-Datei (für Windows Server 2003 R2, R2 mit Exchange 2003 sowie für Windows Server 2008) kann man bei uns auch herunterladen:

Download: AD-Schema-Export als Grundlage für Schema-Vergleiche  AD-Schema-Export als Grundlage für Schema-Vergleiche (137.8 KiB, 1,178 hits)

Nun müssen die Speicherpfade beider Dateien in den Skriptcode eingetragen werden. Dazu öffnet man die Datei in einem Editor und passt die Zeilen 27 und 30 entsprechend an.

Ausführung

Das Skript wird in einem CMD-Fenster ausgeführt. Da es natürlich viel Text ausgibt, muss es mit "cscript.exe" ausgeführt werden, ähnlich dem folgenden Kommando:

cscript C:\Pfad\CompareSchemaCSV.exe

Achtung: Das Skript nicht per Doppelklick oder ohne cscript ausführen, sonst gehen sehr viele Dialogboxen auf.

Nun vergleicht das Skript beide Exportdateien und gibt alle Zeilen auf der Kommandozeile aus, die in der zweiten Datei enthalten sind, aber in der ersten Datei fehlen. Als letztes wird die Zahl der gefundenen Unterschiede angezeigt.

Verwandte Beiträge:

  1. Schema-Erweiterungen auffinden
    Wer eine fremde Active-Directory-Umgebung übernimmt oder bearbeitet, steht vor der Frage, in welchem Zustand sich diese befindet. Neben der Konfiguration...
  2. TechNet-Webcast zum AD-Schema
    Am 28. April 2006 habe ich für Microsoft TechNet einen einstündigen Webcast über die Arbeit mit dem Schema des Active Directory gehalten....
  3. Wie kann ich verschiedene Windows-Versionen unterscheiden?
    Um verschiedene Windows-Versionen beispielsweise innerhalb eines Loginscripts unterscheiden zu können, kann man sich des Befehls "ver" bedienen. Da es sich...
  4. Was muss ich bei der Schema-Erweiterung beachten?
    Vieles! Das Ändern des AD-Schemas ist ein schwerwiegender Eingriff, der gut geplant und professionell durchgeführt sein muss. Man kann sich...
  5. Carmen: Mit SQL das AD abfragen
    Mit Carmen kann man Daten aus dem AD mit SQL-Kommandos abfragen. Dazu stellt Carmen eine grafische Oberfläche bereit, in die...