您现在的位置是:首页 > Win10升级后执行系统封装(Sysprep)报错

Win10升级后执行系统封装(Sysprep)报错

默认 2019-05-01 01:34 2331人围观 来源:原创
Win10  
简介一年多以前开始给公司封装Win10系统,便于统一给公司电脑初始化携带各种软件的系统,致力于装完既可以开发的状态。那时候最新的版本是Win10 1703版本,自然就以他为母盘,然后结合Vmware、Easy Sysprep、万能驱动 v7来进行封装工作,封装

开始封装

一年多以前开始给公司封装Win10系统,便于统一给公司电脑初始化携带各种软件的系统,致力于装完既可以开发的状态。那时候最新的版本是Win10 1703版本,自然就以他为母盘,然后结合Vmware、Easy Sysprep、万能驱动 v7来进行封装工作,封装教程可以自行去IT天空搜索。 一开始很顺利的安装好 Win0 1703和各种开发软件,并且顺利的使用Easy Sysprep封装了零云专用Win10.wim,大概有20多GB。最后也顺利的给公司的新电脑统一安装了系统。

问题出现

没过多久微软更新了Win10秋季创意版,微软现在的套路是每年4月和10月各做一个大版本更新,分别叫做比如1703、1709。于是开始给Vmware里面的系统进行升级,愉快的升级好了,照例打开Easy Sysprep,没想到报错???难道微软不支持升级后的系统封装,按照微软之前的做法,如果从Win XP升级到Win 7这样大版本是不支持封装的,试了几次还是不行,于是百度谷歌,终于找到一个看错误原因的方法,打开C:\Windows\System32\Sysprep\Panther\setuperr.log查看即可,看到错误大致是说什么Systeprep fails sinceXXXXXX was not installed as all users......找到原因了好像是Win10说实话没啥用的APPX导致的,于是再谷歌找到一堆人遇到同样的问题,参考各种回帖尝试了几次没有效果,期间升级无数次Win10又恢复(利用VMware的快照功能)最后暂时放弃了。 参考过的链接各种脚本不限于:

https://social.technet.microsoft.com/Forums/windows/en-US/ac859ded-d68d-483c-a462-7f4710d963bf/remove-an-appx-app-from-deleted-user-account-so-i-can-sysprep?forum=win10itprosetup

https://github.com/10se1ucgo/DisableWinTracking/issues/48

https://github.com/W4RH4WK/Debloat-Windows-10/blob/47c2666ddd162a511a6517d74502d3dc8465a430/scripts/remove-default-apps.ps1#L64-L98

甚至于无IT天空发帖求出https://www.itsk.com/forum.php?mod=viewthread&tid=387479&page=1#pid10926540 然而并没有用。搁置了一段时间。

再度尝试解决

今天眼看Win10 升级到1803了,心想说不定这回微软修复了这个问题呢,于是又将Vmware里的1703直接升级到1803。说实话升级的原因是1803多了一个微软学习iOS的UI特性,导航栏支持高斯模糊。升级完照例在此用Easy Sysprep封装,还是报半年前同样的错误???难道是Easy Sysprep版本太老了,去官网看看问问,好像并没有人有问题。看来还是Win10的问题,看了错误日志还是去年同样的错误,再一次无数次尝试谷歌百度,各种帖子的回复逐渐变多了,经过几个月的总结,帖子内容大概是这样的:

1、首先好多人遇到同样的问题都在抱怨微软

2、微软的官方论坛也有官方员工在回复解决办法类似Get-AppxPackage,并且坚持认为有用,经过广大网友和我反复验证确实没有用

3、有人贴出来微软官方文档说Wind10升级后是支持封装的,不过要求最低版本是1607。看到这里我感觉希望很大了,大佬都说可以了那一定可以。

很多人在对微软的不负责任吐糟开始尝试自己解决,吐糟还包含类似M$ fix this Shit之类。一开始我觉得这些网友太过激进,万一不是微软问题是你们自己的问题呢。后来事实证明Windows写的真的是很Shit,不知道是不是临时工参与的编程工作。经过广大网友的探索,终于找到原因所在:如果你删除了一个win10的账户,win10并不会删掉与之相关的APPX安装记录,本来吧不删就不删吧,居然连卸载命令手动都无法删除,最后大家不得不尝试手动解决,有人发现这些信息(哪个用户安装了哪个APPX)保存在%ProgramData%\Microsoft\Windows\AppRepository\StateRepository-Machine.srd里面,而这个文件是一个Sqlite数据库文件,于是大家开始手动操作,直接改数据库还不行吗!!!貌似有人成功了,我也开始尝试去做,用Sql软件打开进行编辑,又尝试了无数次宣告失败,这个数据库的表设计复杂难懂,关键删除记录居然还报Tigger错误???为了删记录,甚至把Tigger删掉,删完记录后再执行回来,还是不行。最后发现有位网友激进的答案,说大家别改了,直接删掉这个文件,然后执行WSREST.exe重置。赶紧又试了一下,发现成功是成功了,真的可以封装了,而且封装的系统是好的,但是母盘系统的开始菜单却打不开了,连设置都打不开???难道不能删,又尝试回去改数据解决,失败了又回来尝试删文件并重置解决,最后在绝望之中居然黎明的曙光到来了。直接说下步骤:

1、下载PsExec工具(这是一个提权工具,要不然无法访问StateRepository-Machine.srd数据库)

2、管理员权限打开CMD执行psexec -i -s cmd,会让CMD又SYSTEM高级权限

3、在Winddows里关闭StateRepository服务

4、在CMD里删掉StateRepository-Machine.srd

5、执行C:\Windows\System32\WSREST.exe

6、重启

7、到这里其实封装的问题已经解决了,但是留下一个后遗症,开始菜单失效

8、重启后再次执行 C:\Windows\System32\WSREST.exe 会打开Windows Stoe应用商店,随便找个应用安装

9、期间又加上Get-AppxPackage删除和重装命令,同时又使用腾讯电脑管家的仿Win7风格开始菜单点来点去

10、没过一会儿开始菜单居然回来了!!!!

回想这个问题的解决过程,内心真的是很崩溃的,多少次尝试,多少次绝望,还好今天解决了。写这篇帖子其实有以下几个目的:

1、给遇到同样问题的人一个参考

2、Windows写的真的很差,可能是历史包袱太大了,系统又巨大,团队协作的难度非常大吧可以理解

3、希望大家写程序时一定要严谨,各种业务操作该串联的就串联,不要给后来人留坑,不要像Windows那样不负责任,不过这也是Windows一贯的作风,没有哪个软件是可以卸载干净的,你要是安装了一个Vistual Studio这种宇宙IDE,这辈子都别想干净的卸载了,只能重装系统。。。。不过听说Windows搞了一个小组专门研究Windows模块化,组件化,希望他们能早日成功吧,毕竟我们零云早已经实现高度模块化、组件化了。

4、希望大家在遇到问题是永不放弃,办法总比问题多。(这个问题可能是我进入互联网行业遇到最坑解决时间最长的问题了)

零云https://www.lingyun.net 是一套国内领先的互联网积木式开发云平台,追求简单、高效、卓越。可轻松实现支持多终端的互联网产品快速搭建、部署、上线。系统功能采用模块化、组件化、插件化等开放化低耦合设计,应用商城拥有丰富的功能模块、插件、主题,便于用户灵活扩展和二次开发。

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3cn0udci9ym88

文章评论