我正在 MDT 2013 U2 中构建 Windows 10 x64 参考映像。这是一个厚映像,因为我们需要安装几个大型软件,所以如果我们在部署过程中而不是在构建过程中安装软件,我们不需要花费数小时来部署映像。
因此构建映像需要 1 个多小时,而且我发现,如果 Windows 10 在线超过 1 小时,它就会开始下载和暂存内置应用程序的更新。正是这些更新导致 sysprep 失败。它可以在 setuperr.log 中找到:
2016-05-24 20:40:15,错误 SYSPRP 包 Microsoft.WindowsAlarms_10.1510.12020.0_x64__8wekyb3d8bbwe 已为用户安装,但未为所有用户配置。此软件包在 sysprep 映像中无法正常运行。 2016-05-24 20:40:15,错误 SYSPRP 无法删除当前用户的应用程序:0x80073cf2。 2016-05-24 20:40:15,RemoveAllApps 线程的错误 SYSPRP 退出代码为 0x3cf2。 2016-05-24 20:40:15,错误 [0x0f0082] SYSPRP ActionPlatform::LaunchModule:从 C:\Windows\System32\AppxSysprep.dll 执行“SysprepGeneralizeValidate”时发生故障;dwRet = 0x3cf2 2016-05-24 20:40:15,错误 SYSPRP SysprepSession::Validate:验证来自 C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml 的操作时出错;dwRet = 0x3cf2 2016-05-24 20:40:15,错误 SYSPRP RunPlatformActions:验证 SysprepSession 操作失败;dwRet = 0x3cf2 2016-05-24 20:40:15,错误 [0x0f0070] SYSPRP RunExternalDlls:运行注册表 sysprep DLL 时发生错误,停止 sysprep 执行。dwRet = 0x3cf2 2016-05-24 20:40:15,错误 [0x0f00d8] SYSPRP WinMain:在预验证 sysprep 概括内部提供程序时命中失败;小时 = 0x80073cf2
微软从 Windows 8 开始就已经承认了这个问题,但还没有提出一个永久的解决方案(距离 Windows 8 已经快 4 年了)。所以它仍然存在于 Windows 10(版本 1511 – 最新版本)中。它在这里描述:https: //support.microsoft.com/en-us/kb/2769827
建议的解决方案不是很有用:
要防止 Windows 应用商店更新应用程序,请在创建映像之前拔掉 Internet 连接或在审核模式下禁用自动更新
我需要使用 WSUS 完全更新我的参考图像。我还需要能够连接到 MDT 服务器以安装软件。因此,断开参考图像不是一种选择。
顺便说一句,我已经通过在构建过程中卸载所有应用程序来测试这个问题,所以没有应用程序可以暂存更新,然后 sysprep 运行良好。但我需要图像中的一些应用程序(即计算器、警报等)。所以这也不是一个选择。
禁用 Windows 更新服务还将禁用在构建期间运行的正常更新过程,因此这也不是解决方案。
如何禁用内置应用程序的自动更新?
我想出了一个解决方案:我通过使用 LGPO.exe 启用和导出本地 GPO 设置来自动化它:
然后我在状态恢复阶段应用它。我还为 GPOPackPath 添加了一个任务序列变量,因此如果以后需要,我可以处理更多的 GPOPack。