Fonction DsInheritSecurityIdentityW (ntdsapi.h)

La fonction DsInheritSecurityIdentity ajoute les attributs objectSid et sidHistory de SrcPrincipal au sidHistory de DstPrincipal , puis supprime SrcPrincipal, le tout en une seule transaction. Pour garantir que cette opération est atomique, SrcPrincipal et DstPrincipal doivent se trouver dans le même domaine et hDS doit être lié à un contrôleur de domaine disposant des autorisations appropriées dans ce domaine.

Syntaxe

NTDSAPI DWORD DsInheritSecurityIdentityW(
  [in] HANDLE  hDS,
  [in] DWORD   Flags,
  [in] LPCWSTR SrcPrincipal,
  [in] LPCWSTR DstPrincipal
);

Paramètres

[in] hDS

Contient un handle de service d’annuaire obtenu à partir de la fonction DSBind ou DSBindWithCred .

[in] Flags

Réservé pour un usage futur. Doit être zéro.

[in] SrcPrincipal

Pointeur vers une chaîne terminée par null qui spécifie le nom d’un principal de sécurité (utilisateur ou groupe) dans le domaine source. Ce nom est un nom SAM relatif au domaine.

[in] DstPrincipal

Pointeur vers une chaîne terminée par null qui spécifie le nom d’un principal de sécurité (utilisateur ou groupe) dans le domaine de destination. Ce nom SAM relatif au domaine identifie le principal dont l’attribut sidHistory sera mis à jour avec le SID de SrcPrincipal.

Valeur retournée

Retourne un code d’erreur système ou RPC, y compris les éléments suivants.

Remarques

Avec une mise à niveau du système d’exploitation, les applications de domaine, qui s’étendent à la fois sur des domaines mis à niveau et non mis à niveau, peuvent avoir des principaux de sécurité à l’intérieur et à l’extérieur de la forêt pour la même entité logique en même temps.

Lorsque tous les domaines mis à niveau ont rejoint la même forêt, DsInheritSecurityIdentity élimine les objets en double tout en s’assurant que les objets restants disposent de tous les droits de sécurité et privilèges appartenant à leur objet supprimé respectif.

Implémentation de DsInheritSecurityIdentity :

  • Vérifie que SrcPrincipal et DstPrincipal se trouvent dans le même domaine.
  • Vérifie que le domaine est accessible en écriture au niveau de la liaison au serveur.
  • Vérifie que l’audit est activé pour le domaine.
  • Vérifie que l’appelant est membre des administrateurs de domaine pour le domaine.
  • Vérifie que le domaine est en mode natif.
  • Vérifie que SrcPrincipal existe, qu’il s’agit d’un principal de sécurité et qu’il a lu ses propriétés objectSid et sidHistory .
  • Vérifie que DstPrincipal existe, qu’il s’agit d’un principal de sécurité et qu’il a lu certaines propriétés requises pour l’audit et la vérification.
  • Supprime SrcPrincipal dans la base de données uniquement si l’opération entière est validée à l’achèvement. Cette opération échoue si l’appelant ne dispose pas de droits de suppression ou si SrcPrincipal a des enfants.
  • Échoue l’opération si l’objectSid de SrcPrincipal ou DstPrincipal est un SID connu.
  • Ajoute l’objectSid et le sidHistory (le cas échéant) de SrcPrincipal à sidHistory de DstPrincipal.
  • Force un événement d’audit et échoue l’opération si l’audit échoue.
  • Entre les événements dans le journal du service d’annuaire. Ne confondez pas cela avec le journal d’audit de sécurité.

Notes

L’en-tête ntdsapi.h définit DsInheritSecurityIdentity comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête ntdsapi.h
Bibliothèque Ntdsapi.lib
DLL Ntdsapi.dll

Voir aussi

DSBind

DSBindWithCred

Fonctions de gestion du contrôleur de domaine et de la réplication