一年多之前开始给公司封装Win10系统,便于统一给公司电脑初始化携带各类软件的系统,致力于装完既能够开发的状态。那时候最新的版本是Win10 1703版本,天然就以他为母盘,而后结合Vmware、Easy Sysprep、万能驱动 v7来进行封装工做,封装教程能够自行去IT天空搜索。 一开始很顺利的安装好 Win0 1703和各类开发软件,而且顺利的使用Easy Sysprep封装了零云专用Win10.wim,大概有20多GB。最后也顺利的给公司的新电脑统一安装了系统。php
没过多久微软更新了Win10秋季创意版,微软如今的套路是每一年4月和10月各作一个大版本更新,分别叫作好比170三、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的快照功能)最后暂时放弃了。 参考过的连接各类脚本不限于:git
https://github.com/10se1ucgo/DisableWinTracking/issues/48数据库
甚至于无IT天空发帖求出https://www.itsk.com/forum.php?mod=viewthread&tid=387479&page=1#pid10926540 然而并无用。搁置了一段时间。windows
今天眼看Win10 升级到1803了,心想说不定这回微软修复了这个问题呢,因而又将Vmware里的1703直接升级到1803。说实话升级的缘由是1803多了一个微软学习iOS的UI特性,导航栏支持高斯模糊。升级完照例在此用Easy Sysprep封装,仍是报半年前一样的错误???难道是Easy Sysprep版本太老了,去官网看看问问,好像并无人有问题。看来仍是Win10的问题,看了错误日志仍是去年一样的错误,再一次无数次尝试谷歌百度,各类帖子的回复逐渐变多了,通过几个月的总结,帖子内容大概是这样的:app
一、首先好多人遇到一样的问题都在抱怨微软模块化
二、微软的官方论坛也有官方员工在回复解决办法相似Get-AppxPackage,而且坚持认为有用,通过广大网友和我反复验证确实没有用工具
三、有人贴出来微软官方文档说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重置。赶忙又试了一下,发现成功是成功了,真的能够封装了,并且封装的系统是好的,可是母盘系统的开始菜单却打不开了,连设置都打不开???难道不能删,又尝试回去改数据解决,失败了又回来尝试删文件并重置解决,最后在绝望之中竟然黎明的曙光到来了。直接说下步骤:
一、下载PsExec工具(这是一个提权工具,要否则没法访问StateRepository-Machine.srd数据库)
二、管理员权限打开CMD执行psexec -i -s cmd,会让CMD又SYSTEM高级权限
三、在Winddows里关闭StateRepository服务
四、在CMD里删掉StateRepository-Machine.srd
五、执行C:\Windows\System32\WSREST.exe
六、重启
七、到这里其实封装的问题已经解决了,可是留下一个后遗症,开始菜单失效
八、重启后再次执行 C:\Windows\System32\WSREST.exe 会打开Windows Stoe应用商店,随便找个应用安装
九、期间又加上Get-AppxPackage删除和重装命令,同时又使用腾讯电脑管家的仿Win7风格开始菜单点来点去
十、没过一下子开始菜单竟然回来了!!!!
回想这个问题的解决过程,心里真的是很崩溃的,多少次尝试,多少次绝望,还好今天解决了。写这篇帖子其实有如下几个目的:
一、给遇到一样问题的人一个参考
二、Windows写的真的不好,多是历史包袱太大了,系统又巨大,团队协做的难度很是大吧能够理解
三、但愿你们写程序时必定要严谨,各类业务操做该串联的就串联,不要给后来人留坑,不要像Windows那样不负责任,不过这也是Windows一向的做风,没有哪一个软件是能够卸载干净的,你要是安装了一个Vistual Studio这种宇宙IDE,这辈子都别想干净的卸载了,只能重装系统。。。。不过据说Windows搞了一个小组专门研究Windows模块化,组件化,但愿他们能早日成功吧,毕竟咱们零云早已经实现高度模块化、组件化了。
四、但愿你们在遇到问题是永不放弃,办法总比问题多。(这个问题多是我进入互联网行业遇到最坑解决时间最长的问题了)
零云https://www.lingyun.net 是一套国内领先的互联网积木式开发云平台,追求简单、高效、卓越。可轻松实现支持多终端的互联网产品快速搭建、部署、上线。系统功能采用模块化、组件化、插件化等开放化低耦合设计,应用商城拥有丰富的功能模块、插件、主题,便于用户灵活扩展和二次开发。