Conteneurs et feuilles
services de domaine Active Directory contiennent une hiérarchie d’objets dans laquelle chaque objet instance, à l’exception de la racine de la hiérarchie de répertoires, est contenu par un autre objet. La structure de cette hiérarchie est plus flexible qu’un système de fichiers de répertoires et de fichiers. Au lieu de cela, les règles, dans le schéma Active Directory, déterminent quelles classes d’objets peuvent contenir des instances d’autres classes d’objets. Par exemple, la définition de schéma par défaut de la classe d’objet User inclut les classes d’objet Organizational-Unit et Container en tant que supérieurs possibles ; c’est-à-dire les objets-parents ou conteneurs possibles d’un objet User instance. Cela signifie qu’un objet Unité d’organisation peut contenir un objet User , mais qu’un objet User ne peut pas contenir un autre objet User , sauf si la définition de schéma de la classe User est modifiée.
À l’exception des objets de schéma, c’est-à-dire les objets classSchema ou attributeSchema qui définissent les classes et les attributs qui peuvent exister dans une forêt de serveurs, tout objet dans services de domaine Active Directory peut être un conteneur. Plus précisément, toute classe d’objet qui apparaît dans l’attribut possSuperiors ou systemPossSuperiors d’une définition de classe d’objet est potentiellement un conteneur. Pour plus d’informations sur les conteneurs d’une classe d’objet prédéfinie, consultez services de domaine Active Directory Reference. Vous pouvez établir une liaison par programme au schéma abstrait et utiliser les méthodes IADsClass::get_Containment ou IADsClass::get_PossibleSuperiors pour obtenir les classes qu’une classe donnée peut contenir ou contenir. Pour plus d’informations, consultez Lecture du schéma abstrait. Vous pouvez également lire l’attribut possibleInferiors de n’importe quel objet instance pour déterminer les classes d’objets que l’objet peut contenir. Notez que possibleInferiors est un attribut construit, ce qui signifie qu’il est calculé à partir des valeurs système PossSuperiors/ des autres définitions de classe et qu’il n’est pas réellement stocké dans le répertoire.
N’oubliez pas que le schéma Active Directory définit une classe Container . Comme indiqué précédemment, un objet n’est pas obligatoirement un instance de la classe Container comme conteneur. Il existe également une classe Leaf , et bien que les sous-classes de cette classe ne soient généralement pas des conteneurs, il n’y a aucune raison pour qu’elles ne puissent pas l’être.
Enfin, vous pouvez définir un indicateur sur le spécificateur d’affichage associé à une classe d’objet pour indiquer que les interfaces utilisateur doivent toujours afficher les instances de la classe sous forme de feuilles plutôt que de conteneurs. Cela permet d’éviter que l’interface utilisateur ne soit encombrée par un trop grand nombre de conteneurs. Pour plus d’informations, consultez Affichage des conteneurs en tant que nœuds feuilles.