HOWTO: 解决 Windows DISM error ID3 0x80070003 故障
HOWTO: 解决 Windows DISM error ID3 0x80070003 故障
DISM error ID3 的故障描述,自定义的 Windows 7 标准化系统映像测试正常,封装后在测试环境中部署时发现在 offline mode 下使用 DISM 对系统进行管理时操作失败,如下图所示 DISM 未能找到有效的 Windows 目录,但是当前系统路径确实是有效的,本以为是封装前的系统出现了异常,也反复进行了原始映像的测试,并对当前系统进行了检查并未发现有什么可疑的地方,无奈只能重点排查 DISM 日志!
在对 dism.log 文件进行了分析后,发现了详细的报错信息,DISM 在对脱机映像执行操作时发生了错误,“DISM OS Provider: PID=1420 Failed to mount the remote registry...(hr:0x80070003)”!复查系统映像创建中的配置修改以及后续部署时无人应答文件的设置,可算找到了线索在应答文件中对用户配置文件进行了重定向,该设置会将 Users 目录移动到其他分区,这就导致“All Users” 和“Default”目录也被移动,而 Default 目录包含默认的注册表数据文件(NTUSER.DAT),当 DISM 对脱机映像管理时会去 Mount 这个注册表数据文件,所以最终导致操作失败。
而要解决这个问题的办法还是相当简单的,就是在系统所在分区创建一个相同的目录结构(C:\Users\Default\), 并将 Windows 安装源(Install.wim)中的 NTUSER.DAT 文件拷贝过去即可。在微软官方的知识库(KB2293874)中确认了这是一个已知的问题。
随后 gOxiA 在 Windows 10 上也重现了这个故障问题,dism.log 中记录的错误提示稍有区别,但意思完全相同,所以解决方法一致。为什么时隔7年这个问题仍旧没有解决,恐怕也只有产品组的人员知道!不过也完全可以理解,在企业环境中要重定向用户配置文件目录通常会使用组策略进行设置,此法不会移动系统级的目录;而直接通过应答文件的做法恐怕也是极为罕见的场景需求。
[Tips] HOWTO: 解决 Windows Update 的 0x80070422 典型故障
一台 Windows 10 计算机,通过 Windows 更新独立安装程序手工安装 MSU 更新包,在安装过程中出现错误提示“安装程序遇到错误: 0x80070422”,使用 Windows 更新功能执行在线检查也一样提示“0x80070422”故障。
0x80070422 其实是非常典型的简单故障,错误提示页面下的中文解释已经非常到位,即相关的服务无法启动,通常造成服务无法启动的原因就是服务被禁用掉,用户只需要通过services.msc启动服务管理器将 Windows Update 服务改为手工,再次执行安装程序即可解决问题。
如果服务启动失败,可以通过“依存关系”对当前服务依赖的组件进行基础检查。另外,gOxiA 不建议在 Windows 10 上禁用 Windows Update 服务,因为即使要手工安装 Windows 更新补丁包,也需要启动 Windows Update 服务;此外,Windows 激活时同样依赖 Windows Update 服务。
最后分享一篇资料非常有价值,便于我们快速诊断错误代码代表的原因。
HOWTO: 通过预先配置 TrustedImageIdentifier 以加速 Windows 10 黄金映像
HOWTO: 通过预先配置 TrustedImageIdentifier 以加速 Windows 10 黄金映像
Windows 10 应答选项中包含一个参数 - "TrustedImageIdentifier",位于 "amd64_Security-Malware-Windows-Defender_neutral"下,利用这个参数设置可以加速 Windows 10 黄金映像的运行速度,即在应答文件中的初始化阶段添加一个 GUID 值,告知 Windows Defender 该系统映像是安全的,这样 Windows Defender 便不会对系统进行扫描。
使用和维护 Windows Defender 的 IT 人员应该了解,因为 Windows Defender 在初始化的系统上会对系统主要文件进行扫描,以确保文件安全,如果没有单独执行一次完整的扫描,便会在后台进行调度,这样一来便会影响系统的运行速度,所以这就是为什么全新安装的系统在期初运行时会感觉慢的原因。
要预先配置“TrustedImageIdentifier”需要进行两个步骤,在应答文件中添加 TrustedImageIdentifier 对应的 GUID 值,并为当前参考映像环境的注册表指定位置添加对应的 GUID 值。为此我们执行如下步骤:
第一步,使用 Windows System Image Manager(该工具位于 WindowsADK 中)先创建或修改 Windows 安装应答文件,在 Windows 编录下的 Components 中找到“amd64_Security-Malware-Windows-Defender_10.0.14393.0_neutral”,将其添加到应答文件的“4 specialize” 阶段,然后为 TrustedImageIdentifier 填入系统的 GUID 值。
第二步,在参考映像(即黄金映像)系统中打开注册表编辑器,定位至“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender”,并添加一个新的字符串,命名为“TrustedImageIdentifier”,其值为之前在应答文件中设置的 GUID。
完成上面的两个步骤就可以对黄金映像进行打包(Sysprep)以便于分发给最终用户。值得注意的是在修改注册表时管理员是没有修改权限的,所以需要先拿到所有权再进行修改;另外,如果很不幸你在分发部署黄金映像后发现该映像存在安全问题,那么可联系 Windows Ecosystem Engagement team 并提供映像的 GUID 值,这样微软会将这个不安全的 GUID 更新到 Windows Update 中,Windows Defender 在更新后会对当前系统执行完全扫描。
最后提供两篇微软官方的参考资料:
TrustedImageIdentifier:
https://technet.microsoft.com/en-us/library/hh825450.aspx
Configure a Trusted Image Identifier for Windows Defender: