2

所以我的目标是能够将一个 Active Directory 域中的用户添加到另一个 Active Directory 域中的另一个组。

我想在 C# 中执行此操作。我知道有一个 System.DirectoryServices 命名空间,其中包含与 AD 通信的类,但我找不到有关跨域添加用户的任何信息。

在环境中有两个域控制器具有相同的父林。两个域之间存在临时信任,我们称它们为域 A 和 B。

我可以使用 Active Directory 工具将 B 中的用户添加到域 A 内的域本地或通用组。

有谁知道我如何使用 C# 以编程方式执行此操作?

4

2 回答 2

1

几年前我写代码来做这件事时,什么对我有用:

  1. 获取要添加成员的组的 DirectoryEntry。
  2. 对组 DirectoryEntry 调用 Invoke,将参数“Add”作为方法名称和数组中成员的ADsPath传递。

一些示例代码在我脑海中浮现:

DirectoryEntry group = new DirectoryEntry(@"LDAP://CN=foo,DC=domainA");
string memberADsPath = @"LDAP://CN=bar,DC=domainB";
group.Invoke("Add", new Object[] {memberADsPath});
于 2008-12-25T03:59:22.910 回答
0

您需要为 Group 创建一个 DirectoryEntry 对象。然后,将要添加到组的用户的 DN 添加到组的成员属性中。例如:

DirectoryEntry group = new DirectoryEntry("LDAP://child.domain.com/cn=group,ou=sample,dc=child,dc=domain,dc=com");

string userDN = "cn=user,ou=sample,dc=domain,dc=com";

group.Properties["member"].Add(userDN);
group.CommitChanges();

可能您在绑定到组 DirectoryEntry 时遇到问题。在尝试添加组以确保成功绑定之前,请确保您可以读取该 DE 的属性。

于 2008-12-27T07:53:59.080 回答