Création et suppression d’objets dans Active Directory Domain Services

La procédure utilisée pour créer et supprimer des objets par programmation dans Active Directory Domain Services dépend de la technologie de programmation utilisée. Pour plus d’informations sur la création et la suppression d’objets dans Active Directory Domain Services avec une technologie de programmation spécifique, consultez les rubriques figurant dans le tableau suivant.

Technologie de programmation Informations supplémentaires
Interfaces de service Active Directory Création et suppression d’objets
Lightweight Directory Access Protocol Modification d’une entrée d’annuaire
System.DirectoryServices Créer, supprimer, renommer et déplacer des objets

 

Création d’un objet

En général, les seuls attributs requis pour un objet à créer sont les attributs CN et objectClass . Le simple fait de créer un objet ne le rend pas obligatoirement un objet fonctionnel. Certains types d’objets, tels que les utilisateurs et les groupes, possèdent des attributs supplémentaires requis pour les rendre fonctionnels. Pour plus d’informations sur la création de types spécifiques d’objets, consultez création d’un utilisateur et création de groupes dans un domaine.

Windows Server 2003 : Lorsqu’un objet de la classe utilisateur, groupeou ordinateur est créé sur un contrôleur de domaine qui s’exécute sur le serveur comparaison 2003 ou une version ultérieure, le contrôleur de domaine définit automatiquement l’attribut sAMAccountName de l’objet sur une chaîne unique, si aucune n’est spécifiée.

Suppression d’un objet

Le serveur Active Directory effectue les actions suivantes lorsqu’un objet est supprimé :

  • L’attribut IsDeleted de l’objet supprimé a la valeur true. Les objets avec une valeur d’attribut IsDeleted définie sur true sont appelés des objets Tombstone.

  • L’objet supprimé est déplacé vers le conteneur objets supprimés pour son contexte d’appellation. Si la propriété systemFlags de l’objet contient l’indicateur 0x02000000, l’objet n’est pas déplacé vers le conteneur objets supprimés. Pour plus d’informations sur la liaison et l’énumération du contenu du conteneur d’objets supprimés, consultez récupération des objets supprimés.

  • Le conteneur objets supprimés est plat, donc tous les objets résident au même niveau dans le conteneur objets supprimés. Ainsi, le nom unique relatif de l’objet supprimé est modifié pour garantir que le nom est unique dans le conteneur objets supprimés. Si le nom d’origine est plus long que 75 caractères, il est tronqué à 75 caractères. Les éléments suivants sont ensuite ajoutés au nouveau nom :

    1. Un caractère 0x0A
    2. La chaîne « DEL : »
    3. Forme de chaîne d’un GUID unique, par exemple « 947e3228-70c9-4311-8B7A-e5c9b5bd4432 »

    Voici un exemple de nom d’objet supprimé :

    Jeff Smith\0ADEL:947e3228-70c9-4311-8b7a-e5c9b5bd4432
    
  • La plupart des valeurs d’attribut de l’objet supprimé sont supprimées. Les attributs suivants sont automatiquement conservés :

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

    D’autres attributs qui ont une valeur d’attribut searchFlags contenant 0x00000008 sont également conservés.

    Les valeurs d’attribut suivantes sont toujours supprimées d’un objet supprimé :

    • objectCategory
    • samAccountType
  • Le descripteur de sécurité de l’objet supprimé est conservé et les entrées de contrôle d’accès héritables ne sont pas propagées. Le descripteur de sécurité est conservé tel quel au moment de la suppression de l’objet.

  • Les liens vers et à partir de l’objet supprimé sont effacés. Cette opération est effectuée en arrière-plan après la suppression de l’objet. Si l’objet supprimé est restauré avant que tous les liens soient effacés, une erreur est reçue.

  • Si l’objet est supprimé sur un contrôleur de domaine Windows Server 2003, l’attribut lastKnownParent de l’objet supprimé est défini sur le nom unique du conteneur dans lequel l’objet a été contenu au moment de sa suppression.

L’objet supprimé reste dans le conteneur objets supprimés pendant une période de temps appelée durée de vie de désactivation. Par défaut, la durée de vie de la désactivation est de 60 jours, mais cette valeur peut être modifiée par l’administrateur système. Une fois la durée de vie de désactivation expirée, l’objet est supprimé définitivement du service d’annuaire. Pour éviter une opération de suppression manquante, une application doit effectuer des synchronisations incrémentielles plus fréquemment que la durée de vie de désactivation.

Windows Server 2003 ajoute la possibilité de restaurer les objets supprimés. Pour plus d’informations sur la restauration d’objets supprimés, consultez restauration d’objets supprimés.

Lorsqu’un élément est supprimé, aucun des attributs de l’objet ne peut être modifié. Dans Windows Server 2003, il est possible de modifier le descripteur de sécurité (l’attribut ntSecurityDescriptor ) sur un objet supprimé. Cela permet de restaurer les objets lorsque la personne qui restaure l’objet n’a pas d’autorisations d’accès en écriture à des attributs obligatoires. Pour mettre à jour le descripteur de sécurité sur un objet supprimé, l’appelant doit disposer du droit d’accès au contrôle « réanimer l’objet tombstone » sur le contexte d’appellation, en plus de la _ DAC d’écriture normale et de l’accès en écriture au _ propriétaire . Même si le descripteur de sécurité est restrictif, l’administrateur peut tout d’abord prendre possession de l’objet, en supposant que l’administrateur dispose du privilège se _ prendre _ possession du _ nom , puis de modifier le descripteur de sécurité. Pour ce faire, utilisez la fonction LDAP _ Modify _ ext _ s avec le contrôle _ _ Show _ Deleted _ OID du serveur LDAP . La liste de modifications doit contenir un seul attribut de remplacement pour l’attribut ntSecurityDescriptor .