我有很多特定的OU需要搜索对象。我无法搜索最常见的父OU,因为它将包含许多我不想要的OU。我知道我可以搜索最常见的父OU,并在迭代结果时排除我不想要的OU,但这对我的情况也不起作用。
目前,我必须通过将基础设置为我正在搜索的OU来逐个搜索每个OU,但这意味着要进行数千次LDAP调用。
我试图找到一种方法来过滤特定的OU,但无法弄清楚如何。类似的东西:
(
&
(objectCategory=computer)
(
|
(someAttribute=OU=one,OU=two,DC=some,DC=com)
(someAttribute=OU=two,OU=two,DC=some,DC=com)
(someAttribute=OU=two,OU=three,DC=some,DC=com)
(someAttribute=OU=five,OU=four,OU=three,DC=some,DC=com)
)
)
我的想法是我可以批量输入特定/目标OU的输入列表,并一次搜索多个OU。
我考虑过将distinguishedName
与通配符(distinguishedName=*,OU=...
)一起使用,但这看起来非常低效。
答案 0 :(得分:1)
不幸的是,无法使用一组不同的基本DN执行单个LDAP搜索。您必须找到一组定义所需结果的属性。 您正在寻找的对象有什么共同之处?
如果父OU确实是唯一定义所需结果集的属性,那么您自己建议在巨型distinguishedName
过滤器中使用AD的OR
属性是可行的方法。
请注意,我可以使用我的肥皂盒并讨论正确的LDAP目录树设计,但这无助于您找到解决方案。
编辑如果我是你,我肯定会尝试单独搜索每个基本DN以查看哪个更快。如果可能,请将搜索范围优化为onelevel
。如果您的应用程序使用连接池,则单独优化搜索的可能性更快。