Platform SDK: Active Directory, ADSI, and Directory Services

DsInheritSecurityIdentity

The DsInheritSecurityIdentity API appends the objectSid and sidHistory of SrcPrincipal to the sidHistory of DstPrincipal and then deletes SrcPrincipal, all in a single transaction. To ensure atomicity, SrcPrincipal and DstPrincipal must be in the same domain and hDS must be a domain controller that has authority within that domain.

NTDSAPI DWORD WINAPI DsInheritSecurityIdentity(
  HANDLE hDS,
  DWORD Flags,
  LPCTSTR SrcPrincipal,
  LPCTSTR DstPrincipal
);

Parameters

hDS
[in] Directory service handle obtained using a call to DSBind or DSBindWithCred.
Flags
[in] Reserved for future use. Must be set to NULL.
SrcPrincipal
[in] Pointer to a null-terminated string that specifies the name of a security principal (user or group) in the source domain. This name is a domain-relative SAM name.
DstPrincipal
[in] Pointer to a null-terminated string that specifies the name of a security principal (user or group) in the destination domain. This domain-relative SAM name identifies the principal whose SIDhistory attribute will be updated with the SID of the SrcPrincipal.

Return Values

Returns WIN32 error codes.

Remarks

With an operating system upgrade, as from Windows NT® 4.0 to Windows® 2000, domain applications, which span both upgraded and non-upgraded domains, may have security principals inside and outside the forest for the same logical entity at the same time.

When all upgraded domains have joined the same forest, DsInheritSecurityIdentity eliminates the duplicate objects while ensuring that the remaining objects have all the security rights and privileges belonging to their respective deleted object.

The implementation of DsInheritSecurityIdentity is essentially as follows.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Header: Declared in Ntdsapi.h.
  Library: Included as a resource in Ntdsapi.dll.
  Unicode: Implemented as Unicode and ANSI versions on Windows 2000.

See Also

DC and Replication Management Functions, DsAddSidHistory, DSBind, DSBindWithCred