给定一个LDAP树(在我的情况下是AD),是否有一种方法在树中的特定级别使用通配符进行search?
即我想知道是否有相同的方式来searchLDAP的方式,你可能会做一个ls /opt/*/lib在Linux中。
我不认为有一个可以做到这一点的单线程。 不过,您可以编写脚本(或编码)。
几乎在AD中进行的任何LDAPsearch都将涉及ldap_search_s()函数。 其中一个function绝对需要的是开始search的基础。 例如“DC = domain,DC = com”。 您可以使用任何OU或容器作为开始search的基础。 要使用您的示例,它可能看起来像“OU = opt,DC = domain,DC = com”。 你不能在该string中使用通配符。
因此,在您的假设脚本中,您使用上述search条件运行查询,并使用filter(objectclass = container),并指定search的范围( 基本级,一级或子树 )。 这将为您提供您的search基地下的所有容器的列表。
然后,在你的脚本中,你可以运行更多的查询来合并你的容器列表中的每个元素。 (OU = lib, OU = dallas ,OU = opt,DC = domain,DC = com,OU = lib, OU = atlanta ,OU = opt,DC = domain,DC = com等)
粗体中的位代表脚本中的variables,您将为在首次search容器时find的每个容器分别进行查询。
这听起来对我来说很疯狂。 你还必须弄清楚如何处理子树search中的recursion等。
另一种方法是search想要search的对象,然后以编程方式检查每个对象的直接父容器是OU = lib,如果不是,则将其扔出。 这可能稍微有点疯狂。
但重点是,你将不得不脚本或编码。 通配符可用于对象*(电话号码= ** 555)*或各种对象(对象类=用户)的属性,但不适用于search库中的节点。