2017-07-31操作过程比较简单,适合老鸟。 制作过程中有一些名词,不懂的,请自行熟悉掌握,这里不对一些名词作详细阐述。 首先准备工作,微软原版的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盘助理 后续还有一些处理工作也将在后面再说 |
|