必备的文件和工具 | |
win7.iso/win8.iso | Windows系统ISO镜像 |
WimTool | BOOT.WIM文件的改动 |
RegWorkShop | 注冊表编辑和分析利器 |
UltraISO | 改动win7.iso/win8.iso |
关于系统镜像下载地址我推荐:
windows教程网:http://www.windowsjc.com/ ,此站点包括了windows系统各种版本号系统镜像。
全局注意:
①每次改动注冊表的时候都留心一下:
C:\ D:\ 应改为 X:\ ; Interactive User 应所有删除.
②注冊表技巧,解决注冊表问题途径:
C:\ D:\ 应改为 X:\ ; Interactive User 应所有删除.
②注冊表技巧,解决注冊表问题途径:
详细用ultraiso来操作:
1.2.1导入iso系统
下图便是我下载系统iso的全部文件
删除时,我们仅需选中文件,然后点击图中差号就可以(建议备份一份下载的系统iso镜像,由于我们改动后系统将改变,如若改动错误,可能我们还得又一次下载,那就得不偿失了)。例如以下图所看到的:
这样我们将改动好的系统iso保存或者另存即可了。改动后的系统iso为:
2 获取所需文件权限为了可以在Win7下顺利制作PE,必须获得相关文件的权限.
2.1 用WimTool解开BOOT.WIM第一个卷(Windows PE)为BOOT目录
这里我是先将原系统用ultraisO进行提取。把他提取到一个位置,再用wim tool对BOOT.wim进行解开后处理。
默认是提取到下图所看到的位置(这里我已经提取完毕了):
接下来我们就要进行对提取出的boot.WIM进行处理。我们这里用wimtool工具。
默认情况。就是对映像的卷号1进行解开,点击“解开映像”,进行解开。
解决此问题的方法是,用管理员获得此授权,然后再反复上述步骤就能够了。
载入注冊表配置单元方法(选自:http://technet.microsoft.com/zh-cn/library/cc732157.aspx):
若要载入或卸载注冊表配置单元,请使用注冊表编辑器。“载入配置单元...”和“卸载配置单元...”命令仅对 HKEY_USERS 和 HKEY_LOCAL_MACHINE 项有效,而且仅在选定这些提前定义项时才可用。
将配置单元载入到注冊表时,该配置单元将成为这些项中某个项的子项。
将配置单元载入到注冊表的步骤-
打开注冊表编辑器。
-
单击 HKEY_USERS 项或 HKEY_LOCAL_MACHINE 项。
-
在“文件”菜单上。单击“载入配置单元...”。
-
找到要载入的配置单元。然后单击该配置单元。
-
单击“打开”。
-
在“项名称”中,键入要分配给该配置单元的名称。然后单击“确定”。
卸载注冊表配置单元方法(http://technet.microsoft.com/zh-cn/library/cc732157.aspx):
-
打开注冊表编辑器
-
选择曾经已载入到系统上的配置单元。
-
在“文件”菜单上。单击“卸载配置单元...”。
)
——至此,我们就获得了并统一了WinPE差点儿全部文件的控制权限,后面制作WinPE就很顺利了.
|
5.1 改动注冊表 5.1.1 载入WinPE的注冊表文件SOFTWARE为pe-soft,然后导出为pe-soft.reg备用
[事实上,熟练的话,在前面的步骤就能够导出备用了.]
5.1.2 改动权限[与前面的操作一样滴] 用WIMTool解压Win7.iso(这是原操作系统)的install.wim文件里最后一个卷(旗舰版Windows),定位到Windows\System32\config下,把software文件载入到注冊表,命名为pe-soft.(把之前那个卸载掉就好)
[注意:请反复几次——由于文件过多,一次操作可能有遗漏,软件处理能力有限,操作步骤和之前设置权限的一样]
5.1.3 编辑注冊表 在pe-soft下搜索 Interactive User,找到后所有删除.
5.1.4 得到WinPE的SOFTARE完整注冊表 把之前导出的pe-soft.reg导进来,覆盖Win7系统的SOFTWARE注冊表载入单元pe-soft
[同名在于确保路径统一,以覆盖Win7系统的注冊表]此处覆盖是追加。 5.1.5 继续改动pe-soft
找到pe-soft下\Microsoft\Windows NT\CurrentVersion\Winlogon下, 把"Shell"="cmd.exe /k start cmd.exe" 改成 "Shell"="explorer.exe"
5.2 准备文件 5.2.1 方案一:精确式
从install.wim中拷贝这些文件到boot.wim中相同的位置:
=====================================
//进入SHELL须要加入下面文件
Windows\explorer.exe Windows\zh-CN\explorer.exe.mui
Windows\System32\ExplorerFrame.dll Windows\System32\zh-CN\explorerframe.dll.mui
===================================== //为了稳定而加入的文件Windows\System32\actxprxy.dll /*没有它,会提示"explorer.exe不支持此接口" */Windows\System32\comctl32.dllWindows\System32\zh-CN\comctl32.dll.muiWindows\System32\mscories.dll
Windows\System32\oledlg.dll
Windows\System32\zh-CN\oledlg.dll.mui
Windows\System32\shdocvw.dllWindows\System32\zh-CN\shdocvw.dll.mui Windows\System32\shellstyle.dllWindows\System32\zh-CN\shellstyle.dll.mui
=====================================
//为了美观而加入的文件——与版权信息,開始菜单button等图标有关
Windows\Branding\Basebrd\basebrd.dll Windows\Branding\Basebrd\zh-CN\basebrd.dll.mui Windows\Branding\ShellBrd\shellbrd.dll
=====================================
[注意:若要拓展功能,可參考附件"Win7PE_X64支持文件列表",不覆盖式拷贝 install.wim 中的文件.若要制作 骨头版WinPE ,反而要開始精简 BOOT.WIM 中原有的文件了.]
5.2.2 方案二:偷懒式
——大家知道,WinPE的灵魂是注冊表,文件处理方面较为好办,如有现成的WinPE,可不必大费周章.
偷懒又保险的方法:
能够直接不覆盖式拷贝正常 WinPE 的 Windows 目录, winpeshl.ini 不要拷贝。其它文件随便.
要求不高的,选择 骨头WinPE ;要求高的,选择 多功能WinPE ;请自行选择你喜欢的 WinPE 作为基础.
5.3 打包測试 通过上面的步骤,我们得到了"史上最完整的"WinPE的SOFTWARE注冊表. 如今,又一次打包boot.wim,保存改动后的WinPE的ISO.我这里还是将新的boot.wim导入到精简后的iso中,然后替换。
6 explorer的初步完好
这里须要利用激活的Win7系统注冊表,导入PE后,相关配置和Windows呈现一样的效果,所以,请先在Windows下配置好.
处理的注冊表较多,先载入好pe-soft,pe-sys,pe-def.
6.1 explorer 的个性化设置
6.1.1 Advanced配置 这里的配置非常重要(以下在正执行的Win7中配置好,将来在PE中explorer的特性就与这些配置一样): 在正在执行的激活的Win7中,打开explorer资源管理器,在菜单→目录和搜索选项,在"常规"页面,勾选"显示全部目录"和"自己主动扩展当前目录";在 "查看"页面,按你的习惯勾选(如显示隐藏文件,显示扩展名等),特别注意:一定要勾选"在单独进程中打开目录窗体"(否则PE启动后再插入U盘,U盘不可见);然后,定位到Win7的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,导出为Advanced.REG,用记事本编辑," [HKEY_CURRENT_USER\"所有替换为: " [HKEY_LOCAL_MACHINE\PE-DEF\",再导入PE-DEF.
6.1.2 其它配置
导出Win7系统下面注冊项:
①HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ProductOptions /*壁纸出现了*/ ②HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM /* Desktop Window Manager */
③HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Personalization /* 个性化 */
④HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons /*桌面图标的显示隐藏:计算机,回收站,用户的文件,控制面板,网络*/
用记事本改动①~④导出的.REG文件,路径分别改为:
①HKEY_LOCAL_MACHINE\pe-sys\ControlSet001\Control\ProductOptions
②HKEY_LOCAL_MACHINE\PE-DEF\Software\Microsoft\Windows\DWM
③HKEY_LOCAL_MACHINE\pe-soft\Microsoft\Windows\CurrentVersion\Personalization
④HKEY_LOCAL_MACHINE\pe-soft\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons
保存改动,所有选中,右键"合并",就可以覆盖到PE的注冊表中
6.1.3 显示我的电脑图标 在HideDesktopIcons\NewStartPanel下加入: "{20D04FE0-3AEA-1069-A2D8-08002B30309D}"=dword:00000000 6.1.4 在pe-sys下\ControlSet001\Control\Lsa加入"LmCompatibilityLevel"=dword:00000002
6.2 win7主题的启用 6.2.1 定位到正在执行的win7注冊表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services以下,导出与win7相关的几项DXGKrnl, monitor,Schedule,Themes,UxSms和vga.
把刚才导出的win7的那6项服务导入到pe-sys下\ControlSet001\services中. 6.2.2 在pe-sys的\Setup\AllowStart\中新建项Themes 6.2.3 这是唯一须要文件改动与加入的地方. 參见 用hex编辑器打开winlogon.exe,在当中查找unicode字符串minint,改动当中任一字母,仅仅要和原先不一样就可以,比方,改成minins. 下载ux.exe,在执行explorer前执行此小程序就可以启用Win7的basic主题.
/**************************************************************************** 背景知识: system用户下仅仅能启用basic主题,没有aero特效.
想要启用aero特效的朋友,可搜索无忧相关资料,有具体介绍.只是,本人不建议这么做,由于PE的SYSTEM权限是它生存的意义所在,为此要绕非常多圈子.
****************************************************************************/
6.2.4 其它须要补充的文件,见附件"Win7PE_X64支持文件列表"
6.2.5 解决X盘的容量过小问题——开启主题等,需耗费内存,这里借机扩充一下 载入注冊表system单元,展开至/ControlSet001/Services/FBWF,新建二进制dword(32位)值,命名为WinPECacheThreshold,改动键值为200.(这是512MB,能够依据须要改动键值)
6.2.6 卸载PE的全部注冊表载入单元,检验效果.
7 通过winpe自带的几个小程序实现一些经常使用功能.
7.1 驱动的载入程序—Drvload.exe 常常有人问该怎么增加驱动,准备好你的驱动文件,看了以下图片你就清楚了,格式就是drvload (inf文件路径)
7.2 winpe工具—Wpeutil.exe 这个工具很实用,大家能够參看WAIK的帮助文件.假设不用第三方程序,pe的关机和重新启动就是通过它实现的.以下列了几个实用的 wpeutil shutdown 关机
wpeutil reboot 重新启动 wpeutil CreatePageFile /path=C:\pagefile.sys.设置虚拟内存 wpeutil DisableFirewall 开关防火墙 (Enablefirewall)
7.3 winpe的初始化设置—Wpeinit.exe
7.3.1 Wpeinit.exe的介绍
Wpeinit 是命令行工具,它在每次启动 Windows PE 时,对其进行初始化.当 Windows PE 启动时,Winpeshl.exe 运行启动 Wpeinit.exe 的 Startnet.cmd.
详细地说,Wpeinit.exe 安装 PnP 设备,处理 Unattend.xml 设置并载入网络资源.
另外,Wpeinit 会将日志消息输出到 c:\Windows\system32\wpeinit.log.
7.3.2 Wpeinit.exe的使用
首先你得建立一个应答文件,打开Windows系统映像管理器,想偷懒的能够直接以win7的安装文件基础,打开安装盘source目录下install_windows 7 ultimate.clg. 再新建应答文件,传送Components中的Microsoft-Windows-Setup到pe,在这里能够设置屏幕分辨率,计算机名,页面文件等等,删掉不须要的部分,保存为init.xml
调用例如以下: wpeinit.exe /unattend=X:\Users\Default\Documents\init.xml
7.4 explorer的自己主动加载—Winpeshl.exe 7.4.1 比方,我们能够让winpe自己主动加载explorer并启用主题,新建ISO\Windows\System32\winpeshl.ini 中内容为: [LaunchApps] wpeinit.exe /unattend=X:\Users\Default\Documents\init.xml ux.exe X:\windows\explorer.exe
/* 没有应答文件直接执行wpeinit.exe.当然,还能够载入很多其它的程序,一行一行的加入即可了. */
/****************************************************************************
背景知识:Windows PE 提供了三种方法启动自己定义脚本:Winpeshl.ini,Startnet.cmd 和 Autounattend.xml.
Windows PE 默认界面是一个命令提示符窗体.可是,您能够创建自己定义的 Winpeshl.ini 文件,以执行自己的外壳应用程序(SHELL).也能够创建自己的 Startnet.cmd 版本号来执行特定的命令集,批处理文件或脚本.
****************************************************************************/
7.4.2 删除startnet.cmd 当你增加上面的Winpeshl.ini文件时,Winpeshl.exe不再检測startnet.cmd是否存在,startnet.cmd已经不起不论什么作用了,删不删掉都能够.
8 使用windows的其它功能和设置
8.1 windows程序的加入 因为我们直接使用了改动的win7的software注冊单元,其它功能的加入就非常easy了.基本不用改注冊表,直接拷贝文件就是了. 8.1.1 比方要增加ie8,就复制Program Files\Internet Explorer下全部文件(以及system32目录下相关文件)到ISO\Program Files下就可以.
[注意:这是64位ie,你要愿意,也能够Program Files(x86)下的32位IE.] 8.1.2 同理,要使用windows的查看图片功能,复制Windows Photo Viewer就可以,其它类似. 8.1.3 要用控制面板,控制台,复制对应的cpl和mmc文件,要使winpe支持.net framework, 复制win7的的assembly和Microsoft.NET放进去就能够了(同一时候支持v2.0,v3.0和v3.5会非常大,不知道网上有没有精简的) 8.1.4 64位winpe的32位程序支持(WOW64)相同不须要配置注冊表,拷贝syswow64以及system32下的wow相关文件就能够了.
[注意:要支持多少wow64程序取决于你拷贝syswow64目录中的文件.和system32中的一样,你不复制mfc.dll不会对你的pe有影响,可是那样你就不能支持须要这个dll的程序.]
8.2 windows服务的加入. winpe不能安装msi格式的安装包,我们以给winpe加入msi服务为例,加入其它服务类似. 8.2.1 确认文件复制完整后,把载入win7安装文件的system配置单元到注冊表并命名为pe-sys.找到以下的ControlSet001\services\msiserver 所有导出备用. 卸载pe-sys. 8.2.2 载入winpe的system配置单元(:ISO\Windows\System32\config下system文件)到注冊表并命名为pe-sys,导入刚才导出的msiserver就可以.
8.3 windows的一些设置 你要设置计算机名,桌面图片,oem信息和图片,隐藏夹显示与否,開始菜单,任务栏,桌面什么的,网上非常多了,这里列举几个:
8.3.1 壁纸与用户头像 壁纸文件:ISO\Windows\system32\winpe.bmp
//改动路径在这里:HKEY_LOCAL_MACHINE\DEFAULT\Control Panel\Desktop\WallPaper 用户头像文件:ISO\ProgramData\Microsoft\User Account Pictures\user.bmp
8.3.2 改动计算机右键属性内容 用ResHacker.exe工具改动Windows\System32\zh-CN下systemcpl.dll.mui文件就可以. 8.3.3 開始菜单和桌面 控制開始菜单的显示项目: \Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced 桌面图标的显示和隐藏: \Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons 8.3.4 计算机名称的改动 载入PE的system文件,改动例如以下键值: Controlset001\Control\ComputerName\ActiveComputerName\ComputerName Controlset001\Control\ComputerName\ComputerName\ComputerName Controlset001\Control\Session Manager\Environment\COMPUTERNAME Controlset001\Services\Tcpip\Parameters\Hostname Controlset001\Services\Tcpip\Parameters \NV Hostname
8.4 微软拼音的加入: 文件非常大,不推荐,我就不写了,真的想要能够看waik的帮助文件,非常easy,批处理都给你写好了.
9 一些须要注意的一些地方和其它程序的增加
9.1 用户目录的更改,默认在config目录下,建议改到X:\Users\Default下,在Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18 下改动.
9.2 计算机管理管理不能在"我的电脑"上用右键打开,载入pe注冊表software单元,改动Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage\command,
为 %SystemRoot%\system32\mmc.exe compmgmt.msc
9.3 "关机"button无效,能够改software单元的Microsoft\Windows\CurrentVersion\Policies\Explorer 加入 "NoClose"=dword:00000001 或0 移出或显示"关机"button
9.4 假设你不加入,桌面右键菜单"小工具"非常难看,能够去掉,相同,删除 \Classes\Directory\Background\shellex\ContextMenuHandlers\Gadgets 和 Classes\DesktopBackground\Shell\Gadgets 就可以
9.5 MSDaRT工具的增加,能够用7zip打开MSDaRT65_x64.msi文件,提取当中的tools.cab和Sweeper.cab中mount目录合并到pe就可以(32位类似).
9.6 绿色程序的增加与快捷方式等 假设文件不大,能够直接放到 program files 文件夹下并和boot.wim一起打包.你也能够单列出来放到光盘上,或是打包成新的wim文件,进入pe后再挂载. 9.6.1 "桌面"快捷方式在\Users\Default\Desktop . 9.6.2 "全部程序"快捷方式在 \Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs \ProgramData\Microsoft\Windows\Start Menu\Programs
9.6.3 锁定到任务栏: 快捷方式在 \Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar, 另外还须要导入default单元的 \Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband 项. 9.6.4 附到開始菜单条: 快捷方式在 \Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\, 另外还须要导入default单元的 \Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage2 项.
9.7 绿化第三方程序到PE 能够用注冊表工具分别扫描安装程序前后的注冊表,提取须要写入的键值.将注冊表导入PE,并复制安装形成的文件
☞大家注意到,用微软自带的winpeshl.exe加载explorer关机button无效.假设须要,能够使用pecmd, pecmd有自己的一套东西,操作起来会方便非常多,大家能够依据需求与喜好用pecmd替换掉winpeshl,并写入pe注冊表software单元中的CmdLine.
在 步骤5 中,我们得到了能进入"资源管理器"(也即explorer,也即MS SHELL)的WinPE,是微软系统ISO改动而来的. 体积非常大,但我们要的是WinPE的核心——注冊表. 为了方便大家学习,长经验,我做了下面操作: 10.1 用PECMD取代winpeshl.exe,跳过CMD界面直接进入桌面: 定位到WinPE注冊表SYSTEM的SETUP项,在CMDLINE中用"PECMD MAIN %Systemroot%\PECMD.INI"取代"winpeshl.exe" PECMD.INI的代码: ============================== INIT EXEC !=%SystemRoot%\system32\winpeshl.exe SHEL %SystemRoot%\explorer.exe ============================== winpeshl.ini的代码:==============================[LaunchApps] wpeinit.exe============================== 10.2 如今已经得到能够进入桌面的WINPE注冊表,有了这个核心,其它什么文件和优化都不是难点. 我把改动的注冊表和Windows\winsxs复制移植到绝对PE_V1.6,正常进入桌面. [加入了部分Windows\winsxs是由于直接替换注冊表会蓝屏,依据我的经验须要补充Windows\winsxs.还有可能是驱动问题] 10.3 略微精简了一下,然后发个可启动的"演示用WIN7PE.ISO"给大家看看效果. 11 PECMD.INI中的经常使用命令解释PECMD接管winpeshl后,全部的配置可直接通过PECMD.INI中的命令来实现.以下给出一些最主要的命令,便于入门,更具体的命令解释在PECMD帮助文档中能够看到.学习时最好參考一些文件结构简单的WinPE,用记事本查看里面的PECMD.INI,一般在System32文件夹或者Windows文件夹下,有的PECMD.INI还载入了外置配置文件,也是.INI文件,能够合并的. 11.1 一些基础的环境变量: %CurDir% 表示本配置文件所在文件夹 %SystemRoot% 和 %WinDir% 均表示Windows文件夹 %ProgramFiles% 表示Program Files 文件夹 %Desktop% 表示桌面 %StartMenu% 表示開始菜单文件夹 %Startup% 表示启动菜单文件夹 %Programs% 表示程序菜单文件夹 11.2 基础 EXEC,LOAD,LINK 命令写法 EXEC %ProgramFiles%\Internet Explorer\iexplore.exe 表示 执行 在 Program Files 文件夹下\Internet Explorer\iexplore.exe 程序 LOAD %ProgramFiles%\Tools.ini" 表示 载入 在 Program Files 文件夹下的Tools.ini 外置配置文件 LINK %Desktop%\腾讯QQ,%ProgramFiles%\QQ.exe 表示 在桌面创建一个名为"腾讯QQ "的快捷方式,而且链接指向 Program Files 文件夹下\QQ.exe ☞EXEC 负责执行后缀名为exe,bat,cmd等可执行文件☞LOAD 负责载入后缀名为ini 的配置文件☞LINK 负责创建快捷方式,它负责的文件类型非常多 11.3 常见符号 ! @ _ & =意义 11.3.1这里这些符号" ! @ _ & ="都是指搭配EXEC时的,由于比較经常使用.常见的有:EXEC _ EXEC & EXEC ! EXEC @ 比如: EXEC _%SystemRoot%\123.exe ------表示最小化执行Windows 文件夹下的123.exe EXEC &%SystemRoot%\123.exe ------表示最大化执行Windows 文件夹下的123.exe EXEC !%SystemRoot%\123.exe ------表示隐藏执行Windows 文件夹下的123.exe (经常使用) EXEC @%SystemRoot%\123.exe ------表示彻底隐藏执行Windows 文件夹下的123.exe 11.3.2第二种写法: EXEC =!%SystemRoot%\123.exe ------表示隐藏执行Windows 文件夹下的123.exe [它多了一个"="号,表示等待这个命令运行结束,能够依据自己的情况加或不加] 12 实战经验以下的帖子是本人制作的PE公布地址,留下了很多经验性资料或教程,仅供大家參考①【ACOS启动盘】【自制【Win7PE】日志】②【ACOS启动盘】【Win8PE,这个不错喔】 13 大总结 13.1 常见的 WinPE 制作途径: ①ADK/AIK ——改动WinPE.WIM ②Winbuilder ——改动BOOT.WIM 的分卷2 或者 WinRE.WIM ③全手工式——改动BOOT.WIM 的分卷1 重点: 不管是 BOOT.WIM 卷#1 , BOOT.WIM 卷#2 ,WinRE.WIM , WinPE.WIM 中哪一种,都能够採取 全手工式 途径制作PE(基于它们本质都是 Windows PE 的原理) 难度系数例如以下: BOOT.WIM 卷#1 > BOOT.WIM 卷#2 = WinRE.WIM > WinPE.WIM (本文方法因而通用) 13.2 窥探本质,脱离局限
扩展阅读: ①ADK/AIK 版块 Windows ADK(Windows Assessment and Deployment Kit ): Windows AIK(Windows Automated Installation Kit): ②Winbuilder 版块 用WinBuilder制作一个Win8PE (X86,X64): Win8PE SE Release: Win7PE SE & Release:
(说明:本文參考了:http://bbs.wuyou.com/forum.php?mod=viewthread&tid=273524)