为了准备 Windows 10 客户端进行镜像封装,使用 sysprep 来对客户端系统准备开箱即用的体验。
在执行sysprep后,出现如下图报错:
打开错误消息中提到的日志。您将在日志中看到类似的行:
"Error SYSPRP Package InputApp_1000.17134.1.0_neutral_neutral_cw5n1h2txyewy was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image."
解决方法:删除Win10应用
1、管理员启动powershell,并使用以下命令:
#import-module appx
#import-module dism
#Remove-AppxPackage -AllUser -Package <包名称>
栗子:根据上文的报错,要删除InputApp_1000.17134.1.0_neutral_neutral_cw5n1h2txyewy这个包,则键入如下PS命令
#Remove-AppxPackage -AllUser -Package InputApp_1000.17134.1.0_neutral_neutral_cw5n1h2txyewy
然而,尴尬出现了,产生如下报错
“Remove-AppxPackage : Removal failed. Please contact your software vendor.
Deployment Remove operation with target volume C: on Package InputApp_1000.17134.1.0_neutral_neutral_cw5n1h2txyewy
from: failed with error 0x80070032. See http://go.microsoft.com/fwlink/?LinkId=235160 for help diagnosing app
deployment issues.
At line:1 char:1
+ Remove-AppxPackage -AllUser -Package InputApp_1000.17134.1.0_neutral_ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Remove-AppxPackage], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.Windows.Appx.PackageManager.Comman
ds.RemoveAppxPackageCommand”
2、经过一番查找,这个报错的原因是:
因为这个包现在被保护("NonRemovable : True")。因此,您不能SYSPREP,因为无法删除这些包。所以必须取消"NonRemovable "字段。这实际上称为"IsInBox",它必须从"1"更改为"0"。恶心的,文件夹、数据库和文件都被系统保护,所以需要你跳过一些枷锁。
手动完成比较复杂,那么其实有大神已经开发了自动化脚本来实现解锁这些文件和保护。
3、接着需要继续闯关,想办法去解锁这些包:
终于找到一个大神的开发的脚本,可以批量执行解锁所有的包,
https://github.com/SoftSonic83/AppxDBEditor/
下载,执行cmd脚本得到下图所示:
选择M,即可自动解锁所有win10应用的NonRemovable属性
4、再删除那些在执行sysprep的时阻止封装的相关win10应用(具体是什么应用阻止,可在执行封装时的错误日志setupact.log中查看到)
#import-module appx
#import-module dism
#Remove-AppxPackage -AllUser -Package <包名称>
5、再次执行sysprep封装,即可顺利完成系统封装。