Active directory 不使用manager属性的directReports的LDAP筛选器
我需要使用LDAP筛选器从Active Directory获得两个单独的结果 直接向经理报告的每个人:Active directory 不使用manager属性的directReports的LDAP筛选器,active-directory,ldap,Active Directory,Ldap,我需要使用LDAP筛选器从Active Directory获得两个单独的结果 直接向经理报告的每个人: (&(manager=CN=XXXX,OU=IT,OU=STAFF,OU=XYZ,DC=ad,DC=xxxcom)) 另一个列表是针对同一管理器的递归directReports: (&(manager:1.2.840.113556.1.4.1941:=CN=XXXX,OU=IT,OU=STAFF,OU=XYZ,DC=ad,DC=xxxcom)) 这两个都能返回我们所需要的。
(&(manager=CN=XXXX,OU=IT,OU=STAFF,OU=XYZ,DC=ad,DC=xxxcom))
另一个列表是针对同一管理器的递归directReports:
(&(manager:1.2.840.113556.1.4.1941:=CN=XXXX,OU=IT,OU=STAFF,OU=XYZ,DC=ad,DC=xxxcom))
这两个都能返回我们所需要的。
但是,如果我可以避免在过滤器中使用特定的人,而是将过滤器基于另一个属性,那就太好了,例如:
(&(department="IT")(jobDesc="Senior Director"))
我们目前正在使用PHP实现这一点,但我们需要切换到使用只接受过滤器的应用程序。此应用程序不允许$result=然后将$result放入筛选器而不是经理的CN
谢谢。那是不可能的。您不能在另一个查询中使用一个查询的结果,而在一个查询中执行所有这些操作 如果您要查找IT部门的每个人,您是否可以不只是查找
(department=IT)
顺便说一句,您确实应该在搜索中至少包含一个索引属性。部门
和经理
属性未编制索引,因此AD必须查看所有对象以查找匹配项,您可能会得到不需要的匹配项。例如,计算机对象也具有部门
属性。此查询:
(&(objectClass=user)(objectCategory=person)(department=IT))
将结果仅限于用户帐户。如果您想包含联系人对象,可以省略
(objectclass=user)
否,不幸的是,您不能真正动态嵌套查询筛选器(例如SQL中的嵌套选择),您必须对(&(department=“IT”)(jobDesc=“高级主管”)
执行单独的查询,然后获取结果的differentiedName并使用它来构造其他过滤器