本帖续上贴:https://pecmd.net/thread-81.htm
上文中说到,我们已经把ISO里的WIM文件解压到对应目录了,那现在正是我们进一步发挥的时候了。
去掉PESET
第一步,先使用注册表编辑器加载system文件,比如挂载成HKEY_LOCAL_MACHINE\ss
定位到计算机\HKEY_LOCAL_MACHINE\ss\Setup
在右边发现了什么?看看CmdLine下面的键值,这里就是我们的修改目标。
我们可以看到,WinPE初始化时,PECMD接管后直接加载了%Windir%\system32\SU.ini这个文件,这里我们赶紧打开su.ini看看究竟是什么内容。
看到没,就这么一行命令,简单干脆的去执行了PESET程序。
我们现在的目的是为了能自由修改启动配置,参与WinPE初始化的过程,所以这里可以直接将CmdLine下面的键值改成:
PECMD.EXE MAIN %Windir%\system32\pecmd.ini
这样,它就会去加载pecmd.ini中的内容了。
修改完毕后,我们卸载掉注册表HKEY_LOCAL_MACHINE\ss。
现在可以直接打开pecmd.ini文件了。你会发现,在WinPE的system32文件夹里已经存在pecmd.ini文件了,我们现在就直接打开它对他进行编辑吧,文件里面原有的内容直接删掉,system32下面的su.ini、peset.exe、peset.ini也可以删掉了。
我们需要实现初始化并进入Shell的基本功能,所以直接通过下面的代码搞定:
此处内容隐藏,登录后可见!立即登录 登录后请刷新页面!刷新
代码很简洁,但基本的功能是足够了,赶紧使用capture_32.cmd批处理打个包试试效果。注意打包之前,先把D:\MyWinPE\Win10PE_x86\Windows\System32\config下面产生的临时文件删除。
等待压缩WIM文件完成,将WIM文件放到D:\MyWinPE\ISO\boot\w10pe32,起名boot.wim,然后再用工具生成ISO,生成后使用虚拟机启动看看最终效果。
模拟BIOS启动时,我们会遇到这样的错误,导致无法继续启动。这时就需要补充一些文件了。
通过报错,我们大概知道缺少了什么文件:
挂载微软原版操作系统ISO镜像,直接用7-Zip打开sources\boot.wim,打开\1\Windows\Boot\,复制上面我们需要的两个文件到解压WIM之后的目录里。
这样一番操作后,我们发现终于能正常启动WinPE了:
但是你会发现每次启动到桌面时会出现explorer.exe的报错,下面开始解决它。
修复explorer报错
每次启动桌面时,都会出现explorer报错,虽然点击确定后可以继续使用,但强迫症表示必须要解决。
根源是software注册表文件确实部分节点的键值,需要从对应版本的原始software文件里提取复制。
第一步,先使用注册表编辑器加载原版系统里的software文件:需要事先将原版操作系统ISO镜像里的sources\install.wim\6\Windows\System32\config\software解压出来,挂载成HKEY_LOCAL_MACHINE\sf1
第二步,再挂载D:\MyWinPE\Win10PE_x86\Windows\System32\config\software到HKEY_LOCAL_MACHINE\sf2
然后执行命令:
执行完成后卸载HKEY_LOCAL_MACHINE\sf1、HKEY_LOCAL_MACHINE\sf2
最后再打包wim后生成ISO,虚拟机启动发现没有报错了:
后面还需要进一步清理注册表内容才能有更好的体验。
謝謝您! 太好用了!
現在不必一直被 Windows Defender 追殺那個 peset.exe 了。
另外,可不可以請您指點一下一步如何把explorer釘到taskbar上,及如何整理 startmenu?
謝謝您!
PinUtil 固定到TaskBar和StartMenu实用程序:
http://wuyou.net/forum.php?mod=viewthread&tid=417456
thanks