原文链接
1:https://www.sysceo.com/Article-article_info-id-961.html
2:https://www.sysceo.com/Article-article_info-id-1144.html
话不多说 正文开始!
首先准备工作,微软原版的win7x86的安装镜像ISO文件,不要打过补丁的,
用VMware虚拟机安装一个干净的win7x86。
为了图后面操作省事,开启administrator用户,并关闭UAC。
以上过程都略过,下面来实际操作。
这是一台安装好win7x86的VMware虚拟机。
另外我们还需要用到以下几个软件:
7-zipx86(我这里用的是16.04)
wimtool(我这里用的是1.30.2011.0501x86)
Registry Workshop(我这里用的是4.6.2)
这三个软件我会打包提供下载地址。
下面来做一些简单的准备工作,打开“计算机”
依次点击工具-文件夹选项
从上到下一次点击,此操作目的是显示系统隐藏文件
打开C:\Recovery目录,看到如下文件夹
(系统一定要母盘或原版)
这个子文件夹可能你的和我的名字不一样,不用理会,打开就行。
这个winre.wim文件就是我们要下手的地方了。
(当然有的人喜欢用原始镜像中的BOOT.WIM也一样,我这里是为了演示操作方便。)
首先我们把winre.wim复制黏贴备份一份。
用7-zip打开winre.wim,找到\windows\system32\winpeshl.ini文件,拖出来。
其原始内容如下图:
我们把它改成如下内容(注意winpeshl.ini默认是只读属性,要改成可写):
[LaunchApps]
wpeinit.exe
cmd.exe
解释一下这里代码含义:
[LaunchApps]执行多条命令的意思,一行一个。
wpeinit.exe是初始化PE的微软内部命令行工具,例如:初始化USB设备,初始化PNP设备,另外也可以初始化网络,开启DHCP服务等等,详细的请查看微软官方文档。
cmd.exe这里主要作为阻塞窗口。否则上面的命令执行完后,就自动重启了,这里也是为了方便调试使用。
修改好的winpeshl.ini再拖拽进去替换到WINRE.WIM里。
下面就来个简单的测试。重启虚拟机,狂按F8,
选择第一项“修复计算机”,也就是启动WINRE.WIM
我们看到了cmd窗口,可以尝试调用任务管理器看看。WINRE环境默认带taskmgr.exe支持
有个恢复环境,我们也可以试试
X:\sources\recovery\recenv.exe
这里只是演示一些东西,没有多大意思。
下面我们重启,在进入系统,想办法添加explorer.exe。
然后提供一个简单的比较成熟的方法。
按照我的步骤一步一步来,后面再总结。
从原版install.wim中提取SOFTWARE注册表,用7-zip打开原版系统的INSTALL.WIM
依次为(因为卷5是旗舰版,所以就用这个了):
\5\Windows\System32\config\SOFTWARE
拖拽到D盘根目录。
下面要修改一下SOFTWARE文件的所有权,一次按下列截图操作。
打开注册表编辑器,选中HKEY_LOCAL_MACHINE
右键点击SOF项
然后打开Registry Workshop
选中SOF,然后快捷键CTRL+F,
输入C:\
我们需要把C:\替换为X:\
我们需要把D:\替换为X:\
我们需要把$windows.~bt\替换为空(若没有则不用处理)
我们需要把Interactive User删除
下面就是搜索到的结果 (这里注意,程序一次性最多只能搜索处理1000个)
如果一次性没有处理完,就重复几次,直到没有结果为止)
上面搜索到的C:\只有一个项目,我们直接选中下面的结果项,右键选择替换
输入X:\并点击替换
下面搜索D:\
选中其中一条,然后快捷键CTRL+A,就全选了
然后点击右键选择替换,输入X:\
这里就是上面说的一次只能处理1000条信息了,需要重复操作几次。我总共处理了3次D:\才完成。
在这里我们搜索$windows.~bt\无结果,就不用处理
继续搜索Interactive User
如下图操作即可
处理完INSTALL.WIM中的SOFTWARE文件,我们关闭Registry Workshop软件
然后选中SOF,再一次点击 文件---卸载配置单元
下面我们来修改WINRE.WIM中的SOFTWARE文件
用7-zip打开WINRE.WIM,拖拽出\WINDOWS\SYSTEM32\CONFIG\SOFTWARE文件到C:\SOFTRWARE
用系统自带注册表程序挂载之,然后像修改INSTALL.WIM中的SOFTWARE文件一样修改一下所有权。并用Registry Workshop处理下,和前面一样
我们需要把C:\替换为X:\
我们需要把D:\替换为X:\
我们需要把$windows.~bt\替换为空(若没有则不用处理)
我们需要把Interactive User删除
如果没有的就不用处理
继续操作系统自带的注册表软件
选中SOF,点击导出
保存为D:\SOF.REG文件,后面要用到。
卸载WINRE.WIM的SOFTWARE文件
然后我们挂载处理过的INSTALL.WIM中的SOFTWARE文件,也就是前面的D:\SOFTWARE为SOF
然后我们找到D:\SOF.REG文件,双击选择是
最后我们要修改一个地方,恢复一下SHEL的键值
定位到HKEY_LOCAL_MACHINE\SOF\Microsoft\Windows NT\CurrentVersion\Winlogon
然后修改Shell的键值为explorer.exe
修改完之后就可以卸载SOF了
最终这个INSTALL.WIM中处理过的SOTWARE文件就是我们最终需要的SOFTWARE文件,也就是D:\SOFTWARE文件
我们把D:\SOFTWARE拖拽到WINRE.WIM中替换,重启测试一下。
还是比较顺利的。
下面就来添加explore.exe资源管理器
Windows\explorer.exe
Windows\zh-CN\explorer.exe.mui
把C:盘系统里的上面对应的文件拖入winre.wim对应目录,然后再重启测试
输入explorer.exe,提示缺少ExplorerFrame.dll
然后我们再补充如下文件
Windows\System32\ExplorerFrame.dll
Windows\System32\zh-CN\explorerframe.dll.mui
再重启测试
这次提示缺少mscories.dll、iedkcs32.dll
不过点击确认之后已经可以进入桌面了。
不过资源管理器是打不开的状态,提示“不支持此接口”。
这些后续处理工作,后面的教程中在慢慢讲解。
附录:
Win8在WINRE的基础上添加explorer.exe支持
Win8的处理上比win7还简单一些,不需要导出WINRE.WIM中的SOFTWARE为SOF.REG再导入INSTALL.WIM中的SOFTWARE。这一步是可以跳过的,直接使用INSTALL.WIM中的SOFTWARE处理之后即可使用。
这里需要注意的是,win8原生的explore.exe在PE下任务栏是不能使用的,而且桌面需要右键刷新一次才可以显示图标,这是Win8自身的问题,不用理会。老外写了一个DLL,可以让win8直接使用win7的explorer.exe,这样问题就解决了。需要的文件已经打包在下载地址里。
Windows\explorer.exe
Windows\zh-CN\explorer.exe.mui
Windows\System32\ExplorerFrame.dll
Windows\System32\zh-CN\explorerframe.dll.mui
使用默认的Win8 explorer截图
啥也没有。任务栏空白
换win7的explorer.exe之后
成功加载桌面。后续的处理工作以后慢慢再讲。
Win10在WINRE的基础上添加explorer.exe支持(这里以10240专业版为例,后面微软的Win10版本依赖文件列表不同,暂不做说明)
和win8出来起来基本一致,之后explore.exe支持文件列表稍有不同
Windows\explorer.exe
Windows\zh-CN\explorer.exe.mui
Windows\System32\ExplorerFrame.dll
Windows\System32\zh-CN\explorerframe.dll.mui
Windows\System32\dcomp.dll
Windows\System32\twinapi.dll
Windows\System32\zh-CN\ twinapi.dll.mui
最终效果在这里
接着教程1继续完善explorer.exe的支持。
还是先从Win7入手
加载explorer.exe提示缺少mscories.dll、iedkcs32.dll(iedkcs32.dll.mui)
我们还需要添加一些文件完善:
Windows\System32\actxprxy.dll(解决alt+e打开资源管理器提示“不支持此接口 ”)
为了解决打开资源管理器空白,还需要添加如下文件列表:
Windows\System32\comctl32.dll
Windows\System32\zh-CN\comctl32.dll.mui
Windows\System32\mscories.dll
Windows\System32\oledlg.dll
Windows\System32\zh-CN\oledlg.dll.mui
Windows\System32\shdocvw.dll
Windows\System32\zh-CN\shdocvw.dll.mui
Windows\System32\shellstyle.dll
Windows\System32\zh-CN\shellstyle.dll.mui
现在基本上explorer.exe的功能正常了。
不过我们常用的PE,大部分都习惯用pecmd.exe来接管系统,这样自定义或者维护起来接口也比较方便,也可以解决开始菜单关机重启无效的问题。
下面我们使用PECMD.EXE和PECMD.INI来接管PE,请注意下面几个步骤。
在正常系统中,我们编写好一个PECMD.INI配置文件和一个WINPESHL.INI的配置文件。
PECMD.INI最简单的写法如下:
DISP W1024 H768 B32
EXEC =!% SystemRoot %\System32\Winpeshl.exe
SHEL %SystemRoot%\EXPLORER.EXE
WINPESHL.INI最简单写法如下:
[LaunchApps]
wpeinit.exe
修改winre.wim中的SYSTEM注册表
修改\Setup\CmdLine注册表值为:
PECMD.EXE MAIN %SystemRoot%\System32\PECMD.INI
修改完注册表替换回去,再把PECMD.EXE、PECMD.INI、WINPESHL.INI替换进WINRE.WIM的SYSTEM32目录即可。试试启动效果。
下面这个弹错,就由大家自己研究解决了。
到此 你的pe做好了
附录:Win8pe的explorer完善
win8pe和win7pe基本差不多,只是win8pe后台多一个wallpaperhost.exe的进程。需要杀掉它。
在PECMD.INI中加上一行即可,修改后的pecmd.ini代码如下:
DISP W1024 H768 B32
EXEC =!% SystemRoot %\System32\Winpeshl.exe
KILL WallpaperHost.exe
SHEL %SystemRoot%\EXPLORER.EXE
Win10pe与Win8pe类似。
以后需要做一些特殊处理,或者程序添加修改等,可以简单的利用PECMD.INI接口来完善这些信息,不过需要自学PECMD的一些相关命令。
需要的朋友们自己增加补丁和运行库!
「艾尔登法环」梅琳娜手办开订 立体手办▪
万代「艾尔登法环」白狼战鬼手办开订 立体手办▪
「夏目友人帐」猫咪老师粘土人开订 立体手办▪
「五等分的新娘∬」中野三玖·白无垢版手办开订 立体手办▪
「海贼王」乌索普Q版手办开订 立体手办▪
良笑社「初音未来」新手办开订 立体手办▪
「黑岩射手DAWN FALL」死亡主宰手办开订 立体手办▪
「盾之勇者成名录」菲洛手办登场 立体手办▪
「魔法少女小圆」美树沙耶香手办开订 立体手办▪
「咒术回战」七海建人粘土人登场 立体手办▪
「五等分的新娘」中野二乃白无垢手办开订 立体手办▪
「为美好的世界献上祝福!」芸芸粘土人开订 立体手办▪
「公主连结 与你重逢」六星可可萝手办开订 立体手办▪
「女神异闻录5」Joker雨宫莲手办开订 立体手办▪
「间谍过家家」约尔・福杰粘土人登场 立体手办▪
「街角魔族 2丁目」吉田优子手办开订 立体手办▪
「火影忍者 疾风传」旗木卡卡西·暗部版粘土人登场 立体手办▪
「佐佐木与宫野」宫野由美粘土人开订 立体手办▪
「盾之勇者成名录」第2季拉芙塔莉雅手办开订 立体手办▪
「咒术回战」两面宿傩Q版坐姿手办开订 立体手办▪
「DATE·A·BULLET」时崎狂三手办开订 立体手办▪
「狂赌之渊××」早乙女芽亚里粘土人开订 立体手办▪
「魔道祖师」魏无羨粘土人开订 立体手办▪
「新·奥特曼」奥特曼手办现已开订 立体手办▪