Contenitori e foglie
Dominio di Active Directory Services contiene una gerarchia di oggetti in cui ogni istanza dell'oggetto, ad eccezione della radice della gerarchia di directory, è contenuta da un altro oggetto. La struttura di questa gerarchia è più flessibile rispetto a un file system di directory e file. Al contrario, le regole, nello schema di Active Directory, determinano quali classi oggetto possono contenere istanze di quali altre classi oggetto. Ad esempio, la definizione dello schema predefinita della classe oggetto User include le classi di oggetti Organizational-Unit e Container il più possibile superiori, ovvero possibili oggetti padre o contenitori di un'istanza dell'oggetto User. Ciò significa che un oggetto Organizational-Unit può contenere un oggetto User, ma un oggetto User non può contenere un altro oggetto User, a meno che non venga modificata la definizione dello schema della classe User.
Ad eccezione degli oggetti schema, ovvero gli oggetti classSchema o attributeSchema che definiscono le classi e gli attributi che possono esistere in una foresta server, qualsiasi oggetto in Dominio di Active Directory Services può essere un contenitore. In particolare, qualsiasi classe oggetto visualizzata nell'attributo possSuperiors o systemPossSuperiors di una definizione di classe oggetto è potenzialmente un contenitore. Per altre informazioni sui contenitori di una classe di oggetti predefinita, vedere informazioni di riferimento sui servizi di Dominio di Active Directory. È possibile eseguire l'associazione a livello di codice allo schema astratto e usare i metodi IADsClass::get_Containment o IADsClass::get_PossibleSuperiors per ottenere le classi che una determinata classe può contenere o essere contenute da . Per altre informazioni, vedere Lettura dello schema astratto. È anche possibile leggere l'attributo possibleInferiors di qualsiasi istanza dell'oggetto per determinare le classi oggetto che l'oggetto può contenere. Tenere presente che possibileInferiors è un attributo costruito, ovvero viene calcolato dai valori possSuperiors systemPossSuperiors/ delle altre definizioni di classe e non viene effettivamente archiviato nella directory.
Tenere presente che lo schema di Active Directory definisce una classe Container. Come illustrato in precedenza, non è necessario che un oggetto sia un'istanza della classe Container come contenitore. Esiste anche una classe Leaf e anche se le sottoclassi di questa classe non sono in genere contenitori, non c'è motivo per cui non possono essere.
Infine, è possibile impostare un flag nell'identificatore di visualizzazione associato a una classe oggetto per indicare che le interfacce utente devono sempre visualizzare le istanze della classe come foglie anziché come contenitori. Ciò consente di evitare che l'interfaccia utente venga ingombrata da troppi contenitori. Per altre informazioni, vedere Visualizzazione di contenitori come nodi foglia.