Active directory 不使用manager属性的directReports的LDAP筛选器

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)) 这两个都能返回我们所需要的。

我需要使用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))
这两个都能返回我们所需要的。 但是,如果我可以避免在过滤器中使用特定的人,而是将过滤器基于另一个属性,那就太好了,例如:

(&(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并使用它来构造其他过滤器