需要一个 LDAP 查询来确定用户在 Active Directory 中的三个属性中的任何一个是否具有空值

Need an LDAP query that will determine if a user has null values for any one of three attributes in Active Directory

我需要一个 ldap 查询来确定用户 any 以下属性是否具有空值:部门、员工 ID 和姓氏 (sn)。使用 Active Directory 用户和计算机控制台,我可以使用图形查找实用程序,然后在高级选项卡下构造一个查询,将所有这三个搜索属性添加到条件列表中,条件为 "Not Present",它将找到所有用户缺少所有这三个值。但是,它不会发现用户只缺少这些值中的一个或三个值中的两个。它只会找到缺少所有三个值的用户。我如何找到所有用户在我的最终搜索结果中同时缺少至少一个、两个或所有三个值?

那个图形查找界面用AND连接条件。你想要或。所以您必须自己编写 LDAP 查询。单击“高级”选项卡,您可以将其粘贴到:

(&(objectClass=user)(objectCategory=person)(|(!department=*)(!employeeID=*)(!sn=*)))

查看 objectClassobjectCategory 的第一部分将您的搜索限制为仅用户。其余检查是否未设置任何这些属性。

这里有一个关于如何构建 LDAP 查询的很好的总结:https://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx