Active directory 是否可以查询一组组组的公共用户

Active directory 是否可以查询一组组组的公共用户,active-directory,ldap,Active Directory,Ldap,我需要一个已知组集合共有的所有用户的列表,使用Active Directory的单个LDAP查询。从我们目前的阅读来看,这似乎是不可能的,但我认为最好问问蜂巢思维。试试这个: (&(objectCategory=Person) (& (memberOf=CN=group1,dc=company,dc=local) (memberOf=CN=group2,dc=company,dc=local) (memberOf=CN=gr

我需要一个已知组集合共有的所有用户的列表,使用Active Directory的单个LDAP查询。从我们目前的阅读来看,这似乎是不可能的,但我认为最好问问蜂巢思维。

试试这个:

(&(objectCategory=Person)
    (&
        (memberOf=CN=group1,dc=company,dc=local)
        (memberOf=CN=group2,dc=company,dc=local)
        (memberOf=CN=group3,dc=company,dc=local)
    )
)

这与类似,只是我希望所有不是组成员的用户都在这里。要使大多数查询工具正常工作,您需要删除所有空格。

如果您的组包含嵌套组,则无法在单个查询中执行此操作


您需要编写一些代码,以递归方式解析组成员,并对结果执行“内部联接”的逻辑等效操作,生成所有原始组通用的用户列表。

是的,可以使用属性范围的查询。它需要W2K3 AD或更高版本,但将为您提供具有特定属性的所有用户,即一个组中的成员资格,或者在您的情况下为多个组(组的交叉点)。其中一个最好的例子来自Joe Kaplan和Ryan Dunns的《目录服务编程的.NET开发人员指南》一书,对于广告工作来说,很难比浏览第179页更好

注意事项:此时,您已经不再需要在AD中进行琐碎的搜索,许多事情变得越来越重要,例如搜索根、范围以及搜索所需项目的潜在巨大数据集的效果。查看50或60K用户以查找组成员确实会对性能产生影响,并准备在数据集较大的情况下进行分页结果或类似操作。卡普兰/瑞安做了出色的脚踏实地的工作,让你到达你需要的地方。也就是说,我已经在两个广告项目中使用了它们,并取得了巨大的成功。能够在没有递归查询的情况下从AD检索数据是非常值得的,我发现只要控制数据集的大小,检索速度就很快