我正在 Active Directory 中编写 LDAP 查询。
我想要在特定 OU 中的 Active Directory 中搜索用户。
我运行了 LDAP 查询(&(&(objectCategory=organizationalUnit)(objectClass=organizationalUnit)(ou=Hosted*)SAMAccountName=vvishwakarma))
,但没有起作用
请记住,我想在特定 OU 中搜索 SAMaccount,而不是整个目录
答案1
首先,您使用了错误的 objectcategory 和 objectClass。除非有可能存在具有相同 samAccountname 的组,否则您可能可以完全省略 objectcategory 和 class。
这给你带来了什么?
(&(objectClass=user)(ou=Hosted*)(SAMAccountName=vvishwakarma))
答案2
我希望这至少可以解决你的一些问题。
您需要做的第一件事是删除不正确的 objectCategories 和 objectClasses。
接下来您应该将 searchDN 设置为您想要搜索的 OU 的根目录:
例如,如果您希望搜索:
domain.local
|- OUNameLvl1
|-OUNameLvl2
SearchDN=OU=OUNameLvl2,OU=OUNameLvl1,DC=domain,DC=local
然后你可以尝试:
(&(objectCategory=person)(objectClass=user)(sAMAccountName=vvishwakarma))
编辑:我刚刚意识到您说您在 Active Directory 中执行此操作。
如果使用 Active Directory 用户和计算机,您可以定义一个自定义查询,在其中执行与上述相同的操作 - 将搜索根放在您想要搜索的 OU,然后使用相同的 LDAP 查询。
答案3
好的,这是一个非常老的问题,但希望它仍然有用。
我通过将我的 ldap 查询库设置为有问题的 OU 来实现这一点。(来源)。
DN
虽然您通常会将基数设置为所涉及的 DC,但我通过将基数设置为我想要的来使其工作OU
。OU=Ops,DC=Big,DC=Co
,例如。