本文提供了一种解决方案,用于解决将对象添加到 Active Directory 或从系统状态备份还原域控制器时发生的错误。
原始 KB 数: 839879
现象
本文适用于 Windows 2000 及所有更高版本。 尝试将新用户、组、计算机、邮箱、域控制器或其他对象添加到 Microsoft Windows Server 计算机上的 Active Directory 时,可能会收到以下错误消息:
无法创建对象,因为目录服务无法分配相对标识符。
从系统状态备份还原域控制器时,系统日志可能包含以下错误消息:
事件类型:Error
事件源:SAM 事件 Category:None
事件 ID:16650
帐户标识符分配器无法正确初始化。 记录数据包含导致失败的 NT 错误代码。 Windows 将重试初始化,直到它成功;直到那时,此域控制器上将拒绝帐户创建。 查找可能指示故障确切原因的其他 SAM 事件日志。
还可以将 Dcdiag 命令与详细开关结合使用来查找其他错误。 为此,请按照下列步骤进行操作:
- 单击“开始”,单击“运行”,在“打开”框中键入 cmd,然后单击“确定”。
- 在命令提示下,键入
DCdiag /v,然后按 Enter。
键入 Dcdiag /v时,可能会看到如下所示的错误消息:
开始测试:RidManager
* 域的可用 RID 池为 2355 到 1073741823
*
dc01.contoso.com是 RID 主控形状* 带 RID Master 的 DsBind 已成功
* rIDAllocationPool 为 1355 到 1854
* rIDNextRID:0 DS 已损坏数据:rIDPreviousAllocationPool 值无效
* rIDPreviousAllocationPool 为 0 到 0 未分配任何 rid -- 请检查事件日志。 .........................DC01 测试 RidManager 失败
警告:删除 rid 集引用。
ldap_search_sW CN=RID SetDEL:cfe0828c-8842-4cb1-a642-6d9991d0516d,CN=Deleted Objects,DC= contoso,DC= com 的 rid 信息失败,2:系统找不到指定的文件。
.........................DC01 测试 RidManager 失败
开始测试:RidManager
* 域的可用 RID 池为 3104 到 1073741823
警告:FSMO 角色所有者已删除。
*
dc01.contoso.com是 RID 主控形状* 带 RID Master 的 DsBind 已成功
警告:删除 rid 集引用。
ldap_search_sW CN=RID SetDEL:5a128cf2-f365-47bc-a883-8ff9561ff545,CN=Deleted Objects,DC=contoso,DC=com for rid info failed with 2: system cannot find the file specified. .........................DC01 测试 RidManager 失败
开始测试:KnowsOfRoleHolders
Role Rid 所有者 = CN=“NTDS 设置 DEL:fd615439-1ebb-4652-b16f-3f8517d25593”,CN=dc01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=contoso,DC=com Warning: CN=“NTDS 设置 DEL:fd615439-1ebb-4652-b16f-3f8517d25593”,CN=dc01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=contoso,DC=com 是 Rid 所有者,但已删除。
还可以在系统事件日志中收到其他错误,这些错误可以帮助你解决问题:
事件 ID:16647
事件源:SAM
说明:域控制器正在启动对新帐户标识符池的请求。
事件类型:错误
事件源:SAM 事件类别:None
事件 ID:16645
说明:分配了分配给此域控制器的最大帐户标识符。 域控制器未能获取新的标识符池。 原因可能是域控制器无法联系主域控制器。 在分配新池之前,此控制器上的帐户创建将失败。 域中可能存在网络或连接问题,或者主域控制器可能处于脱机状态或从域中丢失。 验证主域控制器是否正在运行并连接到域。
原因
此问题发生在以下方案之一中:
-
从备份还原相对 ID (RID) 主控形状时,它会尝试与其他域控制器同步,以验证没有其他 RID 主控形状联机。 但是,如果没有可用于同步的域控制器,或者复制不起作用,则同步过程将失败。
注意
如果域始终只包含一个域控制器,RID 主服务器将不会尝试与其他域控制器同步。 域控制器不知道任何其他域控制器。
-
RID 池已用尽,或者 Active Directory 中与 RID 分配相关的对象使用不正确的值或缺失。
解决方法
删除 Windows 中命名上下文的复制链接
在 Windows 2000 及更高版本中,可以还原第二个域控制器以完成初始同步。 如果无法还原第二个域控制器,则必须对不存在的域控制器执行元数据清理,或删除指向 Active Directory 命名上下文的复制链接。 如果以后计划还原其他域控制器,则必须删除复制链接,而不是执行元数据清理。
必须先使用 Repadmin 命令标识 objectGUID 值,然后才能删除 Active Directory 命名上下文的复制链接。 为此,请按照下列步骤进行操作:
- 单击“开始”,单击“运行”,在“打开”框中键入 cmd,然后单击“确定”。
- 在命令提示符下键入
repadmin /showreps。 你将看到如下所示的输出:
CN=Schema,CN=Configuration,DC=contoso,DC=comDefault-First-Site-Name\DC02 via RPC objectGuid: <GUID> Last attempt @ <DateTime> was successful.
CN=Configuration,DC=contoso,DC=com Default-First-Site-Name\DC02 via RPC objectGuid: <GUID> Last attempt @ <DateTime> was successful.
DC=contoso,DC=com Default-First-Site-Name\DC02 via RPC objectGuid: <GUID> Last attempt @ <DateTime> was successful.
-
键入
repadmin /delete以删除复制链接。 指定命名上下文和 objectGUID,如以下示例所示:repadmin /delete CN=Schema,CN=Configuration,DC=contoso,DC=com DC01 <GUID>._msdcs.contoso.com /localonly repadmin /delete CN=Configuration,DC=contoso,DC=com DC01 <GUID>._msdcs.contoso.com /localonly repadmin /delete DC=contoso,DC=com DC01 <GUID>._msdcs.contoso.com /localonly -
重启 RID 主计算机。 RID 主控形状将正确初始化。
删除域中所有其他域控制器的域控制器元数据
可以还原或连接第二个域控制器以完成初始同步。 如果无法添加第二个域控制器,则必须对不存在的域控制器执行元数据清理,以永久从域中删除它们,或删除指向 Active Directory 命名上下文的复制链接。 有关如何删除元数据的详细信息,请单击以下项目编号以查看“清理服务器元数据”一文 。
验证与 RID 分配相关的 Active Directory 对象是否有效
若要验证与 RID 分配相关的 Active Directory 对象是否有效,请执行以下步骤:
-
验证“每个人”组是否具有从网络用户权限访问此计算机。 可以在组策略对象编辑器的以下位置配置此设置:
Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment -
安装 Windows 2000 支持工具。 这些工具在 Windows 2000 和 Windows Server 2003 CD-ROM 上的支持文件夹中提供。 安装这些工具后,请启动
ADSI Edit。 为此,请按照下列步骤进行操作:- 单击“开始”,单击“运行”,在“打开”框中键入 mmc,然后单击“确定”。
- 在 Windows 2000 中,单击“控制台”,然后单击“添加/删除管理单元”。 在 Windows Server 2003 中,单击“文件”,然后单击“添加/删除管理单元”。
- 在**“添加/删除**”管理单元中,单击“添加**”、“ADSIEdit”**,然后单击“添加”。
- 单击“关闭”,然后单击“确定”。
-
在 MMC 中,右键单击 ADSIEdit,然后单击“连接到”。
-
在**“连接设置”中的“连接点”下**,单击“选择已知命名上下文”。 在下拉列表中,单击 域,然后单击“ 确定”。
-
展开 域,然后展开域的可分辨名称。 例如,展开 DC=contoso、DC=com。
-
展开 OU=域控制器。
-
右键单击要检查的域控制器,然后单击“ 属性”。
-
单击“选择要查看的属性”菜单,然后单击 userAccountControl。
-
验证 userAccountControl** 的值**是否为 532480。 若要更改 userAccountControl 值,请单击“域控制器属性”对话框上的“ 编辑 ”。
-
在“整数属性编辑器**”中**,在“值**”字段中键入 532480**,然后单击“确定”。
验证 RID 主服务器是否正在与另一个域控制器一起复制
如果新升级的域控制器生成事件 16650,则域控制器可能已从非 RID 主服务器的另一个域控制器获取复制信息。 升级期间,将修改新域控制器的计算机帐户。 如果这些更改未复制到保留 RID 主角色的域控制器,当新升级的域控制器尝试获取 RID 池时,请求将失败。
若要验证 RID 主服务器是否正在复制至少一个其直接合作伙伴,请执行以下步骤:
-
验证 CN=RID Set 对象是否存在。
当域控制器在左窗格中的 OU=域控制器下选择时,CN=RID Set 对象位于 ADSI 编辑的右窗格中。
如果不存在 CN=RID Set 对象,则必须降级该域控制器,然后再次升级该对象以创建该对象。
-
如果存在 CN=RID Set 对象,请确保域控制器的计算机帐户对象上的 rIDSetReferences 属性指向 RID Set 对象的可分辨名称**,如以下示例所示:CN=RID Set、CN=DC01、OU=域控制器、CN=contoso、DC=local**
如果 rIDSetReferences 属性不指向 RID Set** 对象的可分辨名称**,请联系Microsoft产品支持服务以获取详细信息。
Status
此行为是特意这样设计的。
参考
822053错误消息:“Windows 无法创建对象,因为目录服务无法分配相对标识符”