搜索 Active Directory

Active Directory 的一个重要功能是解决人员的数据查询以及计算机和服务的配置数据。 要编写高效的 Active Directory 查询,熟悉以下内容很有帮助:

  • 确定查询范围:客户端是否必须查找可能位于林中任何位置、或仅位于一个域内或给定组织单位 (OU) 内的对象的属性?
  • 确定查询深度:查询必须只搜索一个级别,还是可能会跨入其他 LDAP 目录?
  • 性能和处理大型结果集:客户端应如何有效处理潜在的大型结果集?
  • 确定最佳查询:哪类查询能提供最有效的结果? 开发人员应避免哪种类型的查询?
  • 了解查询语法:ADSI 既支持 RFC 2254 中记录的 LDAP 语法,也支持 SQL 的子集。
  • 接口选择:ADSI 既提供 OLE DB 支持,也提供名为 IDirectorySearch 的 C/C++ 接口。 由于 ADSI 适用于多个命名空间,因此可以使用这些接口来查询 Exchange 等其他命名空间以及 Active Directory。 由于 ActiveX 数据对象 (ADO) 是 OLE DB 基础上的一种简单的可编写脚本的数据访问对象模型,因此 OLE DB 接口非常适合 Visual Basic 程序员和网页脚本编写者使用。 Visual Studio 和 Office 应用程序中利用 ADO 和 OLE DB 的新数据访问功能现在可以访问 Active Directory 数据,访问方式与访问 SQL Server 等其他 OLE DB 提供商的数据相同。 不过,如果 C/C++ 开发人员必须执行简单的目录搜索,则 IDirectorySearch 接口可能比 OLE DB 接口更合适。

以下主题介绍了如何搜索 Active Directory,以确保应用程序根据客户端的要求发出最有效的查询: