Crear y eliminar objetos en Servicios de dominio de Active Directory

El procedimiento utilizado para crear y eliminar objetos mediante programación en Servicios de dominio de Active Directory depende de la tecnología de programación utilizada. Para obtener más información sobre cómo crear y eliminar objetos en Servicios de dominio de Active Directory con una tecnología de programación específica, vea los temas enumerados en la tabla siguiente.

Tecnología de programación Para obtener más información
Interfaces de servicio de Active Directory Crear y eliminar objetos
Protocolo ligero de acceso a directorio Modificar una entrada de directorio
System.DirectoryServices Crear, eliminar, cambiar el nombre y mover objetos

 

Creación de un objeto

En general, los únicos atributos necesarios para crear un objeto son los atributos cn y objectClass . La creación de un objeto no hace necesariamente que sea un objeto funcional. Ciertos tipos de objetos, como usuarios y grupos, tienen atributos necesarios adicionales para que sean funcionales. Para obtener más información sobre cómo crear tipos específicos de objetos, vea Crear un usuario y crear grupos en un dominio.

Windows Server 2003: Cuando se crea un objeto de la clase de usuario, grupo o equipo en un controlador de dominio que se ejecuta en WWindows Server 2003 o posterior, el controlador de dominio establece automáticamente el atributo sAMAccountName para el objeto en una cadena única, si no se especifica uno.

Eliminar un objeto

El servidor de Active Directory realiza las siguientes acciones cuando se elimina un objeto:

  • El atributo isDeleted del objeto eliminado se establece en TRUE. Los objetos con un valor de atributo isDeleted establecido en TRUE se denominan objetos de exclusión.

  • El objeto eliminado se mueve al contenedor Objetos eliminados para su contexto de nomenclatura. Si la propiedad systemFlags de objeto contiene la marca 0x02000000, el objeto no se mueve al contenedor Objetos eliminados. Para obtener más información sobre cómo enlazar y enumerar el contenido del contenedor Objetos eliminados, vea Recuperación de objetos eliminados.

  • El contenedor Objetos eliminados es plano, por lo que todos los objetos residen en el mismo nivel dentro del contenedor Objetos eliminados. Por lo tanto, se cambia el nombre distintivo relativo del objeto eliminado para asegurarse de que el nombre es único en el contenedor Objetos eliminados. Si el nombre original tiene más de 75 caracteres, se trunca a 75 caracteres. A continuación, se anexan los siguientes valores al nuevo nombre:

    1. Carácter de 0x0A
    2. La cadena "DEL:"
    3. Forma de cadena de un GUID único, como "947e3228-70c9-4311-8b7a-e5c9b5bd4432"

    Un ejemplo de un nombre de objeto eliminado es:

    Jeff Smith\0ADEL:947e3228-70c9-4311-8b7a-e5c9b5bd4432
    
  • Se quitan la mayoría de los valores de atributo del objeto eliminado. Los atributos siguientes se conservan automáticamente:

    • attributeID
    • attributeSyntax
    • distinguishedName
    • dNReferenceUpdate
    • flatName
    • governsID
    • groupType
    • instanceType
    • lDAPDisplayName
    • legacyExchangeDN
    • mS-DS-CreatorSID
    • mSMQOwnerID
    • name
    • nCName
    • Objectclass
    • objectGUID
    • objectSid
    • oMSyntax
    • proxiedObjectName
    • replPropertyMetaData
    • Samaccountname
    • securityIdentifier
    • subClassOf
    • systemFlags
    • trustAttributes
    • trustDirection
    • trustPartner
    • trustType
    • userAccountControl
    • uSNChanged
    • uSNCreated
    • whenCreated

    También se conservan otros atributos que tienen un valor de atributo searchFlags que contiene 0x00000008.

    Los siguientes valores de atributo siempre se quitan de un objeto eliminado:

    • objectCategory
    • samAccountType
  • El descriptor de seguridad del objeto eliminado se conserva y no se propagan las entradas de control de acceso heredables. El descriptor de seguridad se conserva tal cual en el momento en que se elimina el objeto.

  • Se borran los vínculos hacia y desde el objeto eliminado. Esto se realiza en segundo plano después de eliminar el objeto. Si el objeto eliminado se restaura antes de que se borren todos los vínculos, se recibirá un error.

  • Si el objeto se elimina en un controlador de dominio de Windows Server 2003, el último atributoKnownParent del objeto eliminado se establece en el nombre distintivo del contenedor donde se contenía el objeto cuando se eliminó.

El objeto eliminado permanece en el contenedor Objetos eliminados durante un período de tiempo conocido como duración del marcador de exclusión. De forma predeterminada, la duración del marcador de exclusión es de 60 días, pero el administrador del sistema puede cambiar este valor. Una vez expirada la duración del marcador de exclusión, el objeto se quita permanentemente del servicio de directorio. Para evitar que falte una operación de eliminación, una aplicación debe realizar sincronizaciones incrementales con más frecuencia que la duración del marcador de exclusión.

Windows Server 2003 agrega la capacidad de restaurar objetos eliminados. Para obtener más información sobre la restauración de objetos eliminados, vea Restaurar objetos eliminados.

Cuando se elimina un elemento, no se puede modificar ninguno de los atributos del objeto. En Windows Server 2003, es posible modificar el descriptor de seguridad (el atributo ntSecurityDescriptor ) en un objeto eliminado. Esto es para permitir la restauración de objetos cuando la persona que restaura el objeto no tiene permisos de escritura para atributos obligatorios. Para actualizar el descriptor de seguridad en un objeto eliminado, el autor de la llamada debe tener el acceso de control "Reanimate Tombstone" en el contexto de nomenclatura, además de los WRITE_DAC normales y el acceso WRITE_OWNER . Incluso si el descriptor de seguridad es restrictivo, el administrador primero puede tomar posesión del objeto, suponiendo que el administrador tiene el privilegio SE_TAKE_OWNERSHIP_NAME y, a continuación, modificar el descriptor de seguridad. Para ello, use la función ldap_modify_ext_s con el control LDAP_SERVER_SHOW_DELETED_OID . La lista de modificaciones debe contener un único reemplazo de atributo para el atributo ntSecurityDescriptor .