本文提供了域控制器就地升级在黑屏处挂起的问题的解决方法。
原始 KB 数: 2843034
现象
假设出现了下面这种情景:
- 你有一台运行 Windows Server 2008 R2 Server-Core 版的计算机
- 服务器核心托管域控制器角色
- 在 Server Core 上运行就地升级到 Windows Server 2012
在此方案中,Windows Server 2012 设置升级在纯黑屏幕上挂起,鼠标指针如下图所示。
注意
本文中所述的问题特定于启用了服务器核心的域控制器,这些域控制器已就地升级到 Windows Server 2012 服务器核心。 此条件不会发生在已就地升级到 Windows Server 2012 的 GUI 或完整 DC 上。
原因
当 Windows Server 2008 R2 服务器核心 DC 升级到 Windows Server 2012 时,不会安装NTDSA.DLL和NTDSAI.DLL文件。 这是通过调试和 OS 映像分析确认的。 启用了加载程序贴靠LSASS.EXE的 NTSD 调试会话显示以下序列,同时尝试加载NTDSA.DLL
023c:0240 @ 00048468 - LdrpLoadDll - ENTER: DLL 名称: C:\Windows\system32\ntdsa.dll
023c:0240 @ 00048468 - LdrpLoadDll - INFO: 加载 DLL C:\Windows\system32\ntdsa.dll
023c:0240 @ 00048468 - LdrpFindOrMapDll - ENTER: DLL 名称: C:\Windows\system32\ntdsa.dll
023c:0240 @ 00048468 - LdrpResolveDllName - ENTER: DLL 名称: C:\Windows\system32\ntdsa.dll
023c:0240 @ 00048468 - LdrpResolveDllName - RETURN: Status: 0xc0000135
023c:0240 @ 00048468 - LdrpResolveDllName - ENTER: DLL 名称: C:\Windows\system32\ntdsa.dll
023c:0240 @ 00048468 - LdrpResolveDllName - RETURN: Status: 0xc0000135
023c:0240 @ 00048468 - LdrpFindOrMapDll - RETURN: Status: 0xc0000135
023c:0240 @ 00048468 - LdrpLoadDll - RETURN: Status: 0xc0000135
023c:0240 @ 00048468 - LdrLoadDll - RETURN: Status: 0xc0000135
其中0xc0000135状态代码映射到:
Hex | Decimal | 符号 | 友好错误字符串 |
---|---|---|---|
0xc0000135 | -1073741515 | STATUS_DLL_NOT_FOUND | 由于找不到 %hs,此应用程序无法启动。 重新安装应用程序可能会修复此问题。 |
这些二进制文件作为“Active Directory 域服务”可选角色的一部分安装。 DirectoryServices-DomainController 角色默认处于禁用状态,并且未启用,因为 Windows Server 2008 R2 操作系统上没有具有该名称的角色。 由于可用 Windows Server 2012 清单中没有任何匹配之处,因此升级会挂起。
解决方法
若要解决服务器在升级时停滞的情况,请继续重新启动服务器,直到触发回退到以前的 OS 版本和状态。 在黑屏上永久挂起后,重新启动服务器两次。 安装程序将检测失败的升级尝试,并将系统回滚到以前的 OS 版本。
注意
在此过程中,不应遇到任何数据丢失。 在 OS 版本升级尝试之前正常运行的服务器核心 DC 应继续正常运行。
通过将“替换清单”添加到安装源文件,可以成功进行就地升级。 请联系Microsoft客户支持部门检索清单。 确保参考本文,以便代理可以免费向你提供清单文件。
以下是使用此清单升级服务器核心域控制器的步骤:
- 展开从 Microsoft 检索的 CAB 文件的内容,以获取清单文件“DirectoryServices-DomainController-ServerCoreUpg-Replacement.man”。
- 将 Windows Server 2012 安装 DVD 内容复制到硬盘文件夹,例如 d:\products\ws12。
- 创建文件夹 d:\products\ws12\sources\replacementmanifests。
- 将从Microsoft检索的清单文件放入新文件夹中。
- 使用步骤 2 中创建的服务器位置作为服务器升级的源。
解决方法
如果无法使用上述方法,则摆脱这种情况的解决方法:
在不同物理计算机或物理计算机上提升新的 Windows Server 2012 Server 核心 DC。 在新的物理或虚拟机上升级新的 Windows Server 2012 服务器核心 DC,而不是就地升级现有的 W2K8 R2 Server 核心 DC。 根据需要停用下层 W2K8 R2 服务器核心 DC。
在就地升级到 Windows Server 2012 之前,在 W2K8 R2 Server 核心计算机上删除 ADDS 角色。
详细信息
升级挂起并重置计算机时,Windows 启动加载程序默认为启动“Windows Server 2012”。 可以通过选择“Windows 安装程序回滚”启动选项来触发 Windows 启动加载程序中的回滚。 还可以使用默认设置启动计算机:
如果使用“Windows Server 2012”启动选项,安装程序将检测失败的就地升级,并自动触发回退到以前的 OS 版本。
注意
本文中描述的屏幕截图的大小和纵横比已针对简洁性进行了修改。
在倒退后,Internet Explorer 可能会遇到问题:
从iernonce.dll开始出现问题
找不到指定的模块。
数据收集
如果需要 Microsoft 支持方面的帮助,建议按照使用 TSS 针对与部署相关的问题收集信息中所述的步骤收集信息。