LDAP查询以查找具有多个父级的所有组

时间:2014-02-07 20:23:48

标签: active-directory ldap active-directory-group

是否有办法构建一个LDAP搜索字符串,该字符串将返回具有多个父组的所有组?我搜索并搜索了谷歌,也许这不可能做到,或者我可能只是找不到合适的东西,但似乎我应该能够做到这一点。

我想要解决的问题: 我们有一个批处理应用程序,它维护组的组织层次结构。在我们的层次结构中,组只能有一个父“org”组。它有任意数量的非组织父组,而不是组织单位组。组织由CN识别,由8个单独的数字组成,具有非常特定的范围,为了参数,可以说1000到1001,其中10000000是“基础”组织单位。组织只能是另一个组织的子组,但可以有其他非组织组的父组。

问题在于,有人以他们无限的智慧走出去,打破了一个组织规则,即一个组织团体应该只拥有一个Org父母。现在我必须更新批处理程序来处理和纠正它。但是,首先,我需要知道如何找到这些。

我的想法是这样的:

(&(objectClass=group)(count(members) > 2))

其中count是某个聚合函数,它返回一个组可能拥有的成员数。或者,也许某种方式返回具有多个memberOf的所有组?

1 个答案:

答案 0 :(得分:2)

LDAP没有聚合函数来确定成员数。某些LDAP实现可能添加了聚合功能,但AFIK,Microsoft Active Directory却没有。

您可以将baseDN移动到更高的点,以包含有组或甚至root的所有可能的OU。 当您将问题标记为Microsoft Active Directory时,您可能需要追踪引荐。

我无法确定Microsoft Active Directory supports extensible matching for DNs是否只允许在两个或更多容器内进行匹配。如果Microsoft Active Directory,则类似于:(&(|(ou:dn:= groups)(ou:dn:= groups2))(objectclass = groups))的过滤器可能有效。

-Jim