支持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. Explorer支持文件清单说道:

    其实winpe我已经有了,现在电脑没有安装制作pe的相关工具和环境,只有Imagex Plus工具,搜了全网也没搜到,前天我一个个添加了Explorer的dll,结果一运行pe就蓝屏了,瞬间无语了。麻烦告知一下Explorer支持运行的环境,非常感谢。

  2. 干净WinPE制作工具(发布).rar说道:

    网盘链接失效了,可否发我邮箱一份,

    • wingwy说道:

      你好,这是网友发的资源,现在估计没有了。你可以下载类似的新工具,比如winbuilder

  3. cnpirate说道:

    W大你好,博客中介绍的方法最后都是生成iso文件,能给一个可以部署到U盘的制作方法么?嘿嘿

    • cnpirate说道:

      补充一下哈,我想问的是有没有WinPE 3.0 64bit的U盘PE的制作方法啊?

      • wingwy说道:

        你好你可以用我iso里面的脚本pe放U盘,或者直接格式化(fat)后拷贝到U盘也可以实现uefi方式启动。

        • cnpirate说道:

          非常感谢W大的回复,不过用UltraISO的写入硬盘映像,可以直接将ISO部署到U盘中,嘿嘿

  4. 请教说道:

    你好,按照您的文章学习制作winpe3.1,添加explore.exe后出现个错误,这是地址http://pan.baidu.com/s/1hqQWSPQ,这个dll确实存在system32里,dll也是从msdn镜像里拷贝的,搜索了好多资料还是没法给解决了,求帮助。。。

  5. neo说道:

    感谢这篇文章,第一个pe做出来了,谢谢,另外W大知道需要怎么添加远程连接服务吗

    • wingwy说道:

      你好,系统自带的远程连接服务我似乎尝试过添加文件和配置防火墙,但好像不能连接,也许是版本问题?第三方软件倒是可以。你如果有时间可以试试,不知道有人成功过没有。

      • neo说道:

        一般在非pe的系统里用netsh adcfirewall 就可以打开,我找了一个可以用远程连接服务的pe,自己对比一下吧

      • zzcl558说道:

        你好!这个 干净WinPE制作工具(发布).rar 下载不了,能麻烦你给个别的下载地址吗?谢谢!

  6. mrha说道:

    我想精简掉您PE里的扩展包,但使用remove命令一直出错,是不是我使用的AIK版本和您不一样,我看您使用的好像是Microsoft Windows AIK (6.1.7601.17514),这个版本我找了很久,找不到,您有地址么?

  7. iamking说道:

    你的是115盘的地址 http://115.com/file/dpbb3ux3#干净WinPE制作工具(发布).rar 我没有vip下载不了,可不可以给我邮箱发一份,万分谢谢

  8. SimonChen说道:

    Dear Wingwy :

    執行 PE的文件清單對比程序.xla 問題如下:

    錯誤訊息 : 陣列索引超出範圍
    偵錯點 : If Dir(AddIns(ADDIN_NAME).Path & “\AUXILIARY_TOOLS.txt”) “” Then

    操作程序 : Execl -> open xla file -> 啟用巨集 -> alt+f11 -> RUN

    請問版主大大,我的操作程序是否出錯?

  9. sparrow说道:

    这个命令出错
    dism /image:%Mou% /add-package /packagepath:”%FP%\WinPE-HTA.cab”

    我的 AIK 是装在D盘的

    引号的问题我已经改过了,改过后是如下执行,不知道错在哪里.

    以下是屏幕显示

    F:\winPE_work\winPE>rem ——-加载Waik程序包—————–

    F:\winPE_work\winPE>dism /image:F:\winPE_work\winPE\Mount /add-package /packagep
    ath: D:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\WinPE-HTA.cab

    错误: 87

    /packagepath: 选项缺少所需的参数。
    有关详细信息,请参阅 /packagepath: 选项的帮助。

    • sparrow说道:

      搞定了,标准的命令形式应该是这样:
      dism /image:F:\winPE_work\winPE\Mount /add-package /packagepath:”D:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\WinPE-HTA.cab”

      dism /image:%Mou% /add-package /packagepath:”%FP%\WinPE-HTA.cab”

      帖子上的命令多了一个空格

      • sparrow说道:

        晕死,怎么一发布会自动增加一个空格?

        %FP%\和前面的冒号之间不能有空格

  10. sparrow说道:

    imagex /apply %PE_FILE_DIR%\winpe.wim 1 %PE_FILE_DIR%\mount
    这条命令在命令窗口中复制进去可以运行,但把它加到.cmd文件中却不能运行
    这是怎么回事?需要做些什么?

  11. sparrow说道:

    有一点我不太明白,PE的主要作用是建立或恢复系统镜像以及对磁盘操作,
    为什么还要分成32位和64位的?
    什么情况下是用32位?什么情况下是用64位?

    • wingwy说道:

      winpe分别对应32位和64位的windows系统。目前一般都建议64位pe,能支持大内存,efi启动等等。一些较老的病毒也不能在纯64位环境下运行。

      • sparrow说道:

        还不是很明白,当启动PE时,已经和硬盘上的win7_32或win7_64系统无关了,何必要对应它?
        哦,是不是指克隆工具和磁盘操作工具分32和64位的?
        PE的32和64位是指要对应这些在PE中要使用的工具软件?

        • wingwy说道:

          我的意思是32位和64位的winpe分别类似于简化的32位和64位的windows系统。你可以google x64 wow64 等关键字。

  12. sparrow说道:

    WAIK 3.1补充文件(SP1补丁,即WINPE3.1)
    这个ISO中有三个.cmd文件,是不是运行这三个文件,就可以将3.1的文件替换掉系统中已经安装好的WAIK 3.0?

    • wingwy说道:

      那上个cmd文件是用来生成命令行版本的基本pe的,你需要手动替换winpe.wim文件。

  13. 小阿龙说道:

    工具中的这个文件夹中 创建好的注册表WinPE_32 的文件是编辑好的PE注册表文件么?可以直接替换PE中的原有文件 省略第六步,跳过修改注册表么???????

  14. 原PE和目标PE阐释不是很明朗说道:

    原PE和目标PE阐释不是很明朗

    直接解释是:BOOT.WIM或者WIN7系统下的或者是INSTALL.WIM,不然让人看了模糊,要看很多遍还怕搞错导入的基准注册表HIVE

  15. 文琦说道:

    我想认识你下,好吗?

  16. 美惠宝999说道:

    楼主能不能给个winpe原生版的下载链接呢 我想下下来用一下

  17. 小菜鸟说道:

    Wing大 我想请教下 如何让64位的支持32位程序的。。。求详细的步骤。。万分感谢啊。

    • wingwy说道:

      你好,wow64这个东西是微软搞的,win系统本来就支持,只是在64位pe中把这部分砍掉了。按我的思路,注册表是全的,你拷贝相应的文件就行了。如果你是从基本的64位pe做起,就要添加注册表的6432nodes一类的wow64支持。

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