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. Um das Active Directory-Schema zu bearbeiten, verwenden Sie dieselben LDAP-Vorgänge, die zum Bearbeiten anderer Objekte verwendet werden. Da das Schema ein wichtiger Teil des Verzeichnisses ist, der die gesamte Gesamtstruktur betrifft, gelten besondere Einschränkungen für Schemaerweiterungen. 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. 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. dessen UserPrincipalName- und telephoneNumber-Attribute, diesen Benutzer. 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. Die Attribute eines attributeSchema-Objekts, z. B. seine attributeSyntax- und isSingleValued-Attribute, 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 hat immer einen Distinguished Name der Form:

    CN=Schema,CN=Configuration,<DC=forestroot>
    

    Wobei " DC=forestroot " der Distinguished Name des Stamms der Gesamtstruktur ist, z. B. < > "DC=Fabrikam,DC=Com".

    Um den Distinguished Name des Schemacontainers zu erhalten, lesen Sie das schemaNamingContext-Attribut von rootDSE. Weitere Informationen zu rootDSE und seinen Attributen finden Sie unter Serverlose Bindung und RootDSE.

Denken Sie beim Überlegen des Schemas an:

  • Schemaänderungen sind global. Es gibt ein einzelnes Schema für eine gesamte Gesamtstruktur. Das Schema wird global repliziert: Auf jedem Domänencontroller in der Gesamtstruktur ist eine Kopie des Schemas vorhanden. Wenn Sie das Schema erweitern, tun Sie dies für die gesamte Gesamtstruktur.
  • Schemaerweiterungen sind nicht umkehrbar. Wenn dem Schema eine neue Klasse oder ein neues Attribut hinzugefügt wird, kann sie 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.