LDAP:从搜索查询中排除域
LDAP : exclude a domain from search query
我试图从我的 LDAP 搜索中排除域控制器。
我有 3 个 DC:staff
、student
和 exams
。
所以我可以使用以下搜索 DN 之一:
DC=staff,DC=root,DC=mycompany,DC=fr
DC=student,DC=root,DC=mycompany,DC=fr
DC=exams,DC=root,DC=mycompany,DC=fr
那么搜索就简单了:(&(objectCategory=person)(objectClass=user)(sAMAccountName=johndoe))
它有效,但是一个人 (sAMAccountName
) 可以在多个域下(即学生和考试),所以它被找到了两次。我需要将搜索限制为 仅 staff
和 student
.
我尝试了以下查询但不起作用:
(&(objectCategory=person)(objectClass=user)(sAMAccountName=johndoe)(!(memberOf=DC=exams,DC=root,DC=mycompany,DC=fr)))
我认为您混淆了 DC 和组。 memberOf
是Active Directory中的反向指针属性;它在用户对象上维护,但直接对应于用户所属的组。如果您实际上在与您的域相对应的组中有不同的成员,您可以做类似的事情。它看起来更像这样......
(&
(objectCategory=person)(objectClass=user)(sAMAccountName=johndoe)
(!(memberOf=cn=exams_group,ou=groups,DC=exams,DC=root,DC=mycompany,DC=fr))
)
如果这看起来不适合您,请查看每个条目的 userPrincipalName
属性值。它们可能都有不同的扩展名。 userPrincipalName
保证在整个森林中是唯一的,通常采用电子邮件地址 samaccountname@domainname
的格式。如果您在多个域中有重复的 samaccountnames,则 userprincipalname 的域组件很可能会不同。
你可以这样做...有点粗糙但可能有效
(&
(objectCategory=person)(objectClass=user)(sAMAccountName=johndoe)
(!(userprincipalname=*@exams.root.mycompany.fr))
)
或者您可以提交多个肯定的搜索请求。
我试图从我的 LDAP 搜索中排除域控制器。
我有 3 个 DC:staff
、student
和 exams
。
所以我可以使用以下搜索 DN 之一:
DC=staff,DC=root,DC=mycompany,DC=fr
DC=student,DC=root,DC=mycompany,DC=fr
DC=exams,DC=root,DC=mycompany,DC=fr
那么搜索就简单了:(&(objectCategory=person)(objectClass=user)(sAMAccountName=johndoe))
它有效,但是一个人 (sAMAccountName
) 可以在多个域下(即学生和考试),所以它被找到了两次。我需要将搜索限制为 仅 staff
和 student
.
我尝试了以下查询但不起作用:
(&(objectCategory=person)(objectClass=user)(sAMAccountName=johndoe)(!(memberOf=DC=exams,DC=root,DC=mycompany,DC=fr)))
我认为您混淆了 DC 和组。 memberOf
是Active Directory中的反向指针属性;它在用户对象上维护,但直接对应于用户所属的组。如果您实际上在与您的域相对应的组中有不同的成员,您可以做类似的事情。它看起来更像这样......
(&
(objectCategory=person)(objectClass=user)(sAMAccountName=johndoe)
(!(memberOf=cn=exams_group,ou=groups,DC=exams,DC=root,DC=mycompany,DC=fr))
)
如果这看起来不适合您,请查看每个条目的 userPrincipalName
属性值。它们可能都有不同的扩展名。 userPrincipalName
保证在整个森林中是唯一的,通常采用电子邮件地址 samaccountname@domainname
的格式。如果您在多个域中有重复的 samaccountnames,则 userprincipalname 的域组件很可能会不同。
你可以这样做...有点粗糙但可能有效
(&
(objectCategory=person)(objectClass=user)(sAMAccountName=johndoe)
(!(userprincipalname=*@exams.root.mycompany.fr))
)
或者您可以提交多个肯定的搜索请求。