获取组及其子组的所有成员

时间:2012-10-29 14:07:24

标签: active-directory ldap pentaho kettle

我有这样的团体:

  • A组
    • 组B
      • 用户
    • GroupG
      • 用户

因此,目标是让所有用户成为父组GroupA的成员。

我有以下过滤器:

(&(objectCategory=Person)(objectClass=User)(mail=*MyEmailDomain.com)(memberOf=CN=GroupB,OU=MyOU3,OU=MyOU2,OU=MyOU1,DC=MyDomain,DC=LOCAL))

适用于最低级别的小组。

从研究来看,似乎这应该有效,但不是:

(&(objectCategory=Person)(objectClass=User)(mail=*MyEmailDomain.com)(memberof:1.2.840.113556.1.4.1941:=(CN=GroupA,OU=MyOU3,OU=MyOU2,OU=MyOU1,DC=MyDomain,DC=LOCAL)))

如果重要,我使用Active Directory资源管理器获取专有名称,并使用Pentaho数据集成工具(Kettle / PDI)中的LDAP输入步骤来检索数据。

2 个答案:

答案 0 :(得分:6)

我喜欢这样一个事实:一旦我将它们发布到某处,我总能找到问题的答案。我需要学习更早发布,也许我会花更少的时间搜索:)

发现一个随机的stackoverflow帖子,表明msdn文章中有一个错误,并且括号太多。

这不起作用:

(&(objectCategory=Person)(objectClass=User)(mail=*MyEmailDomain.com)(memberof:1.2.840.113556.1.4.1941:=(CN=GroupA,OU=MyOU3,OU=MyOU2,OU=MyOU1,DC=MyDomain,DC=LOCAL)))

但这可行:

(&(objectCategory=Person)(objectClass=User)(mail=*MyEmailDomain.com)(memberof:1.2.840.113556.1.4.1941:=CN=GroupA,OU=MyOU3,OU=MyOU2,OU=MyOU1,DC=MyDomain,DC=LOCAL))

(专有名称周围没有括号)

答案 1 :(得分:0)

嗨这不会递归地获取用户。这只是给出了父组用户列表。

(&(objectCategory=Person)(objectClass=User)(mail=*MyEmailDomain.com)(memberof:1.2.840.113556.1.4.1941:=CN=GroupA,OU=MyOU3,OU=MyOU2,OU=MyOU1,DC=MyDomain,DC=LOCAL))