Filter 搜索多个对象

Filter 搜索多个对象,filter,ldap,Filter,Ldap,我有很多特定的OU需要搜索对象。我无法搜索最常见的父OU,因为它将包含许多我不想要的OU。我知道我可以搜索最常见的父OU,并在迭代结果时排除我不想要的OU,但这对我的情况也不起作用 目前,我必须通过将基础设置为我正在搜索的OU来逐个搜索每个OU,但这意味着要进行数千次LDAP调用 我试图找到一种方法来过滤特定的OU,但不知道如何过滤。比如: ( & (objectCategory=computer) ( | (someAttribu

我有很多特定的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


我考虑过使用DifferencedName和通配符DifferencedName=*,OU=。。。但这似乎效率极低。

不幸的是,使用一组不同的基本DNs执行单个LDAP搜索是不可能的。您必须找到一组定义所需结果的属性。您正在寻找的对象有哪些共同点

如果父OU确实是定义所需结果集的唯一属性,那么您自己的建议是在giant或filter中使用AD的DiscrimitedName属性

请注意,我可以在我的soapbox上讨论正确的LDAP目录树设计,但这无助于您找到解决方案


编辑如果我是你,我肯定会对每个基本DN进行单独的搜索,看看哪个更快。如果可能,将搜索范围优化为一级。如果应用程序使用连接池,则单独优化搜索的速度可能更快

明白。非常感谢。我也愿意加入你们的soapbox,但是,唉,我对我们的目录树设计的担忧置若罔闻。