System.DirectoryServices.ActiveDirectory 方案

System.DirectoryServices.ActiveDirectory 命名空间用于简化执行与 Active Directory 域服务相关的常见任务应用程序和实用工具的开发过程。此命名空间是高级别 API,封装了与 Active Directory 域服务的结构、基于 Active Directory 域服务的网络和常见 Active Directory 域服务操作(例如复制和信任管理)有关的大量信息。System.DirectoryServices.ActiveDirectory 包括表示常见 Active Directory 域服务元素(例如林、域控制器、架构类、架构属性和复制计划)的各种对象。

在许多情况下,除了访问 System.DirectoryServices.ActiveDirectory 命名空间提供的资源外,无需再额外访问 Active Directory 域服务,即可执行许多任务。但是,对于某些高级任务,可能需要访问不是在 System.DirectoryServices.ActiveDirectory 命名空间中实现的对象的属性。为此,应用程序可以使用由许多 System.DirectoryServices.ActiveDirectory 对象实现的 GetDirectoryEntry 方法。通过该方法,应用程序可以检索对象的 DirectoryEntry。然后,应用程序可以由该类提供的方法和 System.DirectoryServices 中的其他相关类,检查或更新 DirectoryEntry。通过此方式,甚至那些需要高级 Active Directory 域服务功能的应用程序也可以利用 System.DirectoryServices.ActiveDirectory 中许多特定于对象的方法,这些方法可用于定位具体的目录对象,或者枚举某种类型的一系列目录对象,并且不要求开发人员精通 Active Directory 域服务架构的内部原理,而且还减少了程序代码的行数。实现 GetDirectoryEntry 方法的 System.DirectoryServices.ActiveDirectory 类包括:

另一个可能非常有用的 System.DirectoryServices 对象是 System.DirectoryServices.DirectorySearcher 对象,该对象搜索 Active Directory 域服务的子树。应用程序获取了 DirectoryEntry 对象后,就可以创建一个 DirectorySearcher 对象,该对象将搜索具有根 DirectoryEntry 的 Active Directory 域服务子树。应用程序还可以通过使用 DomainControllerGlobalCatalog 对象的 GetDirectorySearcher 方法,直接从这两个对象获取 System.DirectoryServices.DirectorySearcher 对象。

架构管理方案

应用程序无需完全清楚架构的结构,即可使用 System.DirectoryServices.ActiveDirectory 命名空间的各种类查询和更新架构。

ActiveDirectorySchema 类包含用于枚举类的方法,例如 FindAllClassesFindAllDefunctClasses。应用程序可以通过检查该枚举方法所定位的各 ActiveDirectorySchemaClass 对象的属性,标识相关的架构类。此时,应用程序可以生成有关该类的报告或更新所选 ActiveDirectorySchemaClass 对象的一个或多个属性。应用程序还可以使用该对象的 MandatoryPropertiesOptionalProperties 集合访问这组 ActiveDirectorySchemaProperty 对象,此组对象中包含有关该类的架构属性的详细信息,例如它在全局编录中是存在还是已失效。

同样,如果某个应用程序需要通过某些特性标识架构属性,则它可以从调用 ActiveDirectorySchema 类的 FindAllProperties 方法以枚举属性开始。然后,它可以检查返回的每个 ActiveDirectorySchemaProperty 对象的属性,根据需要修改或报告该对象的详细信息。

拓扑管理方案

应用程序可以使用 System.DirectoryServices.ActiveDirectory 命名空间中的类检查和修改 Active Directory 域服务安装的拓扑。

应用程序可以查看或更新 Active Directory 域服务对象中的信息:ForestDomainActiveDirectorySiteActiveDirectorySubnet。它还可以通过以下两种方式之一了解各对象之间的关系:

  • 使用这些返回一个或多个不同类型对象的对象的方法和属性。例如,要列出所有站点中的所有域,应用程序可以对 ActiveDirectorySiteCollection 进行枚举。应用程序可以检索 Domains 中每个 ActiveDirectorySiteCollectionActiveDirectorySite 集合,然后生成一个报告,为每个站点列出它所包含的所有域的名称。
  • 访问表示上述 Active Directory 域服务对象之间关系的其他对象。例如,ActiveDirectorySiteLink 对象的 Sites 属性检索在该 ActiveDirectorySiteLink 对象中包含的所有站点的集合。同样,ActiveDirectorySiteLinkBridge 对象的 SiteLinks 属性重试与该 ActiveDirectorySiteLinkBridge 关联的所有 ActiveDirectorySiteLink 对象的集合。

林或域信任管理方案

应用程序可以访问为 DomainForest 对象定义的所有信任的集合。在任一情况下,应用程序都可以使用任一对象的 GetAllTrusts 方法返回 TrustRelationshipInformationCollection 对象。应用程序然后可以循环访问该集合,以显示或更新它所包含的 TrustRelationshipInformation 对象。System.DirectoryServices.ActiveDirectory 命名空间还定义其他一些对象,例如 TrustDirectionTrustType,它们提供分别表示有效信任方向和信任类型的枚举值。

复制监视方案

System.DirectoryServices.ActiveDirectory 命名空间的另一个常见应用是监视 Active Directory 域服务复制。

System.DirectoryServices.ActiveDirectory 实现包含复制状态的多个类,例如:ReplicationConnectionReplicationCursorReplicationFailureReplicationOperationReplicationOperationInformation

例如,要报告在特定域控制器上定义的所有分区的复制状态,应用程序可以检查与每个分区关联的 ReplicationCursor 对象。应用程序可以使用 DomainController 对象的 FindOne 方法,定位相关的 DomainController。然后,它可以引用 DomainControllerPartitions 集合属性,枚举该域控制器上的所有分区。应用程序可以通过使用 GetReplicationCursors 方法获取该分区的所有 ReplicationCursor 对象的集合,并且对该 ReplicationCursor 对象集合进行枚举,显示诸如 SourceServerSourceInvocationIdLastSuccessfulSyncTime 之类的属性值。

另请参见

概念

System.DirectoryServices.ActiveDirectory 命名空间概述
System.DirectoryServices.ActiveDirectory 体系结构

Send comments about this topic to Microsoft.

版权所有 © 2008 Microsoft Corporation。保留所有权利。