MDT2013 Up1捕获系统镜像报错
2019-04-03江苏沈浩
■ 江苏 沈浩
编者按:笔者在实施MDT2013 Up1捕获Windows 7的安装好的镜像时报错,经过一次次尝试查明,是运行Sysprep次数过多引发的。
最近在实施MDT2013 Up1时遇到一个比较复杂的故障,其中走了部分弯路,在排查故障的网上的方案误导故障解决。现将故障及解决过程分享给大家。
故障现象
MDT2013 Up1安装环境,系统为Windows Server 2012 R2,ADK10版本为10.0.26624。在捕获Windows 7的安装好的镜像时报错,如图1所示。
图1 捕获Windows 7安装好的镜像时报错
报如下错误 :
Expected Image state is IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE,actual image state is IMAGE_STATE_COMPLETE, sysprep did not succeed.
错误提示:
FAILURE(6192):sysprep did not complete successfully,检查C:windowssystem32syspreppanthersetupact.log查找原因。
此文件太长就不再展示出来,其实最后对解决问题并无帮助。
故障分析
在Technet论坛上查找资料显示,只需要修改这个键值:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrent VersionSetupState =IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE,但实际效果却并没有什么用处,只能另找解决方法了。
网上相关资料中提示同类故障原因是Windows 10在捕获时发生同样故障是由于安装了Microsoft.CommsPhone的应用导致的,解决方法是使用PowerShell命令删除该绑定的应用。可是这里是在捕获Windows 7的镜像。
在网上又查到有可能需要关闭自动更新,防止相应补丁更新从注册表中删除此KEY:Computer HKEY_LOCAL_MACHINE SYSTEM Setup Upgrade。
从注册表中删除此REG_DWORD:Computer HKEY_LOCAL_MACHINE SYSTEM Setup Upgrade
从注册表设置此REG_DWORD:计算机 HKEY_LOCAL_MACHINE SYSTEM Setup Status SysprepStatus CleanupState [设置十六进制值:7]。
以管理员身份运行此命令:slmgr / dli。
可是同样处理也不行,仍然报同样的错误,这是什么原因呢?
从报错信息上来看,主要问题还是出在Sysprep上。笔者发现,使用裸机重新安装系统时,捕获镜像是正常的,故障消失。可是使用该捕获镜像安装系统后,打完补下重新封装捕获时又报同样错误。
经过不断尝试,笔者发现和安装软件和打补丁都无关。此时联想到以前的WDS安装Windows XP时,在第三Capture时会报错。这是不是还是因为Sysprep的次数限制呢?
解决方法
在网上不断查找有没有Windows 7 Sysprep突破3次限制的方法,终于在国外的一个小哥的博客找到了解决方法。
1.打开注册表“HKEY_LOCAL_MACHINESystemSetupStatusSysprep Status”,修改CleanupState键值为“2.(0x00000002)”,将GeneralizationState修改为 “7.(0x00000007)”。
2.打 开“HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionSoftwareProtection Platform.”,修改SkipRearm键值为“1.(0x00000001)”。
3.使用本机管理员权限运行命令“msdtc-uninstall”,运行后等待1-3分钟。重启后再运行“msdtc -install”,然后删除“windowssystem32sysprep”目录下的Panther文件夹。
做完这些操作再次进行镜像捕获故障消失。由此证明此故障是因为运行Sysprep不能超过3次的原因引起的。