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:
Active Directory: Schema-Versionen vergleichen (2,0 KiB, 3.165-mal heruntergeladen, letzte Änderung am 21. Oktober 2007)
Update 7. 12. 2011: Wie ich gerade erfahre, gibt es im Lieferumfang aktueller Windows-Server ein Werkzeug, das sehr ähnlich vorgeht. Hier ein Blog-Artikel dazu vom AD-Team bei Microsoft:
[Determine Applied Schema Extensions with AD DS/LDS Schema Analyzer – Ask the Directory Services Team – Site Home – TechNet Blogs]
http://blogs.technet.com/b/askds/archive/2009/01/20/determine-applied-schema-extensions-with-ad-ds-lds-schema-analyzer.aspx
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:
AD-Schema-Export als Grundlage für Schema-Vergleiche (137,8 KiB, 4.322-mal heruntergeladen, letzte Änderung am 17. Juli 2008)
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.
http://faq-o-matic.net/?p=695