原生态winpe添加explorer教程

更新时间:2023-11-06 02:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

原生态winpe添加explorer教程(上):基础知识及

explorer的初步加入

前言:虽然有winbuilder一类的优秀制作winpe的工具,还是打算写一个从WAIK入手,”手工”制作原生态winpe并加入explorer的超级教程,此教程分为两个部分,第一部分提及winpe及waik的基础知识,以及用waik添加程序包,通过修改win7sp1安装文件中的注册表software配置单元实现explorer的初步加入。第二部分介绍explorer的完善和设置,windows功能的添加,以及对winpe精简和合盘等的一些讨论。希望winpe爱好者们在看完本文后也能做出自己满意的winpe.

下面以64位winpe3.1为例,详细介绍制作带explorer的win7pe的操作过程,最终得到一个功能较为全面的winpe。

1、winpe和WAIK的一些基本知识:

1)、winpe全称Windows Preinstallation Environment,中文意思就是Windows预安装环境。winpe 1.x系列对应WindowsXP和2003,也可以叫xpe,需要注意的是Windows XP Embedded也简称xpe。不过在winpe领域,xpe应该不具有误导性,相应的winpe 2.x系列对应windows vista和2008, 也叫vistape。3.x系列是对应windows 7和2008R2,所以有时也叫win7pe。后面的小标号x则是对应各个sp版本,如某个pe是winpe2.2,即表示对应于vista sp2,目前最新的winpe3.1就是对应于win7 sp1。 2)、WAIK全称Windows Automated Installation Kit,意为自动安装工具包。我们做winpe主要用到他的2个工具:imagex和dism,要制作winpe3.1需同时下载WAIK3.0(KB3AIK_CN.iso 含制作工具)和3.1的补充包(waik_supplement_zh-cn.iso 含新的wim文件)。另外,winpe2.0以后的程序系统和语言包都是分离的,WAIK的语言版本也就不是问题了,各个版本都含有对应的语言包,只需要自己添加就行了,下面的例子是以中文版为例,其他语言版本也可。 2、准备工作: 理想情况下,建议大家准备好两个waik的iso文件和win7sp1的中文版安装镜像,要中文版win7主要是为了让最后制作出来的带explorer的winpe完全中文化。如果你没有win7sp1中文版安装iso,只要你的操作系统是win7sp1中文版就可以了(可以通过安装中文sp1包升级)。其他软件包括ultraliso和Registry Workshop。 3、winpe的基本制作:

WAIK其实提供了快速生成原生态winpe的脚本,不过为了使大家更好的了解winpe,在这里手动完成。 1)、加载waik_supplement_zh-cn.iso进入amd64文件夹,拷贝boot文件夹bootmgr文件到 D:\\TEMP\\winpe3.1\\org\\win7pe (以这个路径为例)。

2)、拷贝amd64文件夹下winpe.wim到D:\\TEMP\\winpe3.1\\org\\win7pe\\sources,并改名为boot.wim。

3)、用ultraiso打开win7安装文件,提取iso引导信息文件备用,比如存为boot.bif。新建一个启动光盘,引导文件则用刚才存储的boot.bif文件,把

D:\\TEMP\\winpe3.1\\org\\win7pe\\下所有文件加入这个启动光盘,保存为winpe.iso,一

个最基本的原生态winpe就完成了。用虚拟机测试一下吧,启动后就是一个cmd窗口,如下图:

这个winpe是最基本的、原生态的,显然不好用,我们需要修改boot.wim文件加入程序包。

4、程序包的加入:

1)、加载waik_supplement_zh-cn.iso进入amd64文件夹,拷贝WINPE_FPS到D:\\TEMP\\winpe3.1\\org\\win7pe (以后以这个路径为例)。

2)、新建文件夹D:\\TEMP\\winpe3.1\\org\\mount,在开始菜单上打开Windows AIK中打开”部署工具命令提示”,如下图:

3)、展开imagex以供修改,运行如下代码:

imagex /apply D:\\TEMP\\winpe3.1\\org\\win7pe\\sources\\boot.wim 1 D:\\TEMP\\winpe3.1\\org\\mount 4)、添加程序包:

AIK的说明文件里面有详细介绍,推荐添加以下6个包: WinPE-HTA:HTML 应用程序支持

WinPE-MDAC:Microsoft(R) 数据访问组件支持 WinPE-Scripting:Windows 脚本主机 (WSH) 支持

WinPE-WMI:Windows Management Instrumentation (WMI) 支持 WinPE-PPPoE:启用以太网上的点对点协议(PPPoE) 支持(如ADSL) WinPE-DOT3SVC:IEEE 802.X 身份验证协议支持(如WiFi) 命令格式如下:

dism /image:D:\\TEMP\\winpe3.1\\org\\mount /Add-Package

/PackagePath:”D:\\TEMP\\winpe3.1\\org\\WINPE_FPS\\winpe-wmi.cab” 添加其他程序包格式一样,只需修改cab文件路径,别忘了各个程序包还有相应的_ZH-CN.CAB包。注:如果是英文版的WAIK,还需要先添加WINPE-FONTSUPPORT-ZH-CN和LP_ZH-CN包,然后设置:

dism /image:D:\\TEMP\\winpe3.1\\org\\mount /set-uilang:zh-cn dism /image:D:\\TEMP\\winpe3.1\\org\\mount /set-syslocale:zh-cn dism /image:D:\\TEMP\\winpe3.1\\org\\mount /set-userlocale:zh-cn

dism /image:D:\\TEMP\\winpe3.1\\org\\mount /set-inputlocale:0804:00000804

dism /image:D:\\TEMP\\winpe3.1\\org\\mount /set-timezone:”China Standard Time” dism /image:D:\\TEMP\\winpe3.1\\org\\mount /set-SKUIntlDefaults:zh-cn 最后删除英文包:

dism /image:D:\\TEMP\\winpe3.1\\org\\mount /Remove-Package

/PackageName:Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~6.1.7601.17514

5)、explorer初步加入winpe中

1)、大家估计都急着让winpe运行explorer,我们把explorer加入到windows目录下,运行

imagex /capture /compress fast /boot D:\\TEMP\\winpe3.1\\org\\mount D:\\TEMP\\winpe3.1\\org\\win7pe\\sources\\boot.wim “winpe” “winpe”

重新打包boot.wim,并替换掉winpe.iso中的boot.wim,保存后放入vm测试,在启动后还是一个cmd窗口,直接输入explorer.exe,你看到了什么? 系统提示缺少ExplorerFrame.dll。显然,单独加入explorer.exe是不行的。简单的说windows系统程序的正常运行至少要满足两点,一个是相关的支持文件出现在正确的路径中(如各个dll文件和mui文件等),另外一个就是正确的注册表配置(程序运行的设置和支持文件的路径等)。明白了这点,一切就很清晰了。基本的explorer运行并不需要任何第三方程序的加入或是对微软的文件进行任何修改,只要添加了支持explorer运行的文件,配置好了注册表,就可以在winpe中正常运行explorer了。

2)、其中文件的加入部分这里不想细讲,因为它既繁琐又简单,意义不大,为什么呢?你运行程序,它提示你少什么文件,你加入就是了。如果你有耐心,可以一个一个加(当然,有时候他并不会提示你缺少某个文件,而explorer还是不能运行),文件的加入相对于注册表的是显而易见的。即使是才接触计算机的网友,只要他会复制和粘贴就没问题。另外,你还可以用鼠标右键看文件说明。 其实winpe的制作就是不断地积累,吸收前人的经验。我更喜欢先对比别人的winpe,看看别人都加了些什么文件。换一个思路,先添加足够的文件,运行起了explorer后再删除。因此建议直接把wingwy-pe3.1-v2.iso中winpe.wim文件展开,同时展开win7sp1的install.wim文件,依照winpe文件列表复制win7的安装文件到你要做的winpe目录D:\\TEMP\\winpe3.1\\org\\mount下(实现此步有很多办法,比如用xcpoy带/s /h /d /y 参数)。实在不行就直接复制wingwy-pe3.1-v2.iso展开的文件,注意不要替换文件。

3)、现在动winpe的注册表了,注意

D:\\TEMP\\winpe3.1\\org\\mount\\Windows\\System32\\config下的三个文件 software, system 和 default,用注册表编辑器加载software单元,命名为pe-soft全部导出为soft-init.reg后,卸载pe-soft配置单元。

a、打开win7sp1的install.wim文件(可以用7-zip,用imagex展开也可),定位到Windows\\System32\\config下,把software文件加载到注册表,同命名为pe-soft。到时你会遇到权限问题,可先在”权限”-”高级”中替换”所有者”为你当前用户,再在”权限”中添加好权限。

b、在pe-soft下搜索Interactive User,找到后全部删除。 c、在pe-soft下搜索D:\\ 全部替换为X:\\。

d、导入刚才的soft-init.reg替换掉win7安装文件的,卸载pe-soft.

4)、用imagex打包,生成iso后启动vm测试,还是命令提示符窗口,不过你现在运行explorer.exe看看,熟悉的explorer是不是已经出来。

好了,explorer已经成功运行了,不过显然达不到大家需要的效果,比如:没有任务栏、没有桌面,下面就继续修改注册表。 5)、把任务栏和桌面显示出来。

a、加载winpe的software文件到注册表,命名为pe-soft,找到pe-soft下\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon下,把”Shell”=”cmd.exe /k start cmd.exe” 改成 “Shell”=”explorer.exe”。

b、找到正在运行的win7的HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Svchost,导出全部项并添加到pe-soft下的Microsoft\\Windows NT\\CurrentVersion\\Svchost(此步骤在这里似乎不是必须的,不过为了其他功能的正常运行,建议添加)。

c、合并打包测试,再运行explorer,任务栏和桌面都出来了(注: 可能有winpe友会质疑wingwy-pe3.1-v2.iso里含有第三方文件,不过你可以把它们全部删除后打包测试,不影响运行explorer,调出任务栏和桌面)。

至此,在不修改原版文件,不添加第三方文件的基础上,初步实现了explorer的运行。不过大家也看到,这样一个winpe显然是不能让人满意的。

原生态winpe添加explorer教程(下):explorer的完善设

前面讲到explorer初步加入winpe的过程,然而,这样的winpe显然需要进一步改进。继续,GO!

6、winpe运行explorer的初步完善: 1)、win7主题的启用

a、找到正在运行的win7注册表

HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\services下面,导出与win7相关的几项DXGKrnl, monitor,Schedule,Themes,UxSms和vga,加载

D:\\TEMP\\winpe3.1\\org\\mount\\Windows\\System32\\config下system文件到注册表,并命名为pe-sys,把刚才导出的win7的那6项服务导入到pe-sys下\\ControlSet001\\services中。

b、在pe-sys的\\Setup\\AllowStart\\中添加项Themes。 c、这是唯一需要文件修改与添加的地方,详见

http://bbs.wuyou.com/viewthread.php?tid=167092,用hex编辑器打开winlogo.exe,查找4D0069006E0069004E005400,最后两位改为01即可。下载ux.exe,在运行explorer前运行此小程序即可。 2)、桌面背景的应用 a、找到注册表

HKEY_LOCAL_MACHINE\\System\\ControlSet001\\Control\\ProductOptions,导出,并导入到pe-sys的ControlSet001\\Control\\ProductOptions下。 b、在pe-sys下\\ControlSet001\\Control\\Lsa添加“LmCompatibilityLevel”=dword:00000002。 c、找到正在运行的win7注册表

HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer下,导出 Advanced,Personalization和HideDesktopIcons备用,导出HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM备用。 d、加载D:\\TEMP\\winpe3.1\\org\\mount\\Windows\\System32\\config下default文件到注册表,并命名为pe-def,把c步骤中的4项修改路径后导入pe-def。好了,现在winpe已经能很好地运行explorer了。

7、通过winpe自带的几个小程序实现一些常用功能 1)、驱动的加载程序 —— drvload.exe

经常有人问该怎么加入驱动,准备好你的驱动文件,看了下面的图片你就清楚了,格式就是drvload (inf文件路径)。

2)、winpe的初始化设置 —— wpeinit.exe 首先你得建立一个应答文件,打开Windows系统映像管理器,想偷懒的可以直接以win7的安装文件为基础,打开安装盘source文件夹下install_windows 7 ultimate.clg,再新建应答文件,传送Components中的Microsoft-Windows-Setup到winpe,在这里可以设置屏幕分辨率、计算机名和页面文件等,删掉不需要的部分,保存为init.xml。

调用如下:

wpeinit.exe /unattend=X:\\Users\\Default\\Documents\\init.xml 3)、winpe工具 —— wpeutil.exe

这个工具非常实用,大家可以参看WAIK的帮助文件,如果不用第三方程序,winpe的关机和重启就是通过它实现的,如:

wpeutil shutdown 关机 wpeutil reboot 重启

wpeutil CreatePageFile /path=C:\\pagefile.sys。设置虚拟内存 wpeutil DisableFirewall 开关防火墙 (Enablefirewall) 4)、explorer的自动载入 —— winpeshl.exe

我们可以让winpe自动载入explorer并启用主题,修改

D:\\TEMP\\winpe3.1\\org\\mount\\Windows\\System32\\winpeshl.ini中的内容为: [LaunchApps]

wpeinit.exe /unattend=X:\\Users\\Default\\Documents\\init.xml ux.exe

X:\\windows\\explorer.exe

没有应答文件直接运行wpeinit.exe。当然,还可以加载更多的程序。一行一行的添加就行了。

8、使用windows的其他功能和设置: 1)、windows程序的添加

由于直接使用了修改的win7的software注册单元,其他功能的添加就更简单了,基本不用改注册表,直接复制文件就是了。

a、比如要加入ie8,就复制Program Files\\Internet Explorer下所有文件(以及system32文件夹下相关文件)到D:\\TEMP\\winpe3.1\\org\\mount\\Program Files下即可。注意这是64位ie,你要愿意也可以Program Files(x86)下的32位ie。

b、同理,要使用windows的查看图片功能,就复制Windows Photo Viewer即可,其他类似。

c、要用控制面板、控制台,就复制相应的cpl和mmc文件,要使winpe支持.net framework,将win7下的assembly和Microsoft.NET放进去就可以了(同时支持v2.0和v3.0,v3.5会很大)。

d、64位winpe的32位程序支持(WOW64)同样不需要配置注册表,拷贝syswow64以及system32下的wow相关文件就可以了。注意,要支持多少wow64程序取决于你拷贝syswow64文件夹中的文件。道理很简单,和system32中的一样,你不复制mfc.dll不会对你的winpe有影响,但是那样你就不能支持需要这个dll的程序。 2)、windows服务的添加

winpe不能安装msi格式的安装包,我们便以给winpe添加msi服务为例(添加其他服务类似)。

a、确认文件复制完整后,把加载win7安装文件的system配置单元到注册表并命名为pe-sys,找到下面的ControlSet001\\services\\msiserver,全部导出备用,卸载pe-sys。

b、加载winpe的system配置单元

(D:\\TEMP\\winpe3.1\\org\\mount\\Windows\\System32\\config下system文件)到注册表并命名为pe-sys,导入刚才导出的msiserver即可。 3)、windows的一些设置

winpe的default单元主要对应windows的HKEY_CURRENT_USER,software单元对应HKEY_LOCAL_MACHINE\\SOFTWARE,system单元对应HKEY_LOCAL_MACHINE\\SYSTEM,所以你要设置计算机名、桌面图片、oem信息和图片、隐藏夹显示与否、开始菜单、任务栏和桌面什么的全在这里,位置和项目与windows的类似。

4)、微软拼音的添加:文件很大,不推荐。真的想要可以看waik的帮助文件,批处理都给你写好了。

9、一些需要注意的地方和其他程序的加入:

1)、计算机管理不能在“我的电脑”上用右键打开,加载winpe注册表software单元,修改

Classes\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\shell\\Manage\\command 为 X:\\System32\\mmc.exe /b。

2)、“关机”按钮无效,可以改software单元的

Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer 添加 “NoClose”=dword:00000001 或 0(移出或显示”关机”按钮)。

3)、如果你不添加桌面右键菜单“小工具”很难看,可以去掉。同样,删除

\\Classes\\Directory\\Background\\shellex\\ContextMenuHandlers\\Gadgets 和 Classes\\DesktopBackground\\Shell\\Gadgets 即可。

4)、用户文件夹的更改,默认在config文件夹下,建议改到X:\\Users\\Default下,可在Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\S-1-5-18 下修改。 5)、MSDaRT工具的加入,可以用7zip打开MSDaRT65_x64.msi文件,提取其中的tools.cab和Sweeper.cab中mount文件夹合并到winpe即可(32位类似)。 6)、其他绿色程序的加入与快捷方式:如果文件不大,可以直接放到program files目录下并和wim文件一起打包,你也可以单列出来放到光盘上,或打包成新的wim文件,进入winpe后再挂载,桌面快捷方式在\\Users\\Default\\Desktop,锁定到任务栏快捷方式在\\Users\\Default\\AppData\\Roaming\\Microsoft\\Internet Explorer\\Quick Launch\\User Pinned\\TaskBar,另外还需要导入default单元的

\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Taskband 项。

7)、整合第三方程序:同理,在8.3)中已讲了注册表的对应,照着添加就是了。可以用注册表工具分别扫描安装程序前后的注册表,提取需要写入的键值(相对于文件加入操作)。

10、有关winpe的一些讨论:

1)、关于winpe其他文件和驱动的加入以及精简

大家注意到用微软自带的winpeshl.exe载入explorer关机按钮无效,如果需要可以使用pecmd,方法详见 http://bbs.wuyou.com/viewthread.php?tid=144701,pecmd有自己的一套东西,操作起来会方便一些,大家可以根据需求与喜好用pecmd替换掉winpeshl,并写入winpe注册表software单元中的CmdLine。驱动可以加入windows/inf下面,也可以外置,你要什么就加什么,对于不需要某些驱动的人,多的驱动反而要精简掉,所以驱动这个东西还是自己加比较好。

winpe的精简总是矛盾的,比如字体文件,原版的中文winpe3.1字体文件很大,其中mingliu.ttc有31M,网上也有号称完美精简的字体,用了后文件是小了,但有些程序总是乱码,或是对不齐,其实这个”完美精简”只是在特定的条件下,用(或不用)特定的程序才能实现。你可以反过来想一想,如果真的能”完美”,微软何必要把它做到31M再留给你精简(还有shell32.dll等也类似)?再如:msyh.ttf也有21M,砍掉后就没启动动画了,当然其他一些字体或是文件确实用不上(如其他语言的nls,mui文件),或者你用的那些程序都用不上这些东西就完全可以删除。

结语:“原生态winpe添加explorer的初级教程”到此结束,里面讲到的东西都很基本,也肯定有很多不准确的地方,做出来的winpe也很粗燥。其实用winbuilder一类的工具完全可以轻易、快速的做出来,不过众口难调、各有所爱。别人的winpe再好,对于你来说不一定好。一个适合自己的WINPE才是最好的。希望本文能对WINPE爱好者们制作自己的WinPE有所帮助,愿大家都能做出自己满意的winpe!!!!!

本文来源:https://www.bwwdw.com/article/i8r2.html

Top