如何查询树中的一组比另一组更深的用户

时间:2018-02-09 21:19:56

标签: active-directory ldap

假设您有两组用户:

OU=IT Dept,OU=Groups,DC=mycompany,DC=com

OU=XYZ Corp,OU=Temp Accounts,OU=Groups,DC=mycompany,DC=com

您如何表达查询?我尝试了OU=Groups,DC=mycompany,DC=com的搜索基础和(|(OU=IT Dept)(OU=XYZ Corp,OU=Temp Accounts))的过滤器,但是没有用。

从来没有对LDAP做过多,所以请原谅这个有点开放的问题。

1 个答案:

答案 0 :(得分:1)

  

假设您有两组用户:

     

OU = IT部门,OU =组,DC = mycompany,DC = com

     

OU = XYZ Corp,OU =临时账户,OU =组,DC = mycompany,DC = com

这些不是用户对象的有效distinguishedName。

用户对象存储在某个父容器(如OU)中,其distinguishedName以CN开头。 OU是顶级容器,包含用户,计算机,子OU等子对象。

  

我尝试了OU = Groups,DC = mycompany,DC = com和过滤器的搜索基础   (|(OU = IT部门)(OU = XYZ Corp,OU =临时账户))并且没有用。

您的过滤器无法正常工作,因为您没有选择适当的过滤条件。您需要为(objectCategory=person)(objectCategory=user)应用过滤器。您还可以使用objectClass作为过滤参数而不是objectCategory。请查看链接Filter on objectCategory and objectClass以了解详情。

  

您如何表达查询?

假设您的用户如下:

CN =名字姓氏,OU = IT部门,OU =组,DC = mycompany,DC = com CN =名字姓氏,OU = XYZ Corp,OU =临时账户,OU =组,DC = mycompany,DC = com

然后,您的LDAP查询应将SearchBase设置为您当前拥有的内容(OU=Groups,DC=mycompany,DC=com),并过滤(|(objectCategory=person)(objectCategory=user))以及任何其他过滤器,如果您愿意,例如,您可能想要通过sAMAccountName,名称等进行搜索。

如第二段所述,您还可以使用objectClass作为过滤器类型来获得所需的结果。