Freigeben über


Container und Blätter

Active Directory Domain Services eine Hierarchie von Objekten enthalten, in der jedes Objekt instance, außer dem Stamm der Verzeichnishierarchie, in einem anderen Objekt enthalten ist. Die Struktur dieser Hierarchie ist flexibler als ein Dateisystem aus Verzeichnissen und Dateien. Stattdessen bestimmen Regeln im Active Directory-Schema, welche Objektklassen Instanzen von welchen anderen Objektklassen enthalten können. Die Standardschemadefinition der User-Objektklasse enthält beispielsweise die Objektklassen Organizational-Unit und Container als mögliche Übergeordnete. d. h. mögliche übergeordnete Objekte oder Container eines User-Objekts instance. Dies bedeutet, dass ein Organizational-Unit-Objekt ein User-Objekt enthalten kann, ein User-Objekt jedoch kein anderes User-Objekt enthalten kann, es sei denn, die Schemadefinition der User-Klasse wird geändert.

Mit Ausnahme von Schemaobjekten, d. h. den classSchema- oder attributeSchema-Objekten, die die Klassen und Attribute definieren, die in einer Servergesamtstruktur vorhanden sein können, kann jedes Objekt in Active Directory Domain Services ein Container sein. Insbesondere ist jede Objektklasse, die im possSuperiors - oder systemPossSuperiors-Attribut einer Objektklassendefinition angezeigt wird, potenziell ein Container. Weitere Informationen zu Containern einer vordefinierten Objektklasse finden Sie unter Active Directory Domain Services Referenz. Sie können programmgesteuert an das abstrakte Schema binden und die Methoden IADsClass::get_Containment oder IADsClass::get_PossibleSuperiors verwenden, um die Klassen abzurufen, die eine bestimmte Klasse enthalten oder enthalten kann. Weitere Informationen finden Sie unter Lesen des abstrakten Schemas. Sie können auch das possibleInferiors-Attribut eines beliebigen Objekts instance lesen, um die Objektklassen zu bestimmen, die das Objekt enthalten kann. Beachten Sie, dass possibleInferiors ein konstruiertes Attribut ist, was bedeutet, dass es aus den possSuperiors/systemPossSuperiors-Werten der anderen Klassendefinitionen berechnet wird und nicht tatsächlich im Verzeichnis gespeichert wird.

Beachten Sie, dass das Active Directory-Schema eine Containerklasse definiert. Wie bereits erwähnt, muss ein Objekt kein instance der Containerklasse sein, um ein Container zu sein. Es gibt auch eine Leaf-Klasse , und obwohl Unterklassen dieser Klasse in der Regel keine Container sind, gibt es keinen Grund, warum sie nicht sein können.

Schließlich können Sie ein Flag für den Anzeigespezifizierer festlegen, der einer Objektklasse zugeordnet ist, um anzugeben, dass Benutzeroberflächen Immer Instanzen der -Klasse als Blätter und nicht als Container anzeigen sollten. Dadurch wird verhindert, dass die Benutzeroberfläche durch zu viele Container überladen wird. Weitere Informationen finden Sie unter Anzeigen von Containern als Blattknoten.