Richtlinien für die Bindung an das Schema
Es gibt zwei Möglichkeiten, an das Active Directory-Schema zu binden:
- Binden Sie direkt an den Schemacontainer oder an ein classSchema- oder attributSchema-Objekt im Schemacontainer. Die classSchema- oder attributSchema-Objekte enthalten vollständige, formale Definitionen jeder Klasse und jedes Attributs, die in einer Active Directory-Domäne Gesamtstruktur vorhanden sein können. Weitere Informationen finden Sie unter Lesen von attributeSchema- und classSchema-Objekten.
- Binden Sie an das abstrakte Schema oder an einen Klassen- oder Attributeintrag im abstrakten Schema. Das abstrakte Schema enthält nur eine Teilmenge der Daten zu jeder Klasse und jedem Attribut, aber die Daten sind in einem Format, das einfach abzurufen und zu verwenden ist. Weitere Informationen finden Sie unter Das abstrakte Schema und Lesen des abstrakten Schemas.
Um das Schema zu ändern oder zu erweitern, binden Sie direkt an den Schemacontainer. Um die Klassen- und Attributdefinitionen zu lesen, ist es in der Regel einfacher, aus dem abstrakten Schema zu lesen.
Aus den folgenden Gründen ist es einfacher, aus dem abstrakten Schema zu lesen:
- ADSI bietet spezielle Bindungstechniken und eine Reihe von Schnittstellen zum Lesen des abstrakten Schemas.
- Die ADSI-Schnittstellen, die mit dem abstrakten Schema arbeiten, geben Daten in einem Format zurück, das für die Verwendung in anderen ADSI-Schnittstellen geeignet ist. Beispielsweise verwenden IADsClass und IADsProperty in der Regel lDAPDisplayName-Zeichenfolgen , um Attribut- und Klassennamen zu melden, obwohl diese Daten in Form von Objektbezeichnern (OIDs) im Verzeichnis gespeichert werden. Das lDAPDisplayName-Format ist praktisch, da es von anderen ADSI-Schnittstellen verwendet wird, um auf Klassen und Attribute in Suchfiltern und anderswo zu verweisen.
- Der abstrakte Schemaeintrag für eine Objektklasse enthält Daten, die aus mehreren classSchema-Objekten gesammelt wurden. Beispielsweise sind die möglichen Übergeordneten, obligatorischen Attribute und optionalen Attribute für eine Objektklasse die Vereinigung dieser Attribute aus den Superklassen und Hilfsklassen der Klasse. Wenn Sie aus dem tatsächlichen Schemacontainer lesen, müssen Sie Daten aus den verschiedenen classSchema-Objekten sammeln, von denen die Klasse abgeleitet wurde. Wenn Sie aus dem abstrakten Schema lesen, sind die Daten an einer stelle.
Sie sollten direkt an den Schemacontainer binden, anstatt in den folgenden Fällen das abstrakte Schema zu verwenden:
- So rufen Sie bestimmte Attribute ab, die im abstrakten Schema nicht verfügbar gemacht werden. Beispielsweise werden oMSyntax, attributeSchema, defaultSecurityDescriptor und andere Attribute im abstrakten Schema nicht verfügbar gemacht.
- Abfragen nach attributeSchema - und classSchema-Objekten . Um nach Klassen oder Attributen zu suchen, die einem angegebenen Filter entsprechen, binden Sie an den Schemacontainer, und führen Sie eine einstufige Suche aus.
- Um Attribute oder Klassen hinzuzufügen oder zu ändern. Das abstrakte Schema ist schreibgeschützt. Sie können es nicht verwenden, um das Schema zu ändern oder zu erweitern. Beachten Sie, dass Änderungen am Domänencontroller vorgenommen werden müssen, der das Schema master ist. Weitere Informationen finden Sie unter Voraussetzungen für die Installation einer Schemaerweiterung.