【问题标题】:Not able to fetch users form Active directory无法从 Active Directory 中获取用户
【发布时间】:2018-02-15 05:53:02
【问题描述】:

我需要获取组内的所有用户。我假设组 G1 和里面我有两个子组,比如 sg1 , sg2 ,这两个组有我想要获取的用户。

这是我正在使用的,但只获取 sg1 和 sg2 而不是其中的用户

searchFilter = "(&(objectCategory=*)(memberOf="+distinguishedName+"))"

谁能帮助我如何让用户进入 sg1 和 sg2。如果需要更多信息,请告诉我。谢谢!!

更新:

我正在尝试使用 java 来做到这一点。

通过应用以下过滤器,我能够获取用户,但不是全部,每个子组中的用户很少。

> searchFilter =
> "(&(|(objectClass=group)(objectClass=user))(memberOf:1.2.840.113556.1.4.1941:="+distinguishedName+"))"

【问题讨论】:

  • 所使用的编程/脚本语言未标记;另外,我相信您必须比这种琐碎的方法更深入地枚举作为父组成员的组成员。
  • @Am_I_Helpful 它的 java。我认为通过应用 LDAP 过滤器,我们可以获得所需的输出,但我对此并不陌生。如果不过滤,那我可以尝试什么?
  • 不知道查询返回的所有对象(递归)或仅直接子对象。如果是后者,您将不得不创建一些代码/查询来遍历所有组对象并获取用户。或者如果可能的话,指定查询以递归方式查找对象(不知道是否可能,尽管常识告诉我应该如此)。

标签: java windows active-directory


【解决方案1】:

解析所有成员(包括嵌套)安全组(至少需要 Windows 2003 SP2)

(memberOf:1.2.840.113556.1.4.1941:=CN=GroupOne,OU=Security Groups,OU=Groups,DC=YOURDOMAIN,DC=NET)

或者只检索成员用户:

(&(objectClass=user)(memberof:1.2.840.113556.1.4.1941:=CN=GroupOne,OU=Security Groups,OU=Groups,DC=YOURDOMAIN,DC=NET)

known to work ldap queries。确保您在 Microsoft Active Directory 中具有执行查询的适当权限。

您可以使用 LDAP 浏览器测试这些。像Apache Studio 这样的东西。

【讨论】:

  • 感谢 jwilleke,但是发生了什么,当通过父组时,只有少数子组成员,而在通过子组时,我得到所有用户属于子组。所以我认为它与安全组无关。
猜你喜欢
  • 2023-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多