操作过程比较简单,适合老鸟。
制作过程中有一些名词,不懂的,请自行熟悉掌握,这里不对一些名词作详细阐述。
首先准备工作,微软原版的win7x86的安装镜像ISO文件,不要打过补丁的,
用VMware虚拟机安装一个干净的win7x86。
为了图后面操作省事,开启administrator用户,并关闭UAC。
以上过程都略过,下面来实际操作。
这是一台安装好win7x86的VMware虚拟机。
另外我们还需要用到以下几个软件:
7-zipx86(我这里用的是16.04)
wimtool(我这里用的是1.30.2011.0501x86)
Registry Workshop(我这里用的是4.6.2)
这三个软件我会打包提供下载地址。
下面来做一些简单的准备工作,打开“计算机”
按一下alt键盘出现红框中的菜单栏
依次点击“工具”----“文件夹选项”
从上到下一次点击,此操作目的是显示系统隐藏文件
打开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项
输入everyone,点击确定
然后打开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
最终效果在这里
推荐使用总裁团队旗下功能强大的PE产品
技术员专用版:U盘魔术师 USM
小白用户版:U盘助理
后续还有一些处理工作也将在后面再说