天天动画片 > 八卦谈 > 教你如何制作原生态PE(微软官方boot.wim开Explorer教程)

教你如何制作原生态PE(微软官方boot.wim开Explorer教程)

八卦谈 佚名 2022-12-03 14:28:04

 来源:系统总裁

原文链接

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

最终效果在这里

推荐使用USM的PE

接着教程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的一些相关命令。

需要的朋友们自己增加补丁和运行库!

本文标题:教你如何制作原生态PE(微软官方boot.wim开Explorer教程) - 八卦谈
本文地址:www.ttdhp.com/article/10404.html

天天动画片声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
扫码关注我们