重定向 Active Directory 域中的用户和计算机容器

可以使用 redirusr 和 redircmp 重定向由早期版本 API 创建的用户、计算机和组帐户。 因此,它们放入管理员指定的组织单位(OU)容器中。

原始 KB 数: 324949

总结

在 Active Directory 域的默认安装中,用户、计算机和组帐户放置在 CN=objectclass 容器中,而不是更理想的 OU 类容器。 同样,使用早期版本的 API 创建的帐户将放入 CN=Users 和 CN=计算机容器中。

重要

某些应用程序需要特定的安全主体位于默认容器中,例如 CN=Users 或 CN=Computers。 在将应用程序移出 CN=users 和 CN=computes 容器之前,请验证应用程序是否具有此类依赖项。

详细信息

由早期版本 API 创建的用户、计算机和组将对象放置在 WellKnownObjects 属性中指定的 DN 路径中。 WellKnownObjects 属性位于域 NC 头中。 下面的代码示例显示了来自 CONTOSO.COM 域 NC 头的 WellKnownObjects 属性中的相关路径。

Dn:DC=CONTOSO,DC=COM

wellKnownObjects (11):
B:32:6227F0AF1FC2410D8E3BB10615BB5B0F:CN=NTDS Quotas,DC=CONTOSO,DC=COM;
B:32:F4BE92A4C777485E878E9421D53087DB:CN=Microsoft,CN=Program Data,DC=CONTOSO,DC=COM;
B:32:09460C08AE1E4A4EA0F64AEE7DAA1E5A:CN=Program Data,DC=CONTOSO,DC=COM;
B:32:22B70C67D56E4EFB91E9300FCA3DC1AA:CN=ForeignSecurityPrincipals,DC=CONTOSO,DC=COM;
B:32:18E2EA80684F11D2B9AA00C04F79F805:CN=Deleted Objects,DC=CONTOSO,DC=COM;
B:32:2FBAC1870ADE11D297C400C04FD8D5CD:CN=Infrastructure,DC=CONTOSO,DC=COM;
B:32:AB8153B7768811D1ADED00C04FD8D5CD:CN=LostAndFound,DC=CONTOSO,DC=COM;
B:32:AB1D30F3768811D1ADED00C04FD8D5CD:CN=System,DC=CONTOSO,DC=COM;
B:32:A361B2FFFFD211D1AA4B00C04FD7D83A:OU=Domain Controllers,DC=CONTOSO,DC=COM;
B:32:AA312825768811D1ADED00C04FD8D5CD:CN=Computers,DC=CONTOSO,DC=COM;
B:32:A9D1CA15768811D1ADED00C04FD8D5CD:CN=Users,DC=GPN,DC=COM;

例如,以下操作使用早期版本的 API,这些 API 依赖于 WellKnownObjects 属性中定义的路径:

  • 域加入 UI
  • NET COMPUTER
  • NET GROUP
  • NET USER
  • NETDOM ADD,其中 /ou 命令未指定或不受支持

出于多种原因,使用户、计算机和安全组的默认容器成为 OU 很有帮助,包括:

  • 组策略可以应用于 OU 容器,但不能应用于 CN 类容器,其中默认放置安全主体。

  • 最佳做法是将安全主体排列到反映组织结构、地理布局或管理模型的 OU 层次结构中。

如果要重定向 CN=Users 和 CN=Computers 文件夹,请注意以下问题:

  • 目标域必须配置为在 Windows Server 2003 域功能级别或更高版本中运行。 对于 Windows Server 2003 域功能级别,这意味着:

    • Windows Server 2003 ADPREP /FORESTPREP 或更高版本
    • Windows Server 2003 ADPREP /DOMAINPREP 或更高版本
    • 目标域中的所有域控制器都必须运行 Windows Server 2003 或更高版本。
    • 必须启用 Windows Server 2003 域功能级别或更高版本。
  • 与 CN=USERS 和 CN=COMPUTERS 不同,OU 容器受到特权用户帐户(包括管理员)的意外删除。

    CN=USERS 和 CN=COMPUTERS 容器是系统保护的对象,无法且不能删除这些对象以实现向后兼容性。 但可以重命名它们。 组织单位受管理员意外删除树的约束。

    Windows Server 2008 和较新版本的 Active Directory 用户和计算机 管理单元功能“保护对象免受意外删除”复选框的影响,你可以在创建新 OU 容器时选择该复选框。 还可以在现有 OU 容器的“属性”对话框的“对象”选项卡上选择它。

  • 重定向 CN=USERS 会影响新用户、组和信任用户帐户的默认位置。 信任用户帐户隐藏在大多数 UI 管理工具中,但你可以在 LDIFDE 和 LDP 等工具中显示和移动它们。 帐户的 CN 是 <下层域名>$,例如“contoso$”。

  • 如果遇到 Exchange Server Active Directory 准备失败,请确保运行最新的累积更新和安全更新。

将 CN=Users 重定向到管理员指定的 OU

  1. 使用正在重定向 CN=Users 容器的域中的域管理员凭据登录。

  2. 在Active Directory 用户和计算机管理单元(Dsa.msc)或域和信任(Domains.msc)管理单元(Domains.msc)管理单元中将域转换为 Windows Server 2003 域功能级别或更新级别。 有关提高域功能级别的详细信息,请参阅 如何提高域和林功能级别

  3. 如果所需的 OU 容器不存在,则创建希望使用早期版本 API 创建的用户和组所在的 OU 容器。

  4. 使用以下语法在命令提示符处运行 Redirusr.exe 。 在命令中, container-dn 是 OU 的可分辨名称,将成为新创建的用户和组对象(由下层 API 创建)的默认位置:

    c:\windows\system32\redirusr container-dn
    

    Redirusr 安装在 %SystemRoot%\System32 基于 Windows Server 2003 或较新的计算机上的文件夹中。 例如,若要将使用下层 API(例如 Net User)创建的用户的默认位置更改为域中的 OU=MYUsers OU 容器 CONTOSO.COM ,请使用以下语法:

    c:\windows\system32>redirusr ou=myusers,DC=contoso,dc=com

    注意

    运行 Redirusr.exe以将 CN=Users 容器重定向到管理员指定的 OU 时,CN=Users 容器将不再是受保护的对象。 这意味着用户容器现在可以移动、删除或重命名。 如果使用 ADSIEDIT 查看 CN=Users 容器上的属性,则会看到 systemflags 属性已从 -1946157056 更改为 0。 这是设计的结果。

    若要删除容器,必须将默认用户和组移到其他 OU 和容器,以及信任用户帐户。 可以使用 LDIFDE 和 LDP 等工具显示和移动这些信任帐户。 我们建议保持容器不变,并保留默认帐户,以便保持一致性。

将 CN=计算机重定向到管理员指定的 OU

  1. 使用正在重定向 CN=computers 容器的域中的域管理员凭据登录。

  2. 在Active Directory 用户和计算机管理单元(Dsa.msc)或域和信任(Domains.msc)管理单元中将域转换为 Windows Server 2003 域。 有关提高域功能级别的详细信息,请参阅 如何提高域和林功能级别

  3. 如果所需的 OU 容器不存在,则创建希望使用早期版本 API 创建的计算机所在的 OU 容器。

  4. 使用以下语法在命令提示符处运行 Redircmp.exe 。 在命令中, container-dn 是 OU 的可分辨名称,该名称将成为由下层 API 创建的新创建的计算机对象的默认位置:

    redircmp container-dn
    

    Redircmp.exe 安装在 %Systemroot%\System32 Windows Server 2003 或更高版本的文件夹中。 若要将使用早期版本 API(如 Net Computer)创建的计算机的默认位置更改为 CONTOSO.COM 域中的 OU=MyComputers 容器,请使用以下语法:

    C:\windows\system32>redircmp ou=mycomputers,DC=contoso,dc=com
    

    注意

    运行 Redircmp.exe 以将 CN=Computers 容器重定向到管理员指定的 OU 时,CN=Computers 容器将不再是受保护的对象。 这意味着现在可以移动、删除或重命名计算机容器。 如果使用 ADSIEDIT 查看 CN=Computers 容器上的属性,则会看到 systemflags 属性已从 -1946157056 更改为 0。 这是设计的结果。

错误消息说明

下面是在某些情况下发生的错误消息。

PDC 脱机时收到的错误消息

Redircmp 和 Redirusr 更改主域控制器 (PDC) 上的 wellKnownObjects 属性。 如果正在更改的域的 PDC 处于脱机状态或不可访问状态,则会收到以下错误消息。

  • 错误消息 1:

    C:>redirusr OU=userOU,DC=udc,dc=jkcertcontoso,dc=loc com

    错误,找不到当前域的主域控制器:指定的域不存在或无法联系。 重定向未成功。

  • 错误消息 2:

    C:>redircmp OU=computerOU,DC=contoso,dc=com DC=udc,dc=jkcert,dc=loc

    错误,找不到当前域的主域控制器:指定的域不存在或无法联系。 重定向未成功。

如果域功能级别不是 Windows Server 2003,你收到的错误消息

尝试在未转换为 Windows Server 2003 域功能级别的域中重定向用户或计算机 OU。 在这种情况下,你会收到以下错误消息:

  • 错误消息 1:

    C:>redirusr OU=usersou,DC=contoso,dc=comDC=company,DC=com

    错误,无法修改 wellKnownObjects 属性。 验证域的域功能级别是否至少为 Windows Server 2003:不愿意执行重定向未成功。

  • 错误消息 2:

    C:>redircmp ou=computersou,DC=contoso,dc=comdc=company,dc=com

    错误,无法修改 wellKnownObjects 属性。 验证域的域功能级别是否至少为 Windows Server 2003:不愿意执行

如果登录时未具有所需权限,则会收到的错误消息

如果尝试在目标域中使用不正确的凭据重定向用户或计算机 OU,可能会收到以下错误消息:

  • 错误消息 1

    C:>redircmp OU=computersou,DC=contoso,dc=comDC=company,DC=com

    错误,无法修改 wellKnownObjects 属性。 验证域的域功能级别是否至少为 Windows Server 2003:权限重定向不足未成功。

  • 错误消息 2:

    C:>redirusr OU=usersou,DC=contoso,dc=comDC=company,DC=com

    错误,无法修改 wellKnownObjects 属性。 验证域的域功能级别是否至少为 Windows Server 2003:权限重定向不足未成功。

重定向到不存在的 OU 时收到的错误消息

尝试将用户或计算机 OU 重定向到不存在的 OU。 在这种情况下,可能会收到以下错误消息:

  • 错误消息 1:

    C:>redircmp OU=nonexistantou,DC=contoso,dc=com dc=rendom,dc=com

    错误,无法修改 wellKnownObjects 属性。 验证域的域功能级别是否至少为 Windows Server 2003:没有此类对象重定向未成功。

  • 错误消息 2:

    C:>redirusr OU=nonexistantou,DC=contoso,dc=com DC=company,DC=com

    错误,无法修改 wellKnownObjects 属性。 验证域的域功能级别是否至少为 Windows Server 2003:没有此类对象重定向未成功。

重定向 CN=Users 时在 Exchange Server 2000 安装程序 /domainprep 中收到的错误消息

如果 Exchange Server 2000 和 Exchange Server 2003 setup /domainprep 失败,则会收到以下错误消息:

安装子组件域级权限时安装失败,错误代码为0x80072030)(请参阅安装日志以获取详细说明)。 可以取消安装或再次尝试失败的步骤。 (重试/取消)

以下数据显示在使用日志分析器分析的 Exchange Server 2000 安装程序日志中。 Exchange Server 2003 应类似。

[HH:MM:SS] Completed DomainPrep of Microsoft Exchange 2000 component
[HH:MM:SS] ScGetExchangeServerGroups (K:\admin\src\libs\exsetup\dsmisc.cxx:301) Error code 0X80072030 (8240): There is no such object on the server.
[HH:MM:SS] ScCreateExchangeServerGroups (K:\admin\src\libs\exsetup\dsmisc.cxx:373) Error code 0X80072030 (8240): There is no such object on the server.
[HH:MM:SS] CAtomPermissions::ScAddDSObjects (K:\admin\src\udog\exsetdata\components\domprep\a_permissions.cxx:144) Error code 0X80072030 (8240): There is no such object on the server.
[HH:MM:SS] mode = 'DomainPrep' (61966) CBaseAtom::ScSetup (K:\admin\src\udog\setupbase\basecomp\baseatom.cxx:775) Error code 0X80072030 (8240): There is no such object on the server.
[HH:MM:SS] Setup encountered an error during Microsoft Exchange Domain Preparation of DomainPrep component task. CBaseComponent::ScSetup (K:\admin\src\udog\setupbase\basecomp\basecomp.cxx:1031) Error code 0X80072030 (8240): There is no such object on the server.
[HH:MM:SS] CBaseComponent::ScSetup (K:\admin\src\udog\setupbase\basecomp\basecomp.cxx:1099) Error code 0X80072030 (8240): There is no such object on the server.
[HH:MM:SS] CCompDomainPrep::ScSetup (K:\admin\src\udog\exsetdata\components\domprep\compdomprep.cxx:502) Error code 0X80072030 (8240): There is no such object on the server.
[HH:MM:SS] CComExchSetupComponent::Install (K:\admin\src\udog\BO\comboifaces.cxx:694) Error code 0X80072030 (8240): There is no such object on the server.
[HH:MM:SS] Setup completed