本文介绍如何从损坏的 Active Directory 数据库或阻止计算机正常模式下启动的类似问题进行恢复。
适用于: Windows Server 2003原始 KB 数: 258062
总结
本文将引导你完成一系列有助于诊断目录服务原因 无法启动 系统错误的步骤。 这些步骤可能包括:
- 验证 Active Directory 目录服务文件是否存在。
- 验证文件系统权限是否正确。
- 检查 Active Directory 数据库的完整性。
- 执行语义数据库分析。
- 修复 Active Directory 数据库。
- 删除并重新创建 Active Directory 数据库。
本文还介绍如何使用 Ntdsutil 或 Esentutl 对 Active Directory 数据库执行丢失修复。 由于丢失修复会删除数据并可能带来新问题,因此,仅当它是唯一可用的选项时,才会执行丢失修复。
现象
启动域控制器时,屏幕可能为空,可能会收到以下错误消息:
LSASS.EXE - 系统错误,安全帐户管理器初始化失败,因为出现以下错误:目录服务无法启动。 错误状态0xc00002e1。
请单击“确定”以关闭此系统并重新启动到目录服务还原模式,请检查事件日志以了解更多详细信息。
此外,以下事件 ID 消息可能显示在事件日志中:
事件 ID:700 说明:“NTDS (260) 联机碎片整理开始对数据库 NTDS 进行传递。DIT。” 事件 ID:701 说明:“NTDS (268) 联机碎片整理已完成数据库 'C:\WINNT\NTDS\ntds.dit' 的完整传递。 事件 ID:101 说明:“NTDS(260)数据库引擎已停止。 事件 ID:1004 说明:“目录已成功关闭。 事件 ID:1168 说明:“错误:1032(fffffbf8)已发生。 (内部 ID 4042b)。 请联系Microsoft产品支持服务以获取帮助。 事件 ID: 1103 说明:“无法初始化 Windows 目录服务数据库并返回错误 1032。 无法恢复的错误,目录无法继续。
原因
之所以出现此问题,是因为以下一个或多个条件为 true:
- 驱动器根目录的 NTFS 文件系统权限太严格。
- NTDS 文件夹中的 NTFS 文件系统权限过于严格。
- 包含 Active Directory 数据库的卷的驱动器号已更改。
- Active Directory 数据库 (Ntds.dit) 已损坏。
- NTDS 文件夹已压缩。
解决方法
若要解决该问题,请执行以下步骤:
-
重新启动域控制器。
-
出现 BIOS 信息时,按 F8。
-
选择 “目录服务还原模式”,然后按 Enter。
-
使用目录服务还原模式密码登录。
-
单击“开始”,选择“运行”,在“打开”框中键入 cmd,然后单击“确定”。**
-
在命令提示符下,键入 ntdsutil 文件信息。
将显示类似于以下内容的输出:
驱动器信息:
C:\ NTFS (固定驱动器) 免费(533.3 Mb) 总计(4.1 Gb)
DS 路径信息:
数据库: C:\WINDOWS\NTDS\ntds.dit - 10.1 Mb Backup dir : C:\WINDOWS\NTDS\dsadata.bak Working dir: C:\WINDOWS\NTDS Log dir : C:\WINDOWS\NTDS - 42.1 Mb 总 temp.edb - 2.1 Mb res2.log - 10.0 Mb res1.log - 10.0 Mb edb00001.log - 10.0 Mb edb.log - 10.0 Mb
注意
此输出中包含的文件位置也位于以下注册表子项中:`HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NTDS\Parameters`
此键中的以下条目包含文件位置:
- 数据库备份路径
- 数据库日志文件路径
- DSA 工作目录
-
验证步骤 6 中输出中列出的文件是否存在。
-
验证 Ntdsutil 输出中的文件夹是否具有正确的权限。 下表中指定了正确的权限。
Windows Server 2003
帐户 权限 继承 系统 完全控制 此文件夹、子文件夹和文件 管理员 完全控制 此文件夹、子文件夹和文件 Creator Owner 完全控制 仅子文件夹和文件 Local Service 创建文件夹/追加数据 此文件夹和子文件夹 Windows 2000
帐户 权限 继承 管理员 完全控制 此文件夹、子文件夹和文件 系统 完全控制 此文件夹、子文件夹和文件 注意
此外,系统帐户需要对以下文件夹拥有完全控制权限:
- 包含 Ntds 文件夹的驱动器的根目录
- %WINDIR% 文件夹
在 Windows Server 2003 中,%WINDIR% 文件夹的默认位置为 C:\WINDOWS。 在 Windows 2000 中,%WINDIR% 文件夹的默认位置为 C:\WINNT。
-
检查 Active Directory 数据库的完整性。 为此,请在命令提示符处键入 ntdsutil 文件完整性 。
如果完整性检查指示没有错误,请在正常模式下重启域控制器。 如果完整性检查没有错误完成,请继续执行以下步骤。
-
执行语义数据库分析。 为此,请在命令提示符处键入以下命令,包括引号:
ntdsutil "sem d a" go -
如果语义数据库分析指示没有错误,请继续执行以下步骤。 如果分析报告任何错误,请在命令提示符处键入以下命令,包括引号:
ntdsutil "sem d a" "go f" -
按照以下Microsoft知识库文章中的步骤执行 Active Directory 数据库的脱机碎片整理:
232122对 Active Directory 数据库执行脱机碎片整理
-
如果在脱机碎片整理后仍然存在此问题,并且同一域中还有其他功能域控制器,请从服务器中删除 Active Directory,然后重新安装 Active Directory。 为此,请按照以下Microsoft知识库文章中的“解决方法”部分中的步骤操作:
使用 Active Directory 安装向导在 Windows Server 2003 和 Windows 2000 Server 中强制降级时,332199域控制器不会正常降级
注意
如果域控制器Microsoft Small Business Server 运行,则无法执行此步骤,因为无法将 Small Business Server 作为其他域控制器(副本)添加到现有域。 如果系统状态备份比逻辑删除生存期更新,请还原系统状态备份,而不是从服务器中删除 Active Directory。 默认情况下,逻辑删除生存期为 60 天。
-
如果没有系统状态备份可用,并且域中没有其他正常的域控制器,建议通过删除 Active Directory 并在服务器上重新安装 Active Directory 来重新生成域,并创建新域。 可以再次使用旧域名,也可以使用新的域名。 还可以通过在服务器上重新格式化和重新安装 Windows 来重新生成域。 但是,删除 Active Directory 会更快,并有效地删除损坏的 Active Directory 数据库。
如果没有系统状态备份可用,则域中没有其他正常的域控制器,并且必须让域控制器立即工作,使用 Ntdsutil 或 Esentutl 执行丢失修复。
注意
在 Ntdsutil 或 Esentutl 用于从 Active Directory 数据库损坏中恢复之后,Microsoft不支持域控制器。 如果执行此类修复,则必须重新生成域控制器,以便 Active Directory 处于受支持的配置中。 Ntdsutil 中的修复命令使用 Esentutl 实用工具执行数据库的丢失修复。 此类修复修复通过从数据库中删除数据来修复损坏问题。 仅使用这种修复作为最后手段。
尽管域控制器可能在修复后启动并可能正常运行,但其状态不受支持,因为从数据库中删除的数据可能会导致在以后才会出现任何问题。 无法确定修复数据库时删除的数据。 修复后,必须尽快重新生成域,才能将 Active Directory 返回到受支持的配置。 如果仅使用本文中引用的脱机碎片整理或语义数据库分析方法,则之后无需重新生成域控制器。
-
在执行丢失修复之前,请联系Microsoft产品支持服务,确认你已查看所有可能的恢复选项,并验证数据库是否确实处于不可恢复状态。 有关Microsoft产品支持服务电话号码和有关支持成本的信息的完整列表,请访问以下Microsoft网站:
在基于 Windows 2000 Server 的域控制器上,使用 Ntdsutil 恢复 Active Directory 数据库。 为此,请在目录服务还原模式下的命令提示符处键入 ntdsutil 文件修复 。
若要对基于 Windows Server 2003 的域控制器执行丢失修复,请使用Esentutl.exe工具来恢复 Active Directory 数据库。 为此,请在基于 Windows Server 2003 的域控制器上的命令提示符处键入 esentutl /p 。
-
修复操作完成后,使用其他扩展名(如 .bak)重命名 NTDS 文件夹中.log文件,并尝试在正常模式下启动域控制器。
-
如果在修复后可以正常模式启动域控制器,请尽快将相关的 Active Directory 对象迁移到新林。 由于此丢失修复方法通过删除数据修复了损坏问题,因此可能会导致以后难以排查的问题。 修复后的第一次机会是,必须重新生成域,才能将 Active Directory 重新引入受支持的配置。
可以使用 Active Directory 迁移工具(ADMT)、Ldifde 或非Microsoft迁移工具迁移用户、计算机和组。 ADMT 可以迁移具有或不带安全标识符(SID)历史记录的用户帐户、计算机帐户和安全组。 ADMT 还会迁移用户配置文件。 若要在 Small Business Server 环境中使用 ADMT,请查看“从 Small Business Server 2000 或 Windows 2000 Server 迁移”白皮书。 若要获取此白皮书,请访问以下Microsoft网站:
从 Small Business Server 2000 或 Windows 2000 Server 迁移到 Windows Small Business Server 2003
可以使用 Ldifde 将许多类型的对象从损坏的域导出并导入到新域。 这些对象包括用户帐户、计算机帐户、安全组、组织单位、Active Directory 站点、子网和站点链接。 Ldifde 无法迁移 SID 历史记录。 Ldifde 是 Windows 2000 Server 和 Windows Server 2003 的一部分。
有关如何使用 Ldifde 的详细信息,请单击以下文章编号以查看Microsoft知识库中的文章:
237677 使用 Ldifde 将目录对象导入和导出到 Active Directory
可以使用组策略管理控制台(GPMC)将文件系统和组策略对象的 Active Directory 部分从损坏的域导出到新域。
若要获取 GPMC,请访问以下Microsoft网站:
有关如何使用 GPMC 迁移组策略对象的信息,请查看“使用 GPMC 跨域迁移 GPO”白皮书。 若要获取此白皮书,请访问以下Microsoft网站:
-
恢复后,评估当前的备份计划,以确保已足够频繁地计划系统状态备份。 至少每天或每次发生重大更改后计划系统状态备份。 系统状态备份必须包含所需的容错级别。 例如,不要将备份存储在与要备份的计算机相同的驱动器上。 尽可能使用多个域控制器来避免单一故障点。 将备份存储在场外位置,以便站点灾难(火灾、盗窃、洪水、计算机盗窃)不会影响恢复能力。 以下Microsoft网站可以帮助你制定备份计划。
- Windows Server 2003: 创建备份和恢复计划
- Windows 2000: 第 14 章 - 数据备份和恢复
- Windows Small Business Server: Windows Server Essentials (Small Business Server)