支持Explorer桌面的WinPE3.1纯净制作步骤与技术要点
(Wingwy文章基础上的补充)
2012-4-20于深圳

特别说明:本文绝大部分是参考以下原创文章,只是在我实践后进行归纳、准确、详细的描述。按照本文,有一定电脑知识的应能很快做出纯净(这里的纯净指不带任何你不放心的文件,全部是微软官方文件)的带Explorer桌面的、具备Windows基本功能的WinPE3.1。参考文献:

给winpe添加explorer教程(上):基础知识及explorer的初步加入

小弟制作PE的一些经验


我制作的WinPE文件对比与拷贝程序(开源)、支持Explorer的文件清单、注册表导出项文件(一系列reg文件,用于快速修改注册表)。

4.25日更新下载
http://115.com/file/dpbb3ux3#干净WinPE制作工具(发布).rar

一、背景
关注PE的人群有两类:一类是下载网上已经做好的PE的ISO文件进行电脑维护工作;另一类是自己做PE(技术爱好者;或害怕病毒/后门的人)。我是属于后者。一般来说,我从不在自己日常使用的电脑环境下运行网上下载的非官方exe文件,何况是操作系统!网上的PE,说不清楚里面有什么东东,我稍懂一点编程,知道其中的后果:你运行一个exe文件,就是把自己的电脑完全交给软件的作者了,他愿意在你的电脑上干什么,完全取决于他的道德水平了!因此,我从不运行网上下载的工具软件(大的软件公司如微软、Symantec等正式发布的软件除外,而且我只从官网下载)。我的目标是:基于微软的正版安装光盘,wim文件中不添加任何其他第三方软件,做一个Win7PE,实现explorer桌面、控制面板、IE上网、中文输入等Windows常用功能,里面不包含任何其它来路不明的文件。
Win7PE,网上有大量DIY下载(其中超过一半被我公司电脑上的SEP发现病毒或后门),我用虚拟机测试了一下,Wing大的PE最实用、最好用。但即使是Wing大的,我也不直接用他的ISO(不是不相信他个人,我想谁也无法100%保证自己的做的PE没有任何问题吧?)。
怎样从微软的Waik+Win7安装原盘(Install.wim)建立带explorer桌面的WinPE?网上到处都是一些似是而非的文章,只有Wingwy的文章是原创的,而且有重要价值!很多网上都是转载,甚至剽窃这篇文章。我就是从这篇文章入手,成功实现了。当然过程中遇到很多问题,其中有些是Wingwy的文章中没有讲清楚(可能因为是事后回忆),例如部分文件缺失。因此,我写了这篇文章,一是自己留个备忘,二是给尚处于迷茫中的初学者一些提示,少走些弯路(WinPE的DIY并不是高技术,但充满痛苦的!)。
WinPE制作,无非是文件和注册表。我的做法是:当你看好一个网上的PE后(例如Wingwy的),就叫它“参考PE”吧,照着它的样子自己做一个(本文叫“目标PE”):①文件部分,我编了一个小程序,把“参考PE”中的文件清单全部找出来,从原版Win7目录中将Waik原生PE中没有的文件拷贝出来(不含ux.exe, pecmd等);②注册表:可以参照Wingwy的教程一步步自己做(我在本文中对步骤进行了优化,修改了几处Wingwy记错的地方,还添加了一些),也可以尝试直接用参考PE的,呵呵。注册表不会有病毒吧!
二、准备工作:
1、从微软网站下载Waik 3.0和WAIK 3.1补充文件:
WAIK 3.0安装文件(WINPE3.0):
http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=696DD665-9F76-4177-A811-39C26D3B3B34
WAIK 3.1补充文件(SP1补丁,即WINPE3.1):
http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=0aee2b4b-494b-4adc-b174-33bc62f02c5d
将以上两个ISO文件刻录到光盘(文件1G多),或用ULTROISO加载到虚拟光盘。
 先将第一个ISO加载到光驱,安装第一个WAIK3.0。可在XP下安装,但安装前可能需要安装.net framework和MSXML6SP1等(安装界面可直接点击安装);
 再将第二个ISO加载到光驱,该ISO包中没有安装程序,要手动将该光盘中的所有文件替换到WAIK3.0的安装目录,微软说明文档中提供了替换命令,微软说明文档为
http://technet.microsoft.com/zh-CN/library/dd349350%28WS.10%29.aspx
替换命令为:xcopy H:\ “C:\Program Files\Windows AIK\Tools\PETools” /ERDY ,其中需要将H:替换为加载的光盘盘符。
2、安装UltraISO
UltraISO是玩PE DIY的必备工具,用于将ISO文件加载为虚拟光驱、将ISO文件刻录成PE启动光盘或U盘(最新版可自动将PE放在隐藏分区)。
官网下载:http://www.ezbsystems.com/download.htm
中文官网:http://cn.ezbsystems.com/download.htm
网上流传的注册码,一般只能用于注册第二个网址下载的。网上若找不到,到TB上购买一个。
3、安装RegistryWorkshop(简称RW吧)
这个不是必备的,你可以用regedit直接操作注册表,但RW可以批量自动查找与替换、批量删除、注册表对比等,在准备PE注册表时,要用到批量删除与修改(若不用RW,还真难办)。安装后,不必注册,试用期有30天。官网:http://www.torchsoft.com/
这里顺便提一下怎样编辑注册表文件,供不懂的人参考(我也是最近才搞清楚,其实还挺复杂的,我相信搞懂的人不多,特别是权限问题):运行regedit.exe或启动RW后,加载的是正在运行的Windows的注册表,你编辑后,当即生效(没有保存这一说)。
问题1:怎样编辑PE的注册表?是否需要启动PE才能编辑PE自己的注册表?不用,在Windows下你可以从菜单→文件→Load hive,分别加载PE的SOFTWARE/SYSTEM/DEFAULT的注册表文件,取一个名字(例如PE-SOFT)来进行编辑;编辑完成后,Unload hive即可(需要选中PE-SOFT注册项Unload hive才变成可点击)。若用RW,则Unload时,可能会提示无权限,退出RW重新进入就可以了。
问题2:怎样将安装光盘的Install.wim中的注册表的某一项(例如HKLM-SOFTWARE下的某一项)更新到PE的注册表相同的文职?方法是先导出为reg文件,再导入到PE中。步骤:先加载Install.wim中的注册表(如SOFTWARE),加载命名为PE-SOFT,找到导出项,导出成xxx.reg,卸载;然后加载PE的SOFTWARE,同样命名为PE-SOFT(必须与刚才同名),导入xxx.reg,再卸载即可。
问题3:怎样克服注册表修改的权限问题?很多人都说必须在PE环境中直接修改PE自己的注册表,因为在Windows下因为权限问题不能修改加载的PE注册表。我费了好大劲,才知道有办法(注意过程的细节,否则不行):①先将所有者变成自己:选中加载后的PE-SOFT项,右键单击PE-SOFT→权限→高级→所有者→选中自己的账户→注意勾选“替换子容器和对象的所有者”→应用,先退出全部对话框,再重复右键单击PE-SOFT→权限→高级→添加账户→将自己的账户添加进权限清单→勾选所有权限→将应用于改成“This key and subkeys”→注意勾选下面的两个选项框→应用。这时,你发现可以修改和删除PE-SOFT中的注册项了。
4、准备好待拷贝的Win7文件
目的:将Waik原生PE缺失的文件,从这里拷贝。
可以从Win7安装光盘的Install.wim映像文件加载(解压缩)到一个目录(如:G:\Win7SP1\Mount),可以用imagex命令将其解压缩,例如:
imagex /apply g:\Win7sp1\install.wim 2 g:\Win7_64 其中的2表示第二个映像
也可以通过WinPE将新安装好的Win7系统盘中的文件拷贝到另外一个目录,安装好的Win7比从wim中加载的文件可能要全些。
建议:不要用正在运行的在线Win7作为拷贝源,否则会出一些莫名其妙的问题(下面与本主题无关,仅阐述一些知识:在64位系统中,System32中存放的是64位文件,而SysWow64中存放的是32位文件。例如:如果你是64位Win7,当你用32位自编软件查找、读取或拷贝C:\Windows\system32下的文件时,实际读取的是SysWow64下的文件,因为32位软件访问system32,Win7会把它转到SysWow64,Wow64的含义是Windows on Windows 64-bit,这就是为什么32为程序在64位系统下运行效率反而低的缘故)。
注意:有的厂商的install.wim文件不含中文包,中文包在Win7安装过程中从别的地方拷贝,我的HP工作站就是这样,我这这里折腾了很久才发现install.wim中文件缺了很多(你可以检查加压缩后的Windows\zh-cn\explorer.exe.mui文件是否存在来确定)。这时,你可能要先在一台机器上安装一次,用PE将安装好的Win7整个C盘文件拷贝到另外的目录(作为文件源)。
5、准备好“参考PE”并解压缩
目的:将Waik原生PE的文件,与这个参考PE的文件比较,得出哪些文件缺失(以便从上述Win7目录中拷贝)。
步骤:下载参考PE,将ISO文件中的boot.wim(Wingwy的是Winpe.wim)同样解压缩到一个目录,例如:G:\WinpeRef\Mount。

三、建立Waik原生PE
以上准备工作做好后,开始创建自己的“目标PE”了。为了避免重复在DOS下输入命令,你一般会建立一些bat或cmd批处理文件。为了方便以后重复操作和共享给别人,一般会建立一些参数。我是在Windows中建立了几个系统环境变量(点击开始,搜索框中输入“环境变量”即可调出“编辑系统环境变量”对话框,如:
PE_WORK_DIR = G:\WinPE WinPE工作目录,存放编辑过程中的winpeshl.ini、批处理等
PE_FILE_DIR = F:\WinPE_x86 自己生成的WinPE
PE_WIN7_DIR = G:\Win7sp1 Win7文件源
用Waik建立原始PE文件:
右键以管理员运行Waik的部署工具命令提示,运行以下批处理:
Rem 创建目录构架:
call copype.cmd x86 %PE_FILE_DIR%
rem 加载(解压缩)boot.wim
imagex /apply %PE_FILE_DIR%\winpe.wim 1 %PE_FILE_DIR%\mount

四、加载程序包
按自己的需要,加载Waik自带的程序包,一般加载以下几项,批处理文件内容如下:
Set FP=C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs
set Mou=%PE_FILE_DIR%\Mount
rem ——-加载Waik程序包—————–
dism /image:%Mou% /add-package /packagepath:”%FP%\WinPE-HTA.cab”
dism /image:%Mou% /add-package /packagepath:”%FP%\zh-cn\WinPE-HTA_zh-cn.cab”
dism /image:%Mou% /add-package /packagepath:”%FP%\WinPE-MDAC.cab
dism /image:%Mou% /add-package /packagepath:”%FP%\zh-cn\WinPE-MDAC_zh-cn.cab”
dism /image:%Mou% /add-package /packagepath:”%FP%\WinPE-Scripting.cab”
dism /image:%Mou% /add-package /packagepath:”%FP%\zh-cn\WinPE-Scripting_zh-cn.cab”
dism /image:%Mou% /add-package /packagepath:”%FP%\WinPE-WMI.cab”
dism /image:%Mou% /add-package /packagepath:”%FP%\zh-cn\WinPE-WMI_zh-cn.cab”
dism /image:%Mou% /add-package /packagepath:”%FP%\WinPE-PPPoE.cab”
dism /image:%Mou% /add-package /packagepath:”%FP%\zh-cn\WinPE-PPPoE_zh-cn.cab”
dism /image:%Mou% /add-package /packagepath:”%FP%\WinPE-DOT3SVC.cab”
dism /image:%Mou% /add-package /packagepath:”%FP%\zh-cn\WinPE-DOT3SVC_zh-cn.cab”
echo 设置运行内存
dism /image:%Mou% /Set-ScratchSpace:256
echo 显示已经加载的程序包
dism /image:%Mou% /Get-Packages
现在,你可以卸载PE(重新生成wim)并打包ISO,测试一下PE是否运行正常,批处理命令为:
Echo 生成boot.wim映像文件…
imagex /boot /compress fast /capture %PE_FILE_DIR%\mount %PE_FILE_DIR%\ISO\sources\boot.wim “WinPE for ghost”
Echo 生成ISO文件…
oscdimg -n -b%PE_FILE_DIR%\etfsboot.com %PE_FILE_DIR%\ISO g:\winpe\winpe_ghost.iso
DIR %PE_FILE_DIR%\ISO\sources\boot.wim
注:加载和卸载wim,win7的waik是用DISM命令。但DISM在卸载时会删除mount目录,不便于测试。在测试过程中,还是用以上的imagex命令方便。

五、拷贝缺失的文件
思路:将刚才生成的原始PE,与参考PE的文件清单对比,将缺失的文件从Win7文件源中拷贝过来,从而生成与参考PE相同的文件,由于文件是从Win7的干净目录中拷贝的,生成的PE是干净的目标PE。
注意:Waik原始PE中已存在的文件在拷贝过程中不要替换,否则可能文件版本不同,与注册表不匹配,例如:原始PE是IE8,Win7是IE9,可能会出问题。
方法:自己编写一个程序,以参考PE为基准,将原始PE缺失的文件,从Win7中拷贝过来。我在Excel用VBA编写了一个开源程序(xla文件),下载地址见本文最上面。

下面描述一下我做的PE文件对比程序的使用:
下载后,用WinRAR解压缩,用Excel打开 “WinPE文件对比程序.xla文件”(或双击打开),要查看和运行程序代码,在Excel中按Alt+F11打开VBA编辑器,找到WinPETool(在窗体标签下),双击即可查看源代码。运行该窗体,分别输入三个目录:
“Win7目录”:文件拷贝源,最好不要是当前运行的Win7的目录(例如G:\Win7Sp1\mount)
“目标WinPE”:例如f:\WinPE_x86\mount
“参考WinPE”:例如g:\WinPERef\mount
注意:以上三个目录要能对应起来,即:都是Windows目录的上一层目录。
其中“Win7目录”有两个,是因为我自己的install.wim中缺了很多,我将安装好的Win7目录复制后,作为第二Win7目录。在对于目标PE缺失的文件,在拷贝时,若第一Win7目录(Install.wim解压后)找不到,则从第二win7目录拷贝。一般第二个Win7目录空着即可。
另外,软件窗体最下面一行两个文本框:SysWOW64和System32,是因为我的目标PE是32位,参考PE是64位,在对比文件时,在参考PE中的SysWOW64目录要转换成System32目录来对比。若你的目标PE是64位,或者目标PE与参考PE都是32位,则请将这两个文本框清空(即:只有目标PE是32位,参考PE是64位时,这两个文本框才保留,否则请清空)。
下面开始文件拷贝:
按钮1:对比Excel中的文件清单:将文件清单拷贝到当前Excel文件的第一列(从第三行开始每行一个以C:\开头的文件名),以C:\开头,例如C:\Windows\zh-cn\explorer.exe.mui。这个按钮的目的:拷贝你已经明确了的文件清单。例如:Wingwy提到的wifi功能文件清单,又例如你要做一个比Wingwy的参考PE小的,但又具备explorer功能的基本PE,将以下文件清单拷贝到第一列(从第三行开始,开头字母不是C:\的程序不会处理—可以当做说明行):
————————————Explorer支持文件清单:
C:\Program Files\Internet Explorer\ieproxy.dll
C:\ProgramData\Microsoft\Windows\DeviceMetadataStore\*
C:\ProgramData\Microsoft\User Account Pictures\user.bmp
C:\Windows\oobe\*
C:\Windows\appPatch\sysmain.sdb
C:\Windows\Branding\Basebrd\basebrd.dll
C:\Windows\Branding\ShellBrd\shellbrd.dll
C:\Windows\explorer.exe
C:\Windows\system32\dwm.exe
C:\Windows\system32\hdwwiz.exe
C:\Windows\system32\hdwwiz.cpl
C:\Windows\system32\Wow*.*
C:\Windows\system32\*cpl.dll
C:\Windows\system32\accessibilitycpl.dll
C:\Windows\system32\actxprxy.dll
C:\Windows\system32\adsldp.dll
……
文件太多,不列了,你可以下载该清单(与xla文件在同一个包中)。
打开“基本WinPE添加文件清单.xls”(在同一个下载包中),Excel第一列给出了支持explorer和其他一些基本功能的需要添加到基本PE中的文件清单。在VBA编辑器中运行上述的“窗体”,点击第一个按钮,程序将Excel第一列的文件清单与目标PE比较,并生成bat文本文件(xcopy命令,将缺失的文件从Win7目录中拷贝到目标PE相同的目录)。将生成的文本文件复制到你自己的批处理文件,以管理员运行DOS窗口,执行批处理,完成缺失文件的拷贝。
这样,你的目标PE中的文件就具备explorer功能了,但没有IE、输入法等,你可以直接继续第六步:注册表修改。
若你希望与参考PE有同样的功能,则还需对比参考PE中的文件清单,用按钮2生成批处理文本:
按钮2:输入Win7源文件目录、参考PE的mount目录、目标PE的mount目录,点击按钮2,自动对比,将生成的文本文件复制到你自己的批处理文件,以管理员运行DOS窗口,执行批处理,完成缺失文件的拷贝。

六、修改注册表
注册表的修改比较复杂,要修改SOFTWARE、DEFAULT、SYSTEM三个。其中SOFTWARE修改的内容最多。
总的思路是:将Install.wim或Win7SP1或正在运行的WIN7中的的注册表,导出相关注册项到xxx.reg文件(导出为reg文件,是为了方便将来重复测试),这些reg文件记录了目标PE中需要修改的项;然后加载原生PE中的SOFTWARE(经过初步修改的)、DEFAULT、SYSTEM到PE-SOFT、PE-DEF、PE-SYS,将导出的一系列reg文件导入,以应用这些配置。
1、初步处理SOFTWARE
思路:要以Install.wim或Win7SP1目录中的SOFTWRE为基础,进行两项处理后,导入原生PE的SOFTWARE以覆盖相同项(确保PE原有注册项能正确运行,又具备Win7的功能)。
步骤:
1.1 导出原生PE的SOFTWARE为reg文件备用:加载原生SOFTWARE到PE-SOFT,将整个PE-SOFT导出为“原生PE-SOFT.reg”;
1.2 加载Win7SP1的SOFTWARE到PE-SOFT(这里最好用RegisterWorkshop,因为有几千项删除与替换)。先按上面准备工作中介绍的方法,设置权限,否则无法修改PE-SOFT注册项。
1.3删除Interactive键:用搜索功能(Ctrl+F)在PE-SOFT项下面搜索所有的interactive user(搜索时,注意勾选仅仅搜索PE-SOFT项!将keys/value/data三项都勾选,搜索结果出现在下面的窗口,在搜索结果窗口中选中所有项,右键单击→删除,删除所有带Interactive的键;
1.4 替换D:\为X:\:用搜索功能(Ctrl+F)在PE-SOFT项下面搜索所有的D:\(搜索时,注意勾选仅仅搜索PE-SOFT项!将keys/value/data三项都勾选,搜索结果出现在下面的窗口,在搜索结果窗口中选中所有项,右键单击→替换,替换为X:\。有的注册表是C:\,因此应该搜索C:\。总之,要把所有的数千项的C:\和D:\都替换成X:\。
注意:RegisterWorkshop每次只能搜索到1000项,而需要替换的有几千项,需要重复操作几次。
1.5 将刚才导出的“原生PE-SOFT.reg”导入进来,以覆盖相同项(确保PE原有注册项能正确运行)。
1.6 卸载SOFTWARE,将其拷贝为“初步修改后的SOFTWARE”,将来还要修改。
2、下面将集中导出Install.wim中的注册表中的各项到一系列xxx.reg,以便导入到目标PE的注册表
2.1 SOFEWARE
SOFEWARE负责系统的软件配置
将Install.wim中(最好为新安装后的Win7)的SOFTWARE拷贝到一个临时文件(临时文件仅仅是为了修改并导出reg用,后面要用的是导出的reg文件。),将临时文件加载到PE-SOFT:
2.1.1 WinPE的shell修改:将下面项从“cmd.exe /k start cmd.exe”修改为“explorer.exe”后,导出为reg文件备用;
[HKEY_LOCAL_MACHINE\PE-SOFT\Microsoft\Windows NT\CurrentVersion\Winlogon] 的shell
2.1.2 WinPE用户文件位置指向default:将下面项从
“%systemroot%\system32\config\systemprofile”修改为“X:\Users\Default”后,导出为reg文件备用;
[HKEY_LOCAL_MACHINE\PE-SOFT\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18] 的ProfileImagePath
2.1.3 我的电脑右键“管理”:
将下面项从“%SystemRoot%\system32\CompMgmtLauncher.exe”修改为“”%SystemRoot%\system32\mmc.exe” “%SystemRoot%\system32\compmgmt.msc” /s”后(注意英文引号也要有),导出为reg文件备用;
[HKEY_LOCAL_MACHINE\PE-SOFT\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage\command] 的shell
该项修改Wingwy的文章中描述有误,不能直接调出计算机管理,我参考国外网站后,正确调出。
2.1.4 Svchost:将下面项导出到reg文件备用:
[HKEY_LOCAL_MACHINE\PE-SOFT\Microsoft\Windows NT\CurrentVersion\Svchost]
2.1.5 卸载PE-SOFT

2.2 SYSTEM
SYSTEM负责系统的服务等关键配置
将Install.wim(最好为新安装后的Win7)的SYSTEM拷贝到一个临时文件,将临时文件加载到PE-SYS:
2.2.1 关键服务(主题等):
将[HKEY_LOCAL_MACHINE\PE-SYS\Setup\AllowStart\]添加一项:Themes
将[HKEY_LOCAL_MACHINE\PE-SYS\ControlSet001\services\]的六项:
DXGKrnl、monitor、Schedule、Themes、UxSms、vga分别导出到reg文件备用
将以下项导出到reg文件备用(此服务是msi安装支持)
[HKEY_LOCAL_MACHINE\PE-SYS\ControlSet001\services\msiserver]
2.2.1 卸载PE-SYS

2.3 DEFAULT
DEFAULT负责当前用户登陆后的配置,因此要以当前运行的Win7为蓝本,导出到reg文件。
2.3.1 Explorer自定义配置:
Advanced配置:这里的配置很重要(下面在正在运行的Win7中配置好,将来在PE中explorer的特性就与这些配置一样):在正在运行的Win7中,打开explorer资源管理器,在菜单→文件夹和搜索选项,在“常规”页面,勾选“显示所有文件夹”和“自动扩展当前文件夹”;在 “查看”页面,按你的习惯勾选(如显示隐藏文件、显示扩展名等),特别注意:一定要勾选“在单独进程中打开文件夹窗口”(否则PE启动后再插入U盘,U盘不可见);
将以下注册表的Advanced、HideDesktopIcons(任务栏特点(是否分组显示等))导出到reg文件备用:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ HideDesktopIcons]
用文本编辑器打开刚才导出的reg文件,将“[HKEY_CURRENT_USER\”全部替换为:
“[HKEY_LOCAL_MACHINE\PE-DEF\”,以便后面导入到加载的PE-DEF中。
2.3.2 背景、配色等自定义配置:
将以下四项导出到reg备用:
[HKEY_CURRENT_USER\Control Panel\Personalization]
HKEY_CURRENT_USER\Control Panel\Desktop]
[HKEY_CURRENT_USER \Control Panel\Appearance]
[HKEY_CURRENT_USER \Software\Microsoft\Windows\DWM]
与上述一样,用文本编辑器打开刚才导出的reg文件,“[HKEY_CURRENT_USER\”全部替换为:“[HKEY_LOCAL_MACHINE\PE-DEF\”
2.3.3 卸载PE-DEF
3. 下面将上述导出的一系列reg文件注射进目标PE文件
3.1 加载待修改的目标SOFTWARE/SYSTEM/DEFAULT,具体为:
加载以上第1步完成后生成的“初步修改后的SOFTWARE” 到PE-SOFT
加载WAIK原生PE中的SYSTEM到PE-SYS
加载WAIK原生PE中的DEFAULT到PE-DEF
3.2 注射刚才的注册表修改配置:
以上过程中生成的reg文件,我已经包含在下载包中,下载地址在本文最上面。
逐项导入步骤2中生成的所有reg文件(2.1.1 WinPE的shell修改暂不导入,测试explorer运行正常后再导入,否则PE测试时会不断重启)
3.3 卸载以上三项。
4、以上刚刚卸载的三项,命名为SOFTWARE/SYSTEM/DEFAULT,并拷贝到目标PE的
Mount\Windows\System32\Config\目录下。注册表修改完成

七、再次加载WAIK程序包
注意:程序包的加载,要在完成注册表修改后再运行一次,否则,在注册表修改过程中可能冲掉已安装的程序包的注册表。
现在,你可以打包测试PE,在PE进入DOS命令窗口后,输入explorer,看资源管理器界面是否出现。
测试正确后,加载SOFTWARE,将刚才暂未导入的“2.1.1 WinPE的shell修改”的reg文件导入(将cmd.exe改成explorer.exe),卸载SOFTWARE。

八、拷贝自己创建的文件
1、WinpeSHL.ini文件:
创建一个winpeshl.ini文本文件,内容如下,并拷贝到目标PE的system32下:
[LaunchApps]
wpeinit
X:\windows\explorer.exe
注意:该文件必须在将SOFTWARE注册表Winloglon的shell从cmd.exe改为explorer.exe后再放到system32下,否则,PE将不断重启。
2、创建桌面的自定义快捷方式
自定义的桌面快捷方式要拷贝到目标PE的Users\Default\desktop\下。
echo off
echo 拷贝desktop
del %PE_FILE_DIR%\MOUNT\Users\Default\Desktop\*.*
xcopy %PE_WORK_DIR%\PE自己创建的文件\desktop\. %PE_FILE_DIR%\MOUNT\Users\Default\Desktop\. /y /s

九、测试PE
最后,按Wingwy的方法,加入wifi支持(文件添加已经在以上步骤中包括,只需修改注册表和创建wifi.cmd)。我的电脑上未测试,暂不列入。
现在,你可以打包测试PE。PE应该自动加载驱动(如网络等,在cmd窗口加载),之后,自动进入桌面,并设置主题、桌面背景等。
进行如下测试:
用explorer打开计算机,查看各个驱动器是否显示;
另外插入一个U盘,等一会,打开explorer,查看U盘盘符是否自动出现;
右键单击计算机→管理,是否能调出管理计算机界面;
打开控制面板,查看各个分项是否正确显示;
打开IE,IE是否能启动,并上网。

十、问题与总结
该文章是基于:你发现了一个好用的PE,想自己原样做一个,但又不放心网上下载的别人的文件,你可以依葫芦画瓢从Win7中拷贝相关缺失的文件,在保障文件不缺少的情况下,或者自己创建注册表,或者使用下载PE的注册表,快速制作一个纯净的相同功能的PE。
关于第三方基本工具:网上流传的各个PE,一般都用第三方pecmd.exe作为PE启动调度、在explorer之前运行第三方ux.exe(功能不知)、网络操作用第三方penetwork,我都没有加入(这三个工具都找不到官方网站)。
几个常见问题解释:
Explorer无法启动/资源管理器界面不出现的问题(第七步的测试):
这是大家遇到最多的问题,一般是文件不全,如果你按我提供的基本文件清单不全,应该不会有问题。如果系统提示explorer无法运行(找不到explorer.exe文件或dll文件缺失),补充相关文件;如果运行后,系统无提示,但不出现界面,一般是Windows\Zh-cn下(而不是System32\Zh-cn下)的explorer.exe.mui文件缺失。
PE不断自动重启的问题:
若注册表SOFTWARE的shell仍然为cmd.exe(未修改为explorer.exe),而这时system32下已经拷贝了winpeshl.ini文件,则会自动重启,因为cmd.exe外壳会在执行完winpeshl.ini清单中的程序后自动退出,这时,外壳消失,PE就会重启。
若注册表SOFTWARE的shell已经修改为explorer.exe,而system32下尚未拷贝winpeshl.ini文件,也会自动重启,因为外壳没有运行。
启动蓝屏问题:
一般是注册表有问题,例如:32位的PE用了64位的注册表,可以逐步将DEFAULT、SYSTEM换回原生PE的试试看。
有待添加的功能:微软拼音输入法,WAIK中有现成的脚本,应该没问题。
关于工具软件:WinRAR/UlraISO等工具,我不愿集成进PE,可以将安装文件放到启动U盘,需要时点击安装,几秒钟就可以安装好。我已经测试可以再PE中顺利安装和使用。
未解决问题:
文件太大(未在原生PE的基础上精简、启动时间过长)。
WIFI功能未实现

标签: ,

122 条评论 发表在“支持Explorer桌面的WinPE3.1纯净制作步骤与技术要点(Wingwy文章基础上的补充)”上

  1. victor说道:

    请教一个比较菜的RW软件的使用问题:
    打开RW软件后显示的是本机的注册表,加载配置单元:加载原生SOFTWARE到PE-SOFT,可是显示的还是本机的注册表,这时选择导出注册表,导出的注册表有180M,应该是本机运行的注册表吧?而这时的卸载配置单元还是灰色的不能用的状态。也看不见有PE-SOFT,如何能右击PE-SOFT改变权限。我是在WIN7_64位环境下。

    • wingwy说道:

      你好,你注意他的分支,加载的SOFTWARE可以在local machine或者其他分支下面。

      • victor说道:

        多谢了

      • victor说道:

        您好,wingwy大。由于有些特定的需要,想在PE下用3G无线上网卡拨号上网。
        我是这样尝试的:
        1、在WIN7_64环境下在安装该3G无线上网卡的前后的注册表对比,将比较的结果的SOFTWARE和SYSTEM部分分别存成.REG文件。(DEFAULT部分是不是HKEY_USERS\.DEFAULT,我看了比较结果,好象没发现什么有用的)。
        2、分别加载您制作好的WINPE的注册表SOFTWARE和SYSTEM,再将之前的比较结果的.REG文件导入您制作的PE注册表。
        3、注册表作好了后,查看该3G无线上网卡的驱动程序信息,把驱动程序文件复制到WINDOWS\SYSTEM32\DRIVERS文件夹。再将拨号应用程序复制到Program Files (x86)文件夹下。
        4、重新打包WINPE.wim替换掉ISO文件中的相应文件。
        5、全部完成后我写入U盘测试一下,结果没进到PE蓝屏了。
        麻烦您看一下问题可能出在哪里,或者是整个思路就不对?

  2. 大笨狗说道:

    打开“基本WinPE添加文件清单.xls”(在同一个下载包中),Excel第一列给出了支持explorer和其他一些基本功能的需要添加到基本PE中的文件清单。在VBA编辑器中运行上述的“窗体”,点击第一个按钮,程序将Excel第一列的文件清单与目标PE比较,并生成bat文本文件(xcopy命令,将缺失的文件从Win7目录中拷贝到目标PE相同的目录)—————–这里一直没看明白,能不能配图说明下啊,小弟QQ38829979

    • 飞飞说道:

      谢谢阅读,但本网站没法贴图。这很简单,你打开Excel,再打开“基本WinPE添加文件清单.xls”这个文件,在Excel中,按ALT+F11,就能打开VBA编辑器,在VBA编辑器中双击打开WinPETool窗体,然后运行这个窗体即可出现按钮。WinPETool是我自编的小程序,开源的,安装方法详见文章。

      • 大笨狗说道:

        谢谢,这个后来我搞定了,你直接说按alt+F11就进入了,不熟EXCEL的人,我估计好多人不明白,我现在有个问题就是驱动装完以后,怎么全是未知设备,不知道怎么弄了。

      • 神州兔霸说道:

        你好,,我仔细阅读了你的教程,但是这个工具打开后点那两个按钮,按钮没反应,而且按钮周围有个虚线框,不知道怎么回事?能不能麻烦你详细说说还吗

  3. 米饭v鸡蛋说道:

    这个文件列表里的explorer部分是针对64位的 和”小弟”那个文章一样
    我跪地恳求给做个32位的列表
    !!!!!!!!!!
    每次心血来潮做pe都是问题出在复制文件这里!!!!

    • wingwy说道:

      我最开始用winbuilder,后来用过make-pe(好像是这个名字),做pe久了文件都是自己慢慢积累的,也没有记录。你下一个成熟的pe或者用工具吧。

      btw:pe的核心还是在注册表,你搞定了注册表后文件也就不是问题了。

  4. 米饭v鸡蛋说道:

    请问wingwy最开始整合explorer是从哪里总结出的文件列表???自己判断?

    • 飞飞说道:

      这个文件清单可用于32位,我自己做的就是32位的,用我的小程序在EXCEL中根据这个清单生成DOS拷贝命令即可。

    • 飞飞说道:

      这里面的核心就是文件清单,不要问为什么需要补充这些文件,这只有微软才知道,呵呵。反正加上这些文件,再修改注册表,就能用了。爱好者都是闲来无事,鼓捣这些文件清单,大部分是试出来的!
      附带的小程序,只是能对比文件,并生成DOS拷贝命令,手工对比的效果是一样的,但要搞死你。

  5. William说道:

    。。。。。倒入win7sp1(当前系统)的software的时候提示说正在使用 无法导入 也没法复制

  6. William说道:

    另一个问题 我没有下载“参考pe”的话
    是不是按照那个列表手动复制得到的效果是一样的?

    • wingwy说道:

      不要用系统的注册表编辑器,手动复制是一样的,第一次做的话最好参考一下。

  7. William说道:

    请问我在添加程序包的时候 返回的消息是WinPE-DOT3SVC找不到
    我到petool里确实没有这个文件
    这个包是不是在3.1扩展包里?
    我的aik没装扩展包 所以没有?
    缺少这个是不是不能用wifi?

  8. 拿铁不加糖说道:

    还有一个问题就是,按照教程的做出来的PE我要使用aero主题的话,提示此系统版本不能使用主题

    • wingwy说道:

      是的,这是微软的限制。system账户不能用aero主题,我记得以前在wuyou看到过一篇文章,切换到admin账户就行,如果你觉得使用aero主题有必要的话,可以google一下。

  9. 拿铁不加糖说道:

    遇到了一个问题,就是在打开计算机选择“系统属性”没有关联到系统属性页,也没有任何提示,在控制面板-系统里能打开,不只博主是否遇到此问题呢?

  10. sail说道:

    您好 我想请教下 如何修改进PE后桌面图标默认显示中图标 我想改成小图标,请指教 谢谢。

    • wingwy说道:

      你好,这个应该和win7的设置一样,改注册表就行,但我没搞过,你可以google一下。

  11. sail说道:

    您好,wingwy大 我想问下 有什么方法可以把pe3.1桌面默认显示中图标 改成小图标? 注册表能搞定吗 ?请指教 谢谢。

  12. 人之初真水无香说道:

    请问:我按照作者的步骤和方法制作出的PE能启动,也能上网;但是桌面背景和配色不正常,没有wingwy-pe3.1-v2-fix3-uefi.iso的好看,桌面背景是纯蓝色的(我用的是主机中的background.bmp改名为winpe.bmp),重启和关机按扭无效,请问该如何解决?另外,我按照AIK的帮助文档制作出WinPE_ZH_IME.ISO,请问该如何添加输入法?
    谢谢!

    • wingwy说道:

      你好,你可以看下https://www.wingwy.com/archives/2011_02_862.html这篇文章,里面有说明。微软对pe做了限制,用pecmd引导可以用explorer的关机功能。背景,外观还有主题设置也可以自己修改。输入法的加入很简单,你看waik的帮助文件,运行他的脚本就可以了。

      • 人之初真水无香说道:

        我想把极品五笔输入法添加进去,正在寻找方法。。。
        我用了作者的注册表,桌面背景和配色还是没有解决。。。

      • 飞飞说道:

        pecmd配置WinPE功能很强大,你可以下载WinXY的PE,找到pecmd.ini,打开看看里面怎么设置的。但我不用pecmd,原因是pecmd不是一家正规公司的产品,是软件爱好者写的,且没有官网下载,这类exe文件我从来不用,只好割爱了。你若不在乎,可以参考winxy的文章,添加pecmd进行设置,很方便的。

  13. 人之初真水无香说道:

    好郁闷!
    制作到“七、再次加载WAIK程序包”时提示出错:找不到元素、指定的程序包不适用于此映像、指定的映像不再可用。。。。
    请问是什么原因?
    谢谢!

    • 飞飞说道:

      我没遇到过,不知你的问题。另外,第七步应该可以省略,大家也没遇到什么问题,我是为了保险起见,才再次加载程序包。

  14. phbb说道:

    我加载explorer 出现:服务进程不能启动,因为配置的标识不正确检查用户名和密码 不知道什么什么问题导致的。

  15. 人之初真水无香说道:

    请问博主:我在第“四、加载程序包”时出现
    错误:87
    DISM 未识别命令行选项“Files\Windows”。
    我是在32位系统上进行的,将32位Windows 7 ultimate sp1镜像中install.wim里的第2个映像加载到E:\win7_64;然后将“参考PE”(wingwy-pe3.1-v2-fix3-uefi.IOS)加载到D:\WinpeRef\Mount。
    另:“编辑系统环境变量”对话框,没有看到
    PE_WORK_DIR ;PE_FILE_DIR ;PE_WIN7_DIR这三项。
    请指教!
    谢谢!

    • 飞飞说道:

      若要用文章中现成的代码,需要自己在系统环境变量对话框中,加上三项系统环境变量(注意不是用户环境变量,点击对话框下面新建)的PE_WORK_DIR ;PE_FILE_DIR ;PE_WIN7_DIR,将他们设置成自己的目录,目录最后不要加“/”。
      另外,文章中的命令在上传到网页时可能有误,应该是英文引号,上面文章中为:
      dism /image:%Mou% /add-package /packagepath:”%FP%\WinPE-HTA.cab”
      改成英文引号:
      dism /image:%Mou% /add-package /packagepath:”%FP%\WinPE-HTA.cab”

      从你出现的错误来看,应该是用了中文引号,因为FP变量中的Program files目录名字中间有空格,就应该把整个目录用英文双引号,否则,DOS会出错。

      • 人之初真水无香说道:

        谢谢!我再试试!
        要是批处理等能加彩色字体就好了。。。。

        • 人之初真水无香说道:

          “可以用imagex命令将其解压缩,例如:imagex /apply g:\Win7sp1\install.wim 2 g:\Win7_64 其中的2表示第二个映像”,为何用第2个映像?如何是32位旗舰版就有5个映像,如果是64位就有4个映像,是否随便用哪个映像都可以的?
          如果是制作32位的PE,有哪些地方不一样的?
          请指教!
          谢谢!

          • 飞飞说道:

            看来你和我一样,都是初学者,O(∩_∩)O~
            我没有官方原版的Win7安装盘,用的是HP电脑配的恢复光盘,install.wim中一共有两个映像,第二个是32位,第一个是64位。你的install.wim不一定,取决于厂商怎样合盘的。你可以用命令查看每个映像的描述内容(具体命令自己查一下)。
            最好用旗舰版的映像。我的光盘中只有专业版的。
            如果制作32位,过程都是一样的。只是在用小程序比较文件清单时,要填上最后一行的参数。

            • wingwy说道:

              msdn的光盘含有Starter,Home Basic,Home Premium,Professional,Ultimate版,其中Starter只有32位win7有。做pe的话都是可以的,有网友还用2008r2做过,那个版本注册表更小。

            • 人之初真水无香说道:

              rem 加载(解压缩)boot.wim
              imagex /apply %PE_FILE_DIR%\winpe.wim 1 %PE_FILE_DIR%\mount
              以上这个命令是否正确?我得到的提示是:
              Example:
              imagex /apply d:\imaging\data.wim 1 d:\new_path

              • 人之初真水无香说道:

                已经解决,将%……%换成据体的路径得已解决,下面的批处理也是这样。。。。

  16. 冷朔说道:

    我用的office2003 和 2010 都无法打开Excel中的宏程序,按下Alt+F11后运行显示的是:“运行错误‘9’ 下标越界” 然后只有两个选择,“结束” 和 “调试”,运行调试后,自动跳转到黄色的代码行,这段代码是:If Dir(AddIns(ADDIN_NAME).Path & “\AUXILIARY_TOOLS.txt”) “” Then

    劳烦问下如何解决?

  17. PHBB说道:

    下载地址不行啊

  18. 飞飞说道:

    谢谢Wing老大的关怀,他是一个无私的人,我前天问的两个关键技术问题,他指点一下,马上解决了。
    欢迎大家拍砖!我也是最近一个月鼓捣WinPE3.1的。文章中有几个错别字,暂找不到修改方法。
    关于文件对比与拷贝小程序,我是用Excel的VBA做的,直接是源代码,保证没有后门与病毒,仅仅生成批处理文本文件。软件没有版权声明,大家可以任意修改,但我不负责任何损失,O(∩_∩)O~
    华为dbank的下载需要注册(注册上应该能下载,我看到已经有多人下载了),弄得大家不方便。我在115中没有共享的权限,恳请Wing老大或其他热心者将它转存并共享到115之类的不需要注册就能下载的地方。

  19. wingwy说道:

    多谢fei网友,辛苦了,非常好的教程。只要各位网友把文章看明白,都能做出自己想要的pe来。
    我把我id改过来了,那个wifi补丁是patatoo网友的作品:)
    https://www.wingwy.com/guestbook/comment-page-17#comment-9426

    另外,dbank好像有问题,我注册了登陆不上不能下载,google了一下用xunlei连接搞定了。
    下面是直接连接:
    thunder://QUFodHRwOi8vZGwuZGJhbmsuY29tL2Rvd25sb2FkLyVFNSVCOSVCMiVFNSU4NyU4MFdpblBFJUU1JTg4JUI2JUU0JUJEJTlDJUU1JUI3JUE1JUU1JTg1JUI3JUVGJUJDJTg4JUU1JThGJTkxJUU1JUI4JTgzJUVGJUJDJTg5LnJhcj9mPWMwbGI2Mmc5cmEmaT0xJmg9MTMzNTA2MTU4OCZ2PTUyYTIzYWZlJnU9NDRkMmUyOWRaWg==

    http直接连接
    http://dl.dbank.com/download/%E5%B9%B2%E5%87%80WinPE%E5%88%B6%E4%BD%9C%E5%B7%A5%E5%85%B7%EF%BC%88%E5%8F%91%E5%B8%83%EF%BC%89.rar?f=c0lb62g9ra&i=1&h=1335061588&v=52a23afe&u=44d2e29d

  20. yangyuxuan2012说道:

    太谢谢了

留下回复(本站有评论邮件通知功能)