Schemaerweiterungen von Exchange

Exchange 2000/2003 ist eine der ersten Anwendungen, die richtig das mit Windows 2000 bereit gestellt Active Directory nutzen. Dazu gehört auch, dass Exchange das Schema erweitert.

Eine Schemaerweiterung bedeutet eigentlich nur, dass die Definition der Datenbank angepasst wird. Die Datenbank besteht aus Klassen und Attributen.

Attribute sind quasi die Felder und deren Deklaration (Type, Wertebereiche) während eine Klasse ein späteres Objekt beschreibt und dabei auf Attribute verweist. So gibt es Pflichtattribute als auch optionale Attribute.

Schema anzeigen und bearbeiten

Um das Schema zu lesen und zu bearbeiten ist LDAP das Mittel der Wahl. Allerdings kann man auch mit der MMC sehr einfach grafisch am Schema Änderungen vornehmen.

Sie benötigen aber die entsprechenden Rechte zum Lesen und ändern und selbst dann sollten Sie genau wissen was sie vorhaben. Eine Schemaerweiterung ist nicht wieder Rückgängig zu machen !!

Nach der Registrierung der DLL mittels "REGSVR32 SCHMMGMT.DLL" kann man in der MMC auch die "Active Directory Schema Extension" laden. Das ganze sieht dann etwa so aus:

Ich habe gleich die Klasse "User" angewählt. So können Sie direkt in der rechten Spalte erkennen, dass die Felder "sAMAccountName" und "objectSid" verbindliche Felder sind. Dies ist nur ein Ausschnitt des Schemas.

Schema erweitern und Versionsnummer

Sowohl Exchange 2000/2003, als auch der Active Directory Connector und der MIS-Server erweitern das Schema. Ob ein Programm das Schema verändert ist oft daran zu erkennen, dass es LDF-Dateien in der Installationsquelle gibt. Diese werden dann mit LDIFDE importiert. Exchange importiert gleich 10 LDF-Dateien nacheinander

Nun gibt es beim Schema ja keine "Versionsnummer", da Änderungen überall geschehen können. Trotzdem "merkt" sich Exchange an einigen Stellen, welche Version seiner eigenen Erweiterungen schon eingespielt sind. Dies ist notwendig, damit das Setup nicht erneut seine Erweiterungen einspielt und damit eine hohe Replikationslast verursacht. Mit Windows 2000 wird bei einer SchemaÄnderung der Globale Katalog neu aufgebaut.

Exchange realisiert das speichern dieser "Versionsnummer" sehr trickreich. Es definiert sich dafür ein eigenes Attribut, welches nicht genutzt wird. Aber in der Definition des Attributs wird ein Maximalwert hinterlegt und dieser ist zugleich die "Version" der aktuellen Exchange Erweiterungen. Durch diesen kleinen Trick nutzt Microsoft die Schemapartition indirekt zur Speicherung von Informationen.

Die Abfrage können Sie auch über die Kommandozeile mit dsquery durchführen.

dsquery * CN=ms-Exch-Schema-Version-Pt,cn=schema,cn=configuration,dc=yourdomain,dc=local -scope base -attr rangeUpper

Eine Übersicht der verschiedenen Schemaversionen finden Sie auf Exchange und Outlook Build Nummern

In dem obigen Beispiel ist zu sehen, dass die Version 6870 ist und damit die Exchange 2003 Erweiterungen schon installiert sind. Interessant ist auch, dass Exchange hier noch mit "Pt" geführt wird. Ein Tribut an den früheren Codenamen "Platinum". Auch der Mobile Information Server ist schon recht früh definiert worden.

Weitere Links