Contenedores y hojas
Servicios de dominio de Active Directory contienen una jerarquía de objetos en los que cada instancia de objeto, excepto la raíz de la jerarquía de directorios, está contenida en algún otro objeto. La estructura de esta jerarquía es más flexible que un sistema de archivos de directorios y archivos. En su lugar, las reglas, en el esquema de Active Directory, determinan qué clases de objeto pueden contener instancias de qué otras clases de objeto. Por ejemplo, la definición de esquema predeterminada de la clase de objeto User incluye las clases de objeto Unidad organizativa y Contenedor lo más posible; es decir, posibles objetos primarios o contenedores de una instancia de objeto User . Esto significa que un objeto Unidad organizativa puede contener un objeto User , pero un objeto User no puede contener otro objeto User , a menos que se cambie la definición de esquema de la clase User .
Excepto para los objetos de esquema, es decir, los objetos classSchema o attributeSchema que definen las clases y atributos que pueden existir en un bosque de servidor, cualquier objeto de Servicios de dominio de Active Directory puede ser un contenedor. En concreto, cualquier clase de objeto que aparezca en el atributo possSuperiors o systemPossSuperiors de una definición de clase de objeto es potencialmente un contenedor. Para obtener más información sobre los contenedores de una clase de objeto predefinida, vea Servicios de dominio de Active Directory Referencia. Puede enlazar mediante programación al esquema abstracto y usar los métodos IADsClass::get_Containment o IADsClass::get_PossibleSuperiors para obtener las clases que una clase determinada puede contener o incluir. Para obtener más información, vea Lectura del esquema abstracto. También puede leer el atributo possibleInferiors de cualquier instancia de objeto para determinar las clases de objeto que el objeto puede contener. Tenga en cuenta que possibleInferiors es un atributo construido, lo que significa que se calcula a partir de los valores possSuperiorssystemPossSuperiors/ de las otras definiciones de clase y no se almacena realmente en el directorio.
Tenga en cuenta que el esquema de Active Directory define una clase Container . Como se ha explicado anteriormente, no es necesario que un objeto sea una instancia de la clase Container para que sea un contenedor. También hay una clase Leaf y, aunque las subclases de esta clase normalmente no son contenedores, no hay ninguna razón por la que no pueden ser.
Por último, puede establecer una marca en el especificador de visualización asociado a una clase de objeto para indicar que las interfaces de usuario siempre deben mostrar instancias de la clase como hojas en lugar de contenedores. Esto ayuda a evitar que la interfaz de usuario esté desordenada por demasiados contenedores. Para obtener más información, consulte Visualización de contenedores como nodos hoja.