动手制作完全属于自己的WinPE (包括win8和win8.1PE)
网上的PE各有各的特点,每一个都或多或少存在一些问题,要么是内核陈旧,不支持新的win8和win8.1,要么是不支持位,要么界面太丑,要么兼容性不好,要么内置的PE软件不安全等等。
之所以要单独建立一个的分区,是因为制作WinPE的中途有可能出错,而有的错误将导致WinPE的制作无法继续下去。(本文将以L:盘为例,100G大。)
在单独一个分区的情况下,这问题就简单了:格了它!只是格式化时有时会提示“此驱动器正在使用中……”,单击【是】即可继续;而且格式化时,有时可能好几分钟看起来像是没有反应,请务必耐心等待。
下文中,我们会将该分区简称为“工作盘”。
说明:
①工作盘不能是移动存储设备。
②如果工作盘剩余空间不够时,使用批处理制作PE时,将会出现总是停滞在某一阶段的现象,但是不会提示剩余空间不够。
③使用批处理制作PE时,如果出现停滞,但又并不是没有空间,此时可以执行命令:
Dism/unmount-image /mountdir:L:\\winpe\\mount /discard
放弃对内核的更改,然后删除制作对象文件夹L:\\winpe。
在L:盘以外的盘(本文将以F:盘为例)上建立一个文件夹,例如名为“L盘备用”,用来及时备份你已经做成的半成品或者你在试验时需要用到的一些试验文件。
准备制作winpe时需要使用的工具软件
(1)支持win8的评估和部署工具包ADK。
可以到微软官网下载,在线安装时,只需选装其中的“部署工具”、“Windows 预安装环境(WinPE)”和“用户状态迁移工具(USMT)”即可。
(2)Acronis True Image Home (简称为ATIH)或者Acronis Backup & Recovery(简称为ABR)
ATIH或ABR是Acronis公司开发的一款备份还原软件,有中文版,其最大的用处就是支持异机还原。所谓异机还原,就是把系统备份还原到不同硬件的电脑或虚拟机上。
由于目前尚够支持windows 8的ABR版本,所以我们在操作机上安装ATIH的最新版。
此外,由于ATIH和ABR的现有版本仅支持向32位win7pe内核集成,win8PE中目前只能使用ATIH绿色版。不过即使是绿色版,也能支持32位和位系统的异机还原。
(3)Ultraliso
这是一款功能强大而又方便实用的光盘映像文件编辑和制作工具。注意,下载的Ultraliso,有的直接运行不会出现“注册”对话框,但是一旦从批处理中来执行它,就会出现“注册”对话框,这样的Ultraliso将无法使用。
(4)VMware Workstation
这是一款非常好用的虚拟机软件,可用来测试你制作的WinPE。
(5)7-Zip
这是一款压缩与解压缩软件,7-Zip的优点是可以直接处理wim文件。
在操作机上需要用到但无需安装的软件有:
(6)Windows 8 USB Installer Maker英文绿色版
这是一款用来制作Windows 8安装U盘的工具软件。
(7)Registry Workshop 绿色版
这是一款注册表修改软件,比操作系统自带的Regedit功能强。可以批量自动查找与替换、批量删除、注册表对比等。
(8)Process Monitor 中文绿色版
这是一款微软的系统和应用程序监视工具,它可以监视文件活动、网络活动、进程和线程活动等。
(9)RegShot和RegSnap ,均为绿色版
前者是一款注册表修改监测工具软件,后者除开可以监测注册表修改之外,还可以同时监测系统的其它修改。
建议使用前者来监测注册表,因其生成的注册表比较报告中,项、值与数据均已按照.reg文件格式编写好,使用比较方便。只是需要删除该软件向注册表添加的他自己的东西,这比较容易分辨,从比较报告中该软件路径上可以看出来。
(10)PsTools
这是微软提供的工具软件,用来获取Windows注册表子项的“完全控制”权限。可以到微软官方网站免费下载,无需安装即可使用。
(11)Beyond Compare汉化绿色版
这是一款比较文件夹或文件差异的工具软件,用来研究比较自己的PE和样本PE之间的差别。
(12)Search and Replace汉化绿色版(文件内容搜索替换)
这是一款文件内容搜索与批量替换的工具软件,用来批量修改你编写的批处理文件。
(13)BcdTool 绿色版
这是一款图形界面的BCD编辑软件,用来编辑启动管理器。如果你需要制作x86和x的双启动winpe,就会需要用到它。也可以使用操作系统自带的命令行程序Bcdedit.exe来编辑启动管理器。
(14)IcoFXPortable 绿色版
这是一个用来制作和提取图标的工具软件。
(15)魔方windows 7 开始按钮更换 1.2 中文绿色版
这是一个用来更换winpe开始菜单中开始按钮的工具软件。注意,较新的版本可能不能够达成我们的特殊操作要求。
(16)Quick Batch File Compiler绿色版
这是一个用来将批处理文件转换成exe文件的工具软件。
(17)SK.Inf2Reg绿色版
这是一个用来向已被精简的PE内核添加驱动程序的工具软件。
(18)UltraEdit32绿色版
这是一个编辑软件,在这里作为向已被精简的PE内核添加驱动程序的辅助工具(批量
修改.reg文件)。当然,利用记事本逐一修改.reg文件也是可以的。
准备Windows
首先强调一点,必须用你曾经安装过,并能正常使用的Windows的中文原版映像(或安装光盘)。为后面叙述方便,不妨假设其文件名为Windows_x86.iso和Windows_x.iso。
(1)把Windows原版ISO映像复制到F:盘
在F:盘建立文件夹“Windows”,把大客户版的Windows_x86.iso和Windows_x.iso复制到其中。
建立文件夹“F:\\Windows\\Crack”,把操作系统需要用到的激活工具放入其中。
(2)提取windows的系统文件
用7-zip提取Windows_x86.iso和Windows_x.iso的全部文件,分别放到文件夹F:\\Windows_ X86(或x)。为了今后在命令行操作的方便,文件夹名称中最好不要使用空格。
(3)提取windows的内核文件
提取内核的操作步骤如下:找到F:\\Windows_x86(或x)\\sources\\install.wim,用鼠标右击install.wim→选【7-zip】→【打开压缩包】→如果系统提示“Some files have incorrect reference count(有些文件有错误的引用计数)”,单击【确定】→选中Program
Files、ProgramData、Users和Windows(x增加Program Files(x86))→右击上述选中的文件夹→【复制到】→指定目标路径(本文以“F:\\windows_x86_内核”或“F:\\windows_ x_内核”为例)→【确定】→【确定】。
必须清除文件夹“F:\\windows_x86_内核”以及“F:\\windows_ x_内核”中的所有文件的“系统”、“隐藏”和“只读”属性,否则将无法复制其中具有这些属性的文件。可以在cmd窗口中执行命令(需要一些时间,请耐心等候):
attrib -s -h -r F:\\windows_x86_内核\\*.* /s
或
attrib -s -h -r F:\\windows_x_内核\\*.* /s
说明:
①为了查看你要的Windows版本在Windows安装程序中的索引号,可以用管理员身份打开ADK的命令行窗口(名为“部署和映像工具环境”),执行:
dism /get-wiminfo /wimfile:F:\\windows_x86\\sources\\install.wim
对于x系统,把上面命令中的“x86”改成“amd”即可。
可以查出install.wim文件中,不论是x86还是x,我们需要的索引号为1。
同理,可以查出boot.wim文件中,不论是x86还是x,我们需要的索引号为2。
②提取Windows的内核时,不要用Dism命令去加载install.wim,因为用Dism命令加载的install.wim,在利用文件差异比较工具时,“F:\\windows_ x86(或x)_内核”中的文件打不开。
准备做参考用的最新WinPE
从网上找几个最新的winpe来作参考,注意,winpe有32位和位之分,根据你打算制作32位还是位winpe的来选择。
下载回来的WinPE,其用途有二,一是看看它有些什么文件,注册表有些什么项;二是启动WinPE后,在WinPE环境下批量修改注册表。由于需要修改注册表中几千项,所以我们必须在winpe的环境下利用第三方注册表编辑器RegWorkshop来批量修改注册表。如果你已经有了自己制作的较低版本的WinPE,当然可以用来批量修改注册表。换句话说,为了制作winpe,最好先有一个winpe,这是不是有点像“先有鸡还是先有蛋”的问题!
网上常见的WinPE的Windows文件夹中的文件并不完全相同,这是因为其中的很多文件是用来支持第三方应用程序的。如果你的WinPE中没有某个文件,只有在你运行需要这个文件的某个第三方应用程序时,才会发现。
这里最重要的工作就是利用杀毒软件检查你下载的winpe是否被杀软报告其含有有病毒、木马或是风险程序。现在流行一种说法:“误报”,其实对于被“误报”的程序,可以找别的不被“误报”的程序来代替。总之,小心为上。
检查分两步,第一步在操作机上对下载的winpe进行检查,检查之前需要先用7-zip提取其内核boot.wim中的所有文件;如果没有威胁,进行第二步,在虚拟机中启动下载
的winpe,联网进行在线杀毒。之所以还要进行在线杀毒,是因为网上有些WinPE被杀软报告含有木马。而且有的隐藏得很深,你在他的WinPE映像文件中检查时可以通过,但是一旦作为PE启动,它就把木马释放到winpe启动后的系统盘(内存虚拟盘,一般为X:盘),令人防不胜防。
做第二步需要耐心,因为在线杀毒网站均宣称目前仅支持IE,而下载来的WinPE一般都是使用Opera浏览器,不使用IE浏览器。也有个别杀毒网站宣称支持IE内核浏览器,但是从试验结果来看,由于WinPE一般使用绿色版浏览器,即使是IE内核,也无法正常工作。需要特别注意的是,有的winpe虽然可以利用IE上网,但是其IE会阻止在线查毒。从目前情形来看,32位PE可以使用“360急救箱winpe版”对硬盘上的32位和位系统进行杀毒。
如果第一步检查不能通过,则清除其病毒、木马或是风险程序。如果无法进行第二步检查,可以等你自己的可以IE上网的WinPE制作好以后再来进行。
把从下载的WinPE中提取的内核boot.wim中的所有文件,保存到文件夹F:\\样本PE_x86 _内核(或x)。如果提取出来的文件夹中多出来一个名为[Files] 的文件夹,可以将其删除。
顺便说一句,我们推荐在操作机上使用“金山毒霸”免费版,因为它不像某某杀软那样,对你用来制作PE的L盘进行特别“关照”,使你无法对L盘执行某些操作。
此外,对于下载回来的含有威胁的WinPE.iso文件,如果想用虚拟机看看其效果,可以如下操作:
①用7-zip提取其所有文件;
②加载其内核文件到Mount文件夹(详见“附录1 基本操作”之“装载基本WinPE映像”);
③用杀毒软件清除其威胁(可能需要多次反复查杀Mount文件夹,因为前几次可能找不到文件。Mount文件夹中明明有几千个文件,杀毒软件却报告检查了两个文件,不知何故);
④卸载其内核文件(详见“附录1 基本操作”之“提交上述更改(或简称“打包”)”);
⑤重新制作WinPE.iso映像文件(详见“附录1 基本操作”之“生成ISO文件”)。
准备ATIH(或ABR)的系统备份和异机还原需要使用的驱动程序
(1)x86和x系统的ATIH(或ABR)备份
把需要使用的x86和x系统的ATIH(或ABR)备份拷贝到文件夹“F:\\ ATIH和ABR映像”。关于ATIH(或ABR)备份操作,详见“附录6 Acronis True Image Home (简称为ATIH)用法” 或“附录7 Acronis Backup & Recovery(简称为ABR)用法”。
(2)驱动程序
把ATIH(或ABR)异机还原需要使用的所有驱动程序拷贝到文件夹“F:\\驱动程序库”。关于驱动程序,详见“附录1 基本操作”和“附录6 Acronis True Image Home (简称为ATIH)用法”或“附录7 Acronis Backup & Recovery(简称为ABR)用法”。
1.4.9 准备添加到WinPE的一些工具软件
准备添加到WinPE的工具软件必须是无需安装的所谓绿色软件!
(1)PECMD.exe(可选)
这是一个WinPE登录命令解释程序,有x86和x两种版本,仅有一个文件。利用它可以控制WinPE的启动过程。
有的版本的PECMD.exe在WinPE启动时会在屏幕顶部出现一行PECMD.exe作者的版权提示文字,在启动后的桌面会出现名为“pecmd说明”的快捷方式;有的版本这二者均不会出现。
国内的WinPE爱好者在制作WinPE时,一般都会使用PECMD,而国外一般不使用。本文将在涉及到PECMD.exe时,分别介绍。
(2)BootICE
这是一个引导扇区维护工具,在把winpe安装到移动硬盘时,我们需要用它来隐藏移动硬盘上的winpe分区。
把BootICE.exe拷贝到文件夹“F:\\定制PE的补充文件”。
(3)其它绿色软件
我们制作的WinPE对所用的绿色软件有一些特别的要求,例如,为了方便批处理自动
向开始菜单添加绿色软件的快捷方式,需要绿色软件的主程序位于软件一级目录下(其实一般软件都是这样)。这是因为我们编写的批处理默认仅搜索软件一级目录下的.exe文件,如果增加搜索目录层级,那将使得开始菜单杂乱无章。其实分类层数太多,也不方便使用。当然,如果你需要增加搜索目录层级,可以修改批处理文件AddShortcutKey.bat。
基于上述原因,对于那些同时支持32位和位的绿色软件,如果32位和位的主程序都在软件一级目录下,不必调整;如果32位和位的主程序都在软件二级目录下(例如二级目录名为32、等),那么必须将软件32位和位拆开,必须使主程序都在软件一级目录下。
此外,WinPE做在光盘上时,某些运行时需要写盘的绿色软件将不能运行;某些需要使用管理员权限的绿色软件在PE中可能无法运行。
把准备的绿色软件分类放在文件夹“PE工具”中备用。分类时注意,文件夹“PE工具”下只允许建立一层子文件夹,例如可以在“PE工具”中建立分类文件夹“文件编辑”、“系统检测”、“磁盘维护”等等文件夹。
利用微软的ADK工具包构建基本WinPE
构建基本WinPE的主要任务就两项,一是修改注册表,二是复制文件。
我们自己动手利用微软的ADK工具包生成原生态命令行WinPE,然后手动添加资源管理器explorer,从而使命令行WinPE成为图形界面的WinPE。
下面以生成用于日常基本维护(含上网)的32位WinPE为例(顺便提及位WinPE),
详细介绍带explorer的WinPE的制作过程。如果没有特别声明,其中“执行”均表示在ADK 的“部署和映像工具环境”窗口中执行。
如果你想真正弄明白个中道理,可以仔细阅读下文并自己动手逐步制作;如果你想偷点懒,也可以执行我们提供的“定制PE的补充文件”文件夹中的批处理“自动制作winpeNaNd”来替你自动制作。
要自动制作WinPE,必须按照“1.4 准备工作”的要求预先做好必要的准备工作,并把文件夹“定制PE的补充文件”复制到你的硬盘。然后执行“自动制作winpeNaNd”。如果执行途中停滞无反应,可能是你在进行PE注册表操作时,不小心把操作机的注册表给改了。只要对操作机的系统进行一次还原就可以了。
生成命令行的WinPE
以管理员身份执行【部署和映像工具环境】→此时进入DOS窗口(提示符为“D:\\program files\\WindowsADK\\Assessment and Deployment Kit\\Deployment Tools”)→执行:
copypeNaNd x86 L:\\winpe
其中,参数x86对应的是32位winpe,位winpe请改为amd。L:\\winpe可以任意指定,但必须是一个尚不存在的文件夹,因为ADK非要它自己建不可。这个文件夹就是我们构建图形界面WinPE的环境。
命令执行后,系统将自动在L盘根目录下建立文件夹winpe,其下含有文件夹
“media”、“mount”和“fwfiles”。其中文件夹media\\sources中含有内核文件boot.wim;文件夹fwfiles中含有WinPE的引导代码文件efisys.bin和etfsboot.com。
特别提示:
①文件或目录名中如果有空格,那么命令中的文件或目录名要加英文双引号。
②在WORD中打出来的英文双引号只是看起来像英文双引号,但一旦拷贝到命令行窗口中,就会变成中文双引号,导致执行错误。解决的办法是,在WORD中打开“替换对话框”,用“^34”(不含引号)替换WORD文档中的双引号,^34是英文双引号的ASIC代码。
③由于拷贝英文文字时,WORD会自动在目标位置的上一单词之后增加一个空格,所以如果你要把这里的代码拷贝到命令提示窗口,拷贝后要注意检查,是不是中间多出了空格。如果多出空格,也会导致执行错误。
④如果你不希望winpe启动期间出现的“按任意键从 CD 启动”提示,可以删除文件L:\\winpe\\media\\Boot\\bootfix.bin。
⑤执行命令“copypeNaNd x86 L:\\winpe”后,如果你接着再执行命令“Makewinpemedia /iso /f L:\\winpe L:\\winpe\\winpe.iso”,就可以得到命令行的WinPE.iso。你可以用虚拟机加载生成的WinPE.iso文件,启动后就是一个cmd窗口,如下图:
对大多数人来说,这样的WinPE显然是不方便使用的,所以我们必须进一步将其改为
我们熟悉的图形界面windows。
要实现图形界面windows,需要修改命令行WinPE的注册表,向命令行WinPE添加运行explorer所必须的文件,添加应用程序快捷方式等等一系列后续工作。
制作WinPE的注册表制作winpe时需要使用的
动手制作WinPE的注册表之前,请先阅读“附录3 WinPE注册表入门”。
总体思路如下:
步骤1、获取命令行WINPE的注册表配置单元software;
步骤2、获取windows注册表配置单元software;
步骤3、将命令行WINPE的注册表配置单元software导出为.reg文件;
步骤4、修改windows注册表配置单元software;
步骤5、向步骤4的结果导入步骤3的结果;
步骤6、进一步修改步骤5的结果(software配置单元);
步骤7、类似的对default进行处理;
步骤8、用步骤6和步骤7中得到的software和default配置单元替换命令行WINPE
的原software和default配置单元。
说明:如果你不是手动修改注册表,而是编辑一个注册表文件(.reg)导入的话,就要注意,.reg文件中的路径符号\\需要写成\\\\。因为导入时,\\\\会自动变成\\。
2.2.1 获取命令行WINPE的注册表配置单元
(1)生成命令行的 WinPE,详见“附录1 基本操作”。
(2)装载命令行的WinPE映像,详见“附录1 基本操作”。
(3)添加中文字体包、语言包并设置用户界面语言;添加程序包WinPE-WMI和程序包WinPE-WMI的中文语言包。详见“附录1 基本操作”。
(4)启用配置处理,详见“附录1 基本操作”。
(5)调整winpe启动时使用的内存大小,详见“附录1 基本操作”。
(6)将WINPE的注册表配置单元software、default和system复制到“L:\\config_命令行PE_x86”(或“L:\\config_命令行PE_x”)。
(7)卸载命令行的WinPE映像,详见“附录1 基本操作”。
说明:
①这里在装载命令行的WinPE映像之后,不要获取对文件夹L:\\winpe\\mount的管
理权限,否则卸载命令行的WinPE映像时,卸载不完全。
②运行“定制PE的补充文件\\批处理\\自动制作winpeNaNd”,在主菜单中执行“生成加包命令行WinPE的software配置单元”即可自动完成上述(1)~(7)的工作并得到winpe的注册表配置单元software、default和system。
获取windows的注册表配置单元
我们在前面的“1.4 准备工作”中已经利用7-zip将windows内核提取到文件夹F:\\windows_x86_内核(或F:\\windows_x_内核),这里再把F:\\windows_x86_内核(或F:\\windows_x_内核)\\windows\\system32\\config文件夹中的注册表配置单元software、default和system复制到文件夹“L:\\config_windows_x86”(或“L:\\config_windows_x”)。
把“L:\\config_命令行PE_x86”(或“L:\\config_命令行PE_x”)、
“L:\\config_windows_x86”(或“L:\\config_windows_x”)以及第三方注册表编辑器Registry Workshop拷贝到U盘备用。
将WINPE的注册表配置单元software导出为.reg文件;
(此步骤在虚拟机的winpe系统中进行)
(1)在虚拟机中启动样本winpe
如果你在未安装操作系统的虚拟机中启动winpe后,在主机上插入U盘,通过资源管理器能看到你的U盘,就直接把U盘上的第三方注册表编辑器RegistryWorkshop、命令
行WINPE的注册表配置单元以及Windows的配置单元拷贝到虚拟机的D:盘备用。
如果你在虚拟机中启动winpe后,不能看到你插在主机上的U盘,则需要在虚拟机中安装、激活Windows,此后将能看到你插在主机上的U盘;再把U盘上的第三方注册表编辑器Registry Workshop、命令行WINPE的注册表配置单元以及Windows的配置单元拷贝到虚拟机的D:盘备用。
(2)启动注册表编辑器Registry Workshop
注意,Registry Workshop有32位和位之分,其中位RegistryWorkshop只能在位操作系统下运行。
加载命令行WinPE的注册表配置单元software
修改windows注册表配置单元software
(此步骤在虚拟机的winpe系统中进行)
加载我们复制到D:盘的windows的software配置单元(注意,不是虚拟机C: 盘中已安装的windows的注册表!),命名为aaa。
(1)将aaa中的 “C:\\”(不含引号)全部替换为“X:\\” (不含引号)
注意,RegisterWorkshop每次搜索上限为到1000项,如果需要替换的项多余1000项,那么需要重复操作多次。
在aaa下搜索C:\\(注意勾选【搜索项】、【搜索值】和【搜索数据】),列出第一批1000个
右击上图下部的搜索结果→【全部选定】→再次右击上图下部的搜索结果→【替换】→【替换为】→键入“X:\\ ” →【替换】;
(或者在主菜单中选【搜索】→【在查找结果1中替换】→【替换为】→键入“X:\\ ” →【替换】。)
此时系统提示“1000处被替换”→【确定】。
重复进行上述替换操作,究竟需要几次替换操作,以你搜索“C:\\”的结果是0为准。如果出现少许几项无法替换的,可忽略。
(2)将aaa中的 “D:\\”(不含引号)全部替换为“X:\\” (不含引号)
操作方法类似于替换“C:\\”。
(3)在aaa下搜索Interactive User,共有76个,将其全部删除
右击搜索结果→【全部选定】→再次右击上图下部的搜索结果→【从注册表中删除】→【是】
导入WINPE的software配置单元
(此步骤在虚拟机的winpe系统中进行)
选中aaa→在主菜单中选【文件】→【导入】→定位到我们在2.2.3中导出的WINPE的注册表配置单元software的aaa.reg
单击【打开】→此时系统提示“aaa.reg中的信息已经成功导入到注册表中”→【确定】。
进一步修改software配置单元
(此步骤在虚拟机的winpe系统中进行)
(1)把桌面环境(外壳)由cmd.exe改为explorer.exe
定位到
HKEY_LOCAL_MACHINE\\aaa\\Microsoft\\WindowsNT\\CurrentVersion\\Winlogon
将其中shll值的数据由“cmd.exe /k stsrt cmd.exe”改为explorer.exe
(2)修复【计算机】右键菜单中的【管理】
如果不进行修复,winpe启动后,右击开始菜单中的【计算机】→【管理】将没有反应。
定位到
[HKEY_LOCAL_MACHINE\\aaa\\Classes\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\shell\\Manage\\command]
将其数据:
%SystemRoot%\\system32\\CompMgmtLauncher.exe
改为:
%SystemRoot%\\System32\\mmc.exe/b compmgmt.msc
(3)使复制文件时出现进度条
要使复制文件时出现进度条,需要修改配置单元SOFTWARE。
第一步 赋予用户组Users完全控制权
定位到:
[HKEY_LOCAL_MACHINE\\aaa\\Classes\\AppID\\{515980c3-57fe-4c1e-a561-730dd256ab98}]
右击【Classes\\AppID\\{515980c3-57fe-4c1e-a561-730dd256ab98}】→【Users】→勾选【完全控制】→【高级】→【更改】→【高级】→【立即查找】→单击【Users】→【确定】→【确定】→勾选【替换子容器和对象的所有者】→勾选【使用可从此对象继承的权限项目替换所有子对象的权限项目】→【确定】→【是】→【确定】。
第二步 修改
导入下面的.reg文件:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\\aaa\\Classes\\AppID\\{515980c3-57fe-4c1e-a561-730dd256ab98}]
\"RunAs\"=\"\"
说明:对于位PE,还需要类似地多修改一项:
[HKEY_LOCAL_MACHINE\\aaa\\Classes\\AppID\\{41CA32F2-698A-4fd8-BB78-B102CE155F53}]
(4)显示壁纸所需要的修改
详见“附录1 基本操作”中的“例. 显示壁纸的方法”。
(5)卸载配置单元aaa,关闭注册表编辑器RegistryWorkshop。
(6)把D:盘上已修改过的windows的software配置单元先复制到U盘,并最终复制到文件夹“定制PE的补充文件\\x86(或x)\\system32”备用。
说明:
①我们在文件夹“定制PE的补充文件\\x86(或x)\\system32”中提供了已经修改好
的software配置单元。
②注册表中还有一些地方需要修改,我们把它放到后期定制时再来做,详见“附录3 WinPE注册表入门”。
除开我们介绍的修改项,如果有必要,你可以先上网查询拟修改项在注册表中的位置,再利用Registry Workshop来比较自建winpe与样板winpe注册表以及安装后的Windows注册表中拟修改项的区别,然后对自建winpe的注册表作进一步的修改。
类似的对default进行处理
注意,只需要做步骤1~5,且步骤4中替换时仅需将C:\\替换为X:\\(因为本来就没有D:\\以及Interactive User)。
替换PE的software和default
(此步骤在操作机上进行)
用2.2.6和2.2.7中得到的software和default替换PE的software和default。
把文件夹“定制PE的补充文件\\x86(或x)\\system32”中的software和default配置单元放进WINPE中覆盖同名文件。
添加运行explorer所必须的文件
如果缺少了关键文件,运行explorer时将会出错,例如缺少MMC,计算机右键菜单
“管理”变成英文且无效;如果缺少Ctfmon,桌面将没有语言栏;如果缺少某些文件,控制面板的“调整屏幕分辨率”将无效;如果缺少Theme,桌面背景将变为黑色;如果缺少WinSXS,xPE将不能固定光盘盘符;如果缺少SysWow,xPE将不能支持32位应用程序,等等。
怎么知道需要添加哪些文件?这可以有两种方法。一是参考样本PE从windows原版文件中照搬;二是根据你想要的winpe功能从windows原版文件中移植。前者简单,但是总要落后于别人;后者复杂,需要了解windows原版文件的用途,但是可以做中国第一。
当然,也可以结合上述两种方法,先使用第一种方法建立一个基本winpe,再使用第二种方法来排除故障。
需要注意的一点是,当你添加了某些文件后,winpe系统将无法正常启动。其表现可能是反复自启动,或者提示“Recovery”,或者黑屏无反应等等。遇到这种情况,就必须利用分批拷贝文件的方法,找出是哪个文件导致的这种现象,否则添加文件的工作将无法继续。有的时候甚至会出现只要动了内核,就无法启动winpe的现象,哪怕只是加载内核,什么都不动,紧接着卸载内核都无法启动winpe。遇到这种情况,可以首先格式化L:盘后重新制作winpe;要是还不行,就得找出是添加了哪些文件导致的。
参考样本PE从windows原版文件中照搬
这里以x86系统为例,对于x系统,把下文中的“x86”改成“x”即可。
我们利用文件差异比较工具(例如Beyond Compare),对文件夹L:\\winpe\\mount
(我们在上述2.1中获取的命令行WINPE) 和文件夹“F:\\参考PE_ x86”进行比较。只要是F:\\参考PE_x86中有,且F:\\windows_x86中也有,而命令行PE中没有的文件,就从F:\\windows_x86中拷贝到你自己做的命令行winpe(L:\\winpe\\mount)的对应目录中。拷贝时不要覆盖你自己做的winpe目录中的已有同名文件。
具体操作步骤如下:
第1步 提取winpe内核
用7-zip将自己做的winpe的内核文件boot.wim提取到文件夹“L:\\winpe_x86_内核”(或者“L:\\winpe_x_内核”)。
第2步 比较文件(以比较文件夹Windows为例)
运行Beyond Compare→单击左侧的【文件夹比较】→在左侧窗口中打开文件夹“L:\\winpe_x86_内核\\Windows”→在右侧窗口中打开文件夹“F:\\参考PE_
x86\\Windows”→在主菜单中选【编辑】→【展开所有】→在主菜单中选【查看】→单击【忽略文件夹结构】和【显示右侧孤立项】(此时该两个选项前面的图标会出现一个正方形小框)→选中右侧窗口中的所有文件→右击右侧窗口→【复制文件名】→打开“F:\\定制PE的补充文件\\批处理\\拷贝文件\\源文件清单_排序”→清空文件中的原有内容→右击文件中的空白处→【粘贴】→在主菜单中选【文件】→【保存】。
第3步 修改“源文件清单_排序”并将其内容复制到“源文件清单.txt”
修改“源文件清单_排序”,使其符合下面的要求:
①清单中的每一行必须含有路径;
②路经的最上层为:Windows、Program Files、Program Files(x86)、ProgramData或Users(有时可能还有sources);
③对“源文件清单.txt”中的内容进行升序排序,这可以将其内容转换成单列表格形式,排序后再转换成文本形式;
④清单中可以使用注释语句REM,也可以有空行。
完成后将其内容复制到“源文件清单.txt”中。
说明:“源文件清单.txt”中的内容也可以是从网上下载的WinPE文件清单。
第4步 生成批处理ADDFiles.bat和AddFolder.bat
我们提供批处理来协助进行这步工作。以管理员身份运行批处理“自动制作winpeNaNd”,在主菜单中执行“生成拷贝系统文件的批处理”。
生成的批处理AddFolder.bat用来自动在你自己做的命令行winpe(L:\\winpe\\mount)中建立必要的文件夹;而批处理ADDFiles.bat用来自动从F:\\windows_x86中将文件拷贝到你自己做的命令行winpe(L:\\winpe\\mount)的对应目录中。
第5步 利用比较结果
把生成的ADDFiles.bat和AddFolder.bat拷贝到文件夹“F:\\定制PE的补充文件\\批
处理”中。
如果文件夹“F:\\定制PE的补充文件\\批处理”中已经存在ADDFiles.bat,而这次是补充新的文件,则把两个ADDFiles.bat文件的内容合并。对AddFolder.bat也一样。
当然也可以不合并而是将补充新文件的ADDFiles.bat改名为ADDFiles2.bat,编号最大可以到5,再大就需要修改批处理文件“生成WinPE_ISO文件.bat”。对补充新文件夹的AddFolder.bat也一样改名。
特别提示:
(1)和制作win7pe时不同,如果使用win8的原装资源管理器explorer.exe, 启动PE后,不会直接出现桌面图标,而是需要右击桌面点刷新才能显示桌面图标;而且打开的程序不会在任务栏出现图标;当然,打开的窗口最小化后,任务栏也不会出现图标。
对此问题,目前的win8pe一般均采用变通办法:使用win7的explorer.exe.mui,同时对win8的explorer.exe进行修改,并另行制作一个文件wrp32.dll(x为wrp.dll)和explorer.exe放在一起。这样一来,除开解决上述问题之外,还可以出现win7的开始菜单。
至于explorer.exe和wrp32.dll(或wrp.dll)具体是怎么做出来的,从网上没有查到制作方法。
我们知道,利用工具软件patchex7可以使装有windows 8的机器出现开始菜单。但是直接将patchex7处理后的windows 8中的explorer.exe、explorer.exe.mui和
wrp32.dll(或wrp.dll)复制到winpe中并不能用!注意,patchex7中的主程序patchex7.exe或patchex7_x.exe会被杀软报毒,但是没有对其中的wrp32.dll(或wrp.dll)报毒。
目前我们只能从样本PE中提取explorer.exe(分32位与位)和wrp32.dll(或wrp.dll)来使用。wrp32.dll(或wrp.dll)也可以从patchex7提取。
目前win8pe使用的wrp32.dll(或wrp.dll)有两种,一种是开始菜单仅有“所有程序列表”,没有“固定项目列表”和“常用程序列表”;另一种是开始菜单既有“所有程序列表”,也有“固定项目列表”和“常用程序列表”。为了方便模仿win8的快速访问菜单,我们使用前者。
如果你认为提取的explorer.exe中的开始按钮图标不合你的意,你可以从网上查找你喜欢的开始按钮图标,然后利用开始按钮图标替换工具进行替换。
注意,不是所有的替换工具都能完成我们所需要的操作,这里介绍我们试验确认可行的一种操作方法,该方法同时支持winpe_x86和winpe_x:
第一步,在虚拟机中安装Wimdows 8;
第二步,启动虚拟机中的Wimdows 8,用win8pe的explorer.exe、explorer.exe.mui和wrp32.dll(或wrp.dll)替换Wimdows 8的;
第三步,重启虚拟机中的Wimdows 8,此时Wimdows8的开始屏幕消失,出现win8pe的开始菜单;
第四步,用“魔方开始菜单按钮修改 V1.2”软件替换开始按钮图标,操作步骤如下:
更换:启动“魔方开始菜单按钮修改 V1.2”→【浏览】→定位到新的开始菜单按钮→【打开】→此时自动刷新explorer.exe,然后即可看到开始菜单按钮已变成你选择的新的开始菜单按钮了。
还原:启动“魔方开始菜单按钮修改 V1.2”→【恢复默认】→【确定】。
说明:
①利用Resource Hacker、IcoFXPortable等工具软件无法看到explorer.exe中的开始菜单按钮图标。
②如果你的Wimdows 8 中已经安装了.net 3.5,替换将会无效。此时可以打开【控制面板】→【程序】→【程序和功能】→【启用或关闭Windows功能】→停用【.NET Framework3.5(包括.NET2.0和3.0)】。
③启动“魔方开始菜单按钮修改 V1.2”后,魔方界面不会显示explorer.exe中原来的开始菜单按钮,所以我们也就无法从explorer.exe中提取原来的开始菜单按钮。
④新版“魔方开始菜单按钮修改”软件(例如V1.6)不支持我们这样来替换。
第五步,用修改后的Wimdows 8 中的explorer.exe替换win8pe中的同名文件。
(2)命令行win8pe中用的是win7中的任务管理器,而且还是英文版。我们在此基础上制作的图形界面的win8pe中的任务管理器也是英文版,如果想要改为中文版,可以
把中文版win7中的system32\askmgr.exe复制到
L:\\winpe\\mount\\windows\\system32,同时把中文版win7中的system32\\zh-CN\askmgr.exe.mui复制到L:\\winpe\\mount\\windows\\system32\\zh-CN。
(3)向你自己做的winpe补充新文件时,最好分批添加。之所以要这样,是因为到时如果发现有冲突,可以缩小查找范围。
已经发现的冲突有如下三类:
①系统的某一项或几项主要功失效
我们在制作过程中发生过这样一件事,我们编写了一个向开始菜单自动添加外置程序快捷方式的批处理,已确认该批处理能正常工作,而且添加的快捷方式也有效。后来每添加一部分文件后,都对该批处理进行了试用,也都能正常向开始菜单添加外置程序快捷方式,只是没有再检测添加的快捷方式是否有效。结果到最后还是出了问题,向开始菜单添加的外置程序快捷方式居然不起作用。检查开始菜单外置程序快捷方式的属性后发现,其【快捷方式】→【目标】为空。为了找出这一问题是哪个文件造成的,只好从最开始分部分逐步添加文件,找到导致问题的那个部分后,再用对半法检测,最终确认是文件stobject.dll导致这一问题。不添加该文件后,问题解决。我们为此浪费了几天的时间,教训深刻。
②内核不能再编辑
我们在制作过程中发生过这样一件事,我们针对出现的IE进不了下级页面、寻找新的
在线杀毒软件等诸多问题,添加了一些文件。制作出来的PE也能正常工作,结果到最后出现内核不能再编辑的现象。
只要你加载内核,甚至不做任何修改,然后使用保存后卸载命令卸载内核,生成PE后将反复重启!
这样的PE使用起来虽然没有问题,但是不方便使用者根据自己的喜好进行修改。所以我们只好从头开始再走一遍,找到某几个文件导致内核不能再编辑的问题。我们为此浪费了2周的时间,教训同样深刻。
③不能加载注册表配置单元
只要加载PE的software配置单元,不做任何修改,卸载配置单元后生成的PE启动时将提示“Recovery”。
事后通过几天的试验才证实,SysWOW下的文件一般只能在执行批处理自动制作PE时添加,而不能向已经制作完成的PE中添加。即使是在执行批处理自动制作PE时添加,SysWOW下的某些文件也会导致注册表不能再编辑的现象。
根据你想要的winpe功能从windows原版文件中移植
建立配置文件winpeshl.ini
最后,为了使explorer开机自动启动,我们新建一个文本文档,输入以下内容:
保存为winpeshl.ini,再将此文件放进PE的system32文件夹内。
说明:
①我们制作的x86和x的winpeshl.ini文件不完全相同,分别放入文件夹“定制PE的补充文件\\x86\\system32”和“定制PE的补充文件\\x\\system3。2”。顺便提及,x86和x需要的相同文件放入文件夹“定制PE的补充文件\\ system32”。
②winpeshl.ini文件必须在上面“2.2.5进一步修改software配置单元”完成后再放到system32下,否则,PE将不断重启。
精简步骤
精简之前,需要对我们自制的winpe进行试运行,保证所有的外置软件都能正常运行。并对winpe的哪些功能可用,哪些功能不可用,也要做到心中有数。
精简文件时,最好分批删除,每删除一批文件,生成的内核boot.wim都保留。
精简完成之后,试运行WinPE中的各种软件,如果某一软件不能运行且系统提示缺少某个程序,找回来即可;如果某一软件不能运行且系统没有提示,那就需要利用保留的内核boot.wim对删除操作做回滚实验(例如按照字母排列顺序,使用对半优选法),直至软件能够运行且找回来的文件尽可能少。如果想要定位到某一两个文件,可能需要花费较多的时间,每次试验需要大约7分钟。
分批删除时,应该使用批处理,每一批要删除的文件都要列在各自的.txt文本文件里,这是为了方便日后查找软件运行故障。
批处理“定制PE的补充文件\\批处理\estNaNd”就是专门用来担任测试工作的的批
处理,里面放置了一些用得较多的命令,你还可以自己添加。文本文件“定制PE的补充文件\\批处理\est_simplify_Folder_xxx.txt”和“定制PE的补充文件\\批处理
\est_simplify_Files_xxx.txt”就是用来列出待删除的文件夹或文件清单的。其中xxx是下面精简步骤中的序号。
精简之前先做一个精简计划,例如下表(以winpe 4.0为例):
序号 精简位置 文件夹 文件 文件大小(单位MB) 启动时间 备注
样本 自制PE 自制PE精简后 节省空间
01 除开en-US和zh-CN之外的其他语言 √
02 Windows √
03 Windows\\Boot √
04 Windows\\Fonts √
05 Windows\\System32 √
06 Windows\\System32 √
07 Windows\\system32\\driverstore\\FileRepository √
08 WinSxS √
09 WinSxS\\Manifests √
上表中的“节省空间”,指的是打包前的容量;上表中的“启动时间”指的是从开机到进入桌面所用时间(秒)。
说明:
①添加Wim程序包后,多出来的文件如下(不含zh-CN和en-US文件夹):
Windows\\Boot\\Fonts:chs_boot.ttf,msyh_boot.ttf,msyhn_boot.ttf。
Windows\\Fonts:mingliu.ttf,msyh.ttf,simsun.ttf。
Windows\\inf\\PERFLIB\\0804(文件夹)
Windows\\inf\\RemoteAccess\\0804(文件夹)
Windows\\servicing\\Packages:190个文件
Windows\\servicing\\Sessions:8个文件
Windows\\System32\\catroot\\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}:95个文件
Windows\\System32\\wbem\\xml:4个文件(原来有此文件夹,不过是空的)
Windows\\WinSxS\\Backup:107个文件
Windows\\WinSxS\\Catalogs:84个文件
Windows\\WinSxS\\FileMaps:14个文件
Windows\\WinSxS\\Manifests:763个文件
Windows\\WinSxS:(许多个文件夹)
②添加Hat程序包后,多出来的文件如下(不含zh-CN和en-US文件夹):
Windows\\servicing\\Packages:20个文件
Windows\\servicing\\Sessions:12个文件
Windows\\System32\\catroot\\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}:10个文件
Windows\\System32\\wdi\\perftrack:2个文件(原来有此文件夹,不过是空的)
Windows\\WinSxS\\Backup:2个文件
Windows\\WinSxS\\Catalogs:10个文件
Windows\\WinSxS\\Manifests:42个文件
Windows\\WinSxS:31个文件夹
③添加程序包后,在Windows\\WinSxS文件夹中增加的文件,有许多也是可以删除的。
④如果内核中加了Wim包,对Windows\\fonts精简后,即使利用Imagex执行导出,其内核也没有减小,不知何故。
⑤有的文件精简后,PE启动时间反而延长,例如:
Windows\\System32\\Windows.System.RemoteDesktop.dll
Windows\\System32\\wkssvc.dll
Windows\\System32\\wkssvc.dll
Windows\\System32\\DriverStore\\FileRepository\\pcmcia.inf_x86_9f4d6b32de1fa8e0\\*.*
Windows\\System32\\DriverStore\\FileRepository\\qd3x86.inf_x86_b6be01688edd638a\\*.*
Windows\\Boot\\PCAT\\*.*
⑥精简前需要重新获取文件夹%Mou%的权限,否则部分文件将无法删除。
构建配置文件
构建配置文件的目的是记录你的PE在运行中没有使用的文件,然后将其删除,以减小PE的体积。
1、提供配置文件的保存地
例如,在操作机上插入一个U盘,打开虚拟机电源,系统提示“可移动设备……”→【确定】→在主菜单中选【虚拟机】→【可移动设备】→【USB大容量存储设备】→【Connect】→此时虚拟机的界面右下角的移动硬盘小图标会由灰色变成彩色,并点亮移动硬盘小图标上的指示灯。
2、运行所有软件
在虚拟机中启动WinPE,对每个应用程序(包括你自己添加的软件)运行全部所需的功能(例如保存记事本文件时,不要遗漏使用“另存为”功能)。
3、保存配置文件
在命令提示符窗口中执行:
wpeutilsaveprofile F:\\Profile.txt \"Image Optimization Profile\"
其中F:是U盘,盘符视你的实际情况确定。
说明:可以再次从同一WinPE 映像进行引导,运行不同的应用程序并保存新的配置
文件。稍后在优化时,DISM 将自动组合这些配置文件。
优化
1、创建基本WinPE内核boot.wim文件的副本
这是为了将原始映像boot.wim与运行 Apply-Profile 命令后的映像进行比较。
2、装载(加载)基本WinPE映像
详见“附录1 基本操作”。
3、将配置文件应用于测试映像
执行:
Dism /image:L:\\winpe\\mount /Apply-Profiles:M:\\Profile.txt
其中M:是上面那个保存配置文件的U盘,盘符视你的实际情况确定。之所以盘符由F:变为M:,是因为F:是U盘在虚拟机中的盘符,而M:是U盘在操作机中的盘符。
说明:运行所有软件后,如果文件未被使用,执行该命令后,则自动被删除。
4、提交上述更改(或简称“打包”)
详见“附录1 基本操作”。
5、导出新的映像boot.wim
详见“附录1 基本操作”。
6、用新的boot.wim替换原来的 boot.wim
将刚导出的新的boot.wim 替换原来的 boot.wim。
生成ISO文件
制作WinPE维护盘
合盘
所谓合盘,就是把几个系统集成在一个U盘或一张光盘上,这里介绍做32位与位的WinPE双启动。
第一步 复制文件
(1)复制WinPE内核
由于位的WinPE比32位的WinPE多出几个特有的启动文件,所以我们在做双启动时,必须以位的WinPE作为基础。为叙述方便起见,我们不妨假设文件夹L:\\winpe为制作完成的位WinPE;而文件夹L:\\winpe_x86为制作完成的32位WinPE。
把制作完成的32位与位WinPE的boot.wim文件分别重命名为boot32.wim和
boot.wim。并把这两个文件都放在文件夹L:\\winpe\\mount\\media\\source 中。
(2)复制启动菜单的中文支持文件
新建文件夹L:\\winpe\\media\\boot\\zh-cn,
从已安装的32位或位Windows8中复制文件夹“Windows\\Boot\\PCAT\\zh-CN”中的bootsect.exe.mui和bootmgr.exe.mui到L:\\winpe\\media\\boot\\zh-cn。
第二步 修改WinPE的bcd文件
bcd文件位于L:\\winpe\\media\\boot。
bcd文件内含系统启动配置数据,其本质也是一个类似注册表配置单元的二进制文件。
bcd文件结构分为项、元素和值,项下有多个元素(也称为参数),每个元素都有一个值。
附录:完全使用ADK制作最纯正的WinPE。(默认无gui,可添加)
Windows 8.1 ADK 制作纯净版Windows Pe详细步骤及32位/位版仅集成简体中文支持语言包的WinPE ISO分享
制作纯净版Win PE ISO环境:虚拟机+ Windows 8 MSDN 原版 + Windows 8.1 ADK实例。
安装Windows 8.1 ADK到默认安装目录,安装不支持Win XP,本人选用Win 8 MSDN原版,选择需要安装的组件,这里仅选则部署工具和预安装环境两项即可,无需安装其他组件。
在开始屏幕(Win8 特有的)拉到右侧,右键单击部署工具,点击屏幕下方,单击使用管理员运行,启动。
32位制作:
依次输入一下命令:
1. copype x86 C:\\WinPE_x86
复制代码
1. Dism /mount-image
/imagefile:C:\\WinPE_x86\\media\\sources\\boot.wim/index:1 /mountdir:C:\\winpe_x86\\mount
复制代码
以下这条指令是给WinPe集成支持的简体语言包,用以显示中文文件,如果仅用英文,可以忽略这条命令:
1. Dism /image:C:\\winpe_x86\\mount/add-package /packagepath:\"C:\\Program Files\\Windows Kits\\8.1\\Assessmentand Deployment Kit\\Windows
PreinstallationEnvironment\\x86\\WinPE_OCs\\WinPE-FontSupport-ZH-CN.cab\"
复制代码
以下这条指令可以不用,仅仅显示安装的语言包的信息:
1. Dism /image:C:\\winpe_x86\\mount /get-intl
复制代码
1. Dism /unmount-image/mountdir:C:\\winpe_x86\\mount /commit
复制代码
1. MakeWinPEMedia /ISO C:\\WinPE_x86C:\\WinPE_x86\\WinPE_x86.iso
复制代码
若将 Windows PE 安装到 U 盘,并指定驱动器号:
1. MakeWinPEMedia /UFD C:\\WinPE_x86 F:
复制代码
“F”为你的优盘盘符。
位制作:
1. copype amd C:\\WinPE_amd
复制代码
1. Dism /mount-image/imagefile:C:\\WinPE_amd\\media\\sources\\boot.wim /index:1/mountdir:C:\\winpe_amd\\mount
复制代码
1. Dism /image:C:\\winpe_amd\\mount/add-package
/packagepath:\"C:\\Program Files\\Windows Kits\\8.1\\Assessmentand Deployment Kit\\Windows
PreinstallationEnvironment\\amd\\WinPE_OCs\\WinPE-FontSupport-ZH-CN.cab\"
复制代码
1. Dism /image:C:\\winpe_amd\\mount/get-intl
复制代码
1. Dism /unmount-image/mountdir:C:\\winpe_amd\\mount /commit
复制代码
1. MakeWinPEMedia /ISO
C:\\WinPE_amdC:\\WinPE_amd\\WinPE_amd.iso
复制代码
若将 Windows PE 安装到 U 盘,并指定驱动器号:
1. MakeWinPEMedia /UFD C:\\WinPE_amd F:
复制代码
“F”为你的优盘盘符。(本文转自互联网)
(以上内容足以打造自己的个性PE)
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务