属性范围检索

多值属性几乎可以包含任意数量的值。 在许多情况下,限制查询检索的值范围可能很有利,甚至有必要。

范围检索涉及在单个查询中请求有限数量的属性值。 请求的值数必须小于或等于服务器支持的最大值数。 若要减少查询必须联系服务器的次数,请求的值数应尽可能接近此最大值。 若要使应用程序能够对所有 Windows 服务器正常工作,应使用最多 1000 个。

属性查询的范围说明符需要以下形式:

range=<low range>-<high range>

其中,“<低范围>”是要检索的第一个属性值的从零开始的索引,“<高范围>”是要检索的最后一个属性值的从零开始的索引。 零用于“<低范围>”来指定第一个条目。 通配符 \ 可用于“<高范围>”来指定所有剩余条目。

下表列出了范围说明符的示例。

描述
range=0-* 检索所有属性值。 这受服务器施加的限制。
range=0-500 从第 1 个值检索到第 501 个值(含)。
range=2-3 检索第三个值和第四个值。
range=501-* 检索第 502 个值和所有剩余值。 这受服务器施加的限制。

 

有多种不同的方法来检索一系列属性值。 IADs.GetInfoEx 方法可用于自动化语言或C++。 IADs.GetInfoEx 方法是执行范围检索的首选方法。 有关使用 IADs.GetInfoEx 进行范围检索的详细信息,请参阅 使用 IADs::GetInfoEx 进行范围检索

如果使用自动化语言,ActiveX Directory 对象(ADO)可用于检索一系列属性值。 有关使用 ADO 进行范围检索的详细信息,请参阅 使用 ADO 进行范围检索

如果使用C++,可以使用 IDirectorySearchIDirectoryObject 接口来检索属性值范围。 有关使用 IDirectorySearchIDirectoryObject 进行范围检索的详细信息,请参阅 使用 IDirectorySearch 和 IDirectoryObject 进行范围检索。 应对范围为 Base(ADS_SCOPE_BASE)的查询执行这种类型的检索。