Partager via


DsInheritSecurityIdentityA, fonction (ntdsapi.h)

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

Syntaxe

NTDSAPI DWORD DsInheritSecurityIdentityA(
  [in] HANDLE hDS,
  [in] DWORD  Flags,
  [in] LPCSTR SrcPrincipal,
  [in] LPCSTR 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 une utilisation ultérieure. Doit être égal à 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 attribut sidHistory sera mis à jour avec le SID de SrcPrincipal.

Valeur de retour

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

Remarques

Avec des applications de domaine de mise à niveau du système d’exploitation, 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 joint la même forêt, DsInheritSecurityIdentity élimine les objets dupliqués tout en garantissant que les objets restants ont tous les droits de sécurité et privilèges appartenant à leur objet supprimé respectif.

Implémentation 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 n’a pas de droits de suppression ou si SrcPrincipal a des enfants.
  • Échoue l’opération si le objectSid de SrcPrincipal ou DstPrincipal est un SID connu.
  • Ajoute le objectSid et le sidHistory (le cas échéant) de SrcPrincipal au sidHistory DstPrincipal .
  • Force un événement d’audit et échoue l’opération en cas d’échec de l’audit.
  • Entre les événements dans le journal des services d’annuaire. Ne confondez pas cela avec le journal d’audit de sécurité.

Note

L’en-tête ntdsapi.h définit DsInheritSecurityIdentity en tant qu’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.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
serveur minimum pris en charge Windows Server 2008
plateforme cible Windows
d’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