Schemaimplementierung
In Active Directory Domain Services werden Klassen- und Attributdefinitionen im Verzeichnis als Instanzen der Klassen classSchema bzw. attributeSchema gespeichert. classSchema und attributeSchema sind klassen, die im Schema definiert sind. Verwenden Sie zum Bearbeiten des Active Directory-Schemas dieselben LDAP-Vorgänge, die zum Bearbeiten eines anderen Objekts verwendet werden. Da das Schema ein wichtiger Teil des Verzeichnisses ist, der sich auf die gesamte Gesamtstruktur auswirkt, gelten für Schemaerweiterungen besondere Einschränkungen. Weitere Informationen zu Einschränkungen finden Sie unter Einschränkungen für Schemaerweiterungen.
So fassen Sie die Schemaimplementierung zusammen:
Instanzen der classSchema-Klasse definieren jede Objektklasse, die von Active Directory Domain Services unterstützt wird. Die Attribute eines classSchema-Objekts , z. B. die Attribute mayContain und mustContain , beschreiben eine Objektklasse auf die gleiche Weise, wie die Attribute eines Benutzerobjekts, z. B. die Attribute userPrincipalName und telephoneNumber , diesen Benutzer beschreiben. Weitere Informationen finden Sie unter Merkmale von Objektklassen.
Instanzen der attributeSchema-Klasse werden verwendet, um jedes Attribut zu definieren, das von Active Directory Domain Services unterstützt wird. Die Attribute eines attributSchema-Objekts , z. B. seine Attribute attributeSyntax und isSingleValued , beschreiben ein Attribut auf die gleiche Weise, wie die Attribute eines Benutzerobjekts diesen Benutzer beschreiben. Weitere Informationen finden Sie unter Merkmale von Attributen.
Instanzen der Klassen attributeSchema und classSchema werden an einem bekannten Ort im Verzeichnis gespeichert, dem Schemacontainer. Der Schemacontainer weist immer einen distinguished Name des Formulars auf:
CN=Schema,CN=Configuration,<DC=forestroot>
Dabei ist "<DC=forestroot>" der distinguished Name des Stamms der Gesamtstruktur, z. B. "DC=Fabrikam,DC=Com".
Lesen Sie das schemaNamingContext-Attribut von rootDSE, um den distinguished Name des Schemacontainers abzurufen. Weitere Informationen zu rootDSE und seinen Attributen finden Sie unter Serverlose Bindung und RootDSE.
Wenn Sie über das Schema nachdenken, denken Sie daran:
- Schemaänderungen sind global. Es gibt ein einzelnes Schema für eine gesamte Gesamtstruktur. Das Schema wird global repliziert: Eine Kopie des Schemas ist auf jedem Domänencontroller in der Gesamtstruktur vorhanden. Wenn Sie das Schema erweitern, tun Sie dies für die gesamte Gesamtstruktur.
- Schemazusätze sind nicht umkehrbar. Wenn dem Schema eine neue Klasse oder ein neues Attribut hinzugefügt wird, kann es nicht entfernt werden. Ein vorhandenes Attribut oder eine vorhandene Klasse kann deaktiviert, aber nicht entfernt werden. Weitere Informationen finden Sie unter Deaktivieren vorhandener Klassen und Attribute.
- Das Deaktivieren einer Klasse oder eines Attributs wirkt sich nicht auf vorhandene Instanzen der Klasse oder des Attributs aus, verhindert jedoch, dass neue Instanzen erstellt werden. Sie können ein Attribut nicht deaktivieren, wenn es in einer Klasse enthalten ist, die nicht deaktiviert ist.