【发布时间】:2012-07-02 08:40:16
【问题描述】:
假设您的组织中有一个包含两个域的林。在我的例子中,每个域都定义在一个服务器中,所以我有两个域控制器。
DOMAIN1
group1
user1
DOMAIN2
group2
user2
group1 members: user1, user2
group2 members: user1, user2
有没有办法从域 DOMAIN2 中的计算机列出 user1 所属的组?使用 C# 或 WinAPI 对我有效。
编辑: WinAPI 函数 NetUserGetGroups 对我不起作用,因为它在执行将 user1 的组加载到属于域 DOMAIN2 的机器时不起作用。
我需要类似于LookupAccountName 的东西来解决跨域问题:
如果无法在本地系统上解析名称,此函数将 尝试使用本地信任的域控制器解析名称 系统。
【问题讨论】:
-
NetUserGetGroups 应该可以工作,您只需将 DOMAIN1 的域控制器指定为目标计算机。您可以使用 NetGetDCName 找到合适的 DC。否则,您可能需要显式查询 Active Directory。有关一些选项,请参阅msdn.microsoft.com/en-us/library/windows/desktop/…。就个人而言,我使用 LDAP API 来完成这类工作的效果很好,尽管只是在单域上下文中。
标签: c# .net windows pinvoke directoryservices