查询范围

查询的范围由绑定到的对象确定。 如果不确定对象在企业中的位置,则需要尽可能广泛的搜索。 但是,如果知道该对象将包含在特定域中,例如用户连接到的域或特定组中(例如 Manager 组),则应设置搜索范围以反映情况。 为了获得最佳性能,应尝试以范围为目标以搜索可能的最小对象数。

不确定对象在企业中的位置时,可以绑定到全局目录服务。 全局目录服务包含目录中每个对象的列表,以及每个对象的属性的一小部分。 在全局目录中找到该对象后,可以从全局目录检索其可分辨名称,并使用它绑定到该对象来执行其他作。

确定要绑定到的对象后,可以进一步将查询限制为以下范围之一:基本查询、一级查询或子树搜索,如下图所示。

基本、一级或子树搜索的根目录中的对象

基础

基本查询将搜索限制为仅基本对象。 返回的最大对象数始终为一个。 此搜索可用于验证对象是否存在。 例如,如果你有对象的可分辨名称,并且必须根据路径验证该对象是否存在,则可以使用一级搜索。 如果搜索失败,可以假定对象可能已重命名或移动到其他位置,或者你为对象提供了不正确的数据。 请注意,如果要重新访问对象,则应存储 GUID 而不是可分辨名称。 这样就可以在目录层次结构中重命名或移动对象,而不会中断持久链接。

一级

一级搜索仅限于基本对象的直接子级,但不包括基本对象本身。 此设置可以针对父对象的即时子对象执行有针对性的搜索。 例如,如果你有一个名为 P1 的父对象,并且其直接子对象是:C1、C2、C3,则在评估条件时,应包括一级搜索、C1、C2 和 C3,但 P1 不会是搜索的一部分。 一级搜索可用于枚举对象的所有子级。 事实上,在某些 ADSI 提供程序中,IADsContainer 枚举转换为一级搜索。

子树

子树搜索(也称为深度搜索)包括基本对象下的所有对象,不包括基本对象本身。 此搜索可能会生成指向其他服务器的引荐。 此搜索具有最大的范围,可能会返回大型结果集。 如果可能,请搜索至少一个索引属性并设置引荐设置(有关详细信息,请参阅 性能和处理大型结果集),以满足搜索要求。 此外,还建议异步执行子树搜索的结果并进行分页,以减少服务器开销和网络效率。 子树搜索通常用于搜索给定范围的对象。 例如,搜索帐户将在 30 天内或更少过期的所有用户。