如何将另一个域的用户添加到本地域组?

How to add a user from another domain to a local domain group?

我想使用 C# 将用户从一个域添加到本地域。这些域具有双向信任。目前我收到错误

'No principal matching the specified parameters was found.' on the .Save() line.

我有用户的 DN(例如 'CN=Adams, Sam,OU=Beer, DC=Drinkers,DC=local')。

团体类似于 CN=Drunks, OU=Groups,DC=Bars,DC=local。

这在同域时有效,但在跨域时出现错误。我正在使用的用户帐户在本地具有管理员权限,在另一个域中具有读取权限。

using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, m_AD_connection.Domain, m_AD_connection.Path, ContextOptions.Negotiate, m_AD_connection.UserName, m_AD_connection.Password))
{
    GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, GroupName);
    if (group != null)
    {
        group.Members.Add(pc, IdentityType.DistinguishedName, DN);
        group.Save();
        return true;
    }
    else
        return false;
}

对我需要做什么有什么建议吗?

您的问题在这一行:

group.Members.Add(pc, IdentityType.DistinguishedName, DN);

context参数应该是查找用户所需的上下文,而不是组。因此,您需要为第二个域创建一个新的 PrincipalContext 并将其传递给 Add()。例如:

var drinkersPc = new PrincipalContext(ContextType.Domain, "drinkers.local");
group.Members.Add(drinkersPc, IdentityType.DistinguishedName, DN);