使用 WKGUID 绑定到已知对象

容器可以有一个或多个重要的子对象,这些子对象可以重命名或移动。 跟踪这些子对象并为其生成正确的绑定字符串可能很困难,尤其是在重命名或移动这些子对象时。

为了支持对这些容器中的这些对象的重命名安全绑定,Active Directory 域服务具有两个属性:wellKnownObjects 和其他WellKnownObjects。 这些属性具有ADSTYPE_DN_WITH_BINARY的属性语法。 它们允许多个值,并在设置它们的容器中包含已知对象的 GUID/DN 元组。 Active Directory 服务器维护每个 wellKnownObjects 和 otherWellKnownObjects 条目的可分辨名称部分,以便它包含创建条目时指定的对象的当前可分辨名称。

可以在任何对象上设置和使用 otherWellKnownObjects 属性。

wellKnownObjects 属性用于域DNS 和配置容器。 wellKnownObjects 属性是仅系统属性,只能由操作系统修改。

domainDNS 容器具有以下已知对象:

  • 用户
  • 计算机
  • 系统
  • 域控制器
  • 基础结构
  • 已删除的对象
  • 丢失和发现

配置容器具有已知的对象:已删除的对象。

这些对象位于 Active Directory 域 服务中的每个 domainDNS 和配置容器中。

可以使用 WKGUID 绑定格式绑定到已知对象。 仅在ACTIVE DIRECTORY 域服务(即 LDAP 提供程序)中支持与 WKGUID 绑定。

重要

始终使用 WKGUID 绑定格式绑定到域和配置容器中所列的已知对象。 这可确保即使这些容器已移动或重命名,也可以绑定到这些容器。

 

WKGUID 绑定字符串格式如下所示:

LDAP://<servername>/<WKGUID=<XXXXX>,<container DN>>

“<服务器名称>”是目录服务器名称。 “<服务器名称>”是可选的。

“<XXXXX>”是表示已知对象的 GUID 十六进制值的字符串表示形式。 GUID 字符串在“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”窗体中指定,与 StringFromGUID2 函数生成的 GUID 字符串不同,该字符串采用“{XXXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}”格式。 有关详细信息和演示如何从 GUID 创建可绑定字符串的代码示例,请参阅 用于创建 GUID 的可绑定字符串表示形式的示例代码。

若要绑定到对象中的其他WellKnownObjects 中指定的对象,请将“<XXXXX>”指定为对象的已知对象 GUID 的绑定字符串形式。 有关详细信息,请参阅 读取对象的 objectGUID 和创建 GUID 的字符串表示形式。 有关在对象上设置 otherWellKnownObjects 属性的详细信息,请参阅启用与 otherWellKnownObjects 属性的 Rename-保险箱 绑定。

若要绑定到 domainDNS 或配置容器中 wellKnownObjects 中指定的对象,请将“<XXXXX>”指定为下表中列出的下列常量之一,如 Ntdsapi.h 中定义。

容器 GUID 标识符
用户 GUID_U标准版RS_CONTAINER_W
计算机 GUID_COMPUTRS_CONTAINER_W
系统 GUID_SYSTEMS_CONTAINER_W
域控制器 GUID_DOMAIN_CONTROLLERS_CONTAINER_W
基础结构 GUID_INFRASTRUCTURE_CONTAINER_W
已删除的对象 GUID_DELETED_OBJECTS_CONTAINER_W
丢失和发现 GUID_LOSTANDFOUND_CONTAINER_W

 

例如,若要绑定到域中的用户容器,请将GUID_U标准版RS_CONTAINER_W指定为“<XXXXX>”。

“<container DN>”是容器对象的可分辨名称,该对象在其 wellKnownObjects 属性中表示为值。 例如,若要绑定到域中的用户容器,请将域可分辨名称指定为“<容器 DN>”。

例如,若要绑定到域 Fabrikam.com 的用户容器,请使用以下绑定字符串。

LDAP://<WKGUID=a9d1ca15768811d1aded00c04fd8d5cd,dc=Fabrikam,dc=com>

有关详细信息和演示如何绑定到已知 GUID 的代码示例,请参阅 绑定到已知对象的示例代码。