1 什么是 Windows PE?
1.1 簡要介紹
Windows Preinstallation Environment (Windows PE) 是一個(gè)為 Windows 安裝而設(shè)計(jì)的最小操作系統(tǒng).它可以用于啟動(dòng)無操作系統(tǒng)的計(jì)算機(jī)、對(duì)硬盤驅(qū)動(dòng)器分區(qū)和格式化、復(fù)制磁盤映像以及從網(wǎng)絡(luò)共享啟動(dòng) Windows 安裝程序.
微軟本意是 PE 僅作系統(tǒng)維護(hù),并設(shè)置了各種限制.可以簡單的理解為: PE 是 Windows 系統(tǒng)的超級(jí)精簡版,以 Wim 的文件形式存在,運(yùn)行于內(nèi)存中.特別的,也是最有價(jià)值的, PE 以系統(tǒng) system 賬戶登錄,這意味著超級(jí)權(quán)限!對(duì)于安裝系統(tǒng)、無法進(jìn)入系統(tǒng)、修復(fù)系統(tǒng)、分區(qū)等問題都可以進(jìn)入PE進(jìn)行操作,因此PE是強(qiáng)大的系統(tǒng)維護(hù)工具!
微軟原版的 PE ,只有"命令行"窗口.網(wǎng)上流傳的各種版本都是"高手們"修改出來的,甚至有的 PE 可以作為系統(tǒng)來使用,這都偏離了微軟的本意.我不主張"肆意擴(kuò)展" PE 的功能來彰顯"技術(shù)",但是"可視化操作界面、常用功能的集成"這些都是必要且必須的.
1.2 版本編號(hào)
下面簡要介紹 Windows PE 的命名規(guī)則[略去Windows Server 2003/2008/2012]:
Windows PE 1.x表示W(wǎng)indows XP內(nèi)核.
Windows PE 2.x表示W(wǎng)indows Vista內(nèi)核.
Windows PE 3.x表示W(wǎng)indows 7內(nèi)核.
Windows PE 4.x表示W(wǎng)indows 8內(nèi)核.
x表示系統(tǒng)版本,例如SP1(帶有Service Pack 2)
舉例:PE 1.3表示W(wǎng)indows XP SP3內(nèi)核的PE.
2 Windows PE 的啟動(dòng)過程
Windows PE 4.x(3.x 2.x類似)引導(dǎo)過程[略去1.x]:
2.1 詳細(xì)過程(微軟ADK/AIK說明文檔):
①Windows PE 在特定媒體上加載啟動(dòng)扇區(qū).系統(tǒng)將控制傳遞給 Bootmgr.Bootmgr 從啟動(dòng)配置數(shù)據(jù) (BCD) 中提取基本啟動(dòng)信息,并將控制傳遞給包含在 Boot.wim 文件中的 Winload.exe 文件.然后 Winload.exe 將加載相應(yīng)的硬件抽象層 (HAL),接著加載系統(tǒng)注冊(cè)表配置單元和必要的啟動(dòng)驅(qū)動(dòng)程序.Winload.exe 完成加載后,將會(huì)準(zhǔn)備要執(zhí)行內(nèi)核 Ntoskrnl.exe 的環(huán)境.
②該環(huán)境將執(zhí)行 Ntoskrnl.exe 文件.然后 Ntoskrnl.exe 完成環(huán)境設(shè)置.系統(tǒng)將控制傳遞給會(huì)話管理器 (SMSS).
③SMSS 加載注冊(cè)表的剩余部分,然后配置運(yùn)行 Win32 子系統(tǒng) (Win32k.sys) 的環(huán)境及其各種進(jìn)程.SMSS 加載用于創(chuàng)建用戶會(huì)話的 Winlogon 進(jìn)程,然后啟動(dòng)服務(wù)和剩余的非必要設(shè)備驅(qū)動(dòng)程序及安全子系統(tǒng) (LSASS).
④Winlogon.exe 根據(jù) HKEY_LOCAL_MACHINE\SYSTEM\Setup\CmdLine 注冊(cè)表值來運(yùn)行設(shè)置.Winpeshl.exe 將啟動(dòng) %SYSTEMDRIVE%\sources\setup.exe 文件,前提是該文件存在.如果該文件不存在,Winpeshl.exe 將確定 %SYSTEMROOT%\system32\winpeshl.ini 文件是否指定了某個(gè)應(yīng)用程序.如果該文件未指定應(yīng)用程序,則 Winpeshl.exe 將執(zhí)行 cmd /k %SYSTEMROOT%\system32\startnet.cmd 文件.默認(rèn)情況下,Windows PE 包含啟動(dòng) Wpeinit.exe 文件的 Startnet.cmd 文件.Wpeinit.exe 將加載網(wǎng)絡(luò)資源并協(xié)調(diào)網(wǎng)絡(luò)組件(如 DHCP).
⑤當(dāng) Wpeinit.exe 結(jié)束時(shí),將會(huì)出現(xiàn)命令提示符窗口.當(dāng)命令提示符窗口出現(xiàn)時(shí),Windows PE 的啟動(dòng)進(jìn)程結(jié)束.
2.2 簡單理解:若為光盤啟動(dòng),引導(dǎo)文件(例:pe.bif)——bootmgr——BCD——boot.wim——啟動(dòng)PE.
3 Windows操作系統(tǒng)的啟動(dòng)過程
除了了解WinPE的啟動(dòng)過程,系統(tǒng)的啟動(dòng)過程也非常重要,可以為將來安裝WinPE到本地系統(tǒng)分區(qū)做準(zhǔn)備,更重要的是加深對(duì)系統(tǒng)維護(hù)和裝機(jī)的理解.
http://bbs.wuyou.com/viewthread.php?tid=254880&extra=page%3D1
4 如何制作Win8PE,Win7PE
4.1 Windows PE 的來源
①winpe.wim
源自ADK/AIK——被稱為"微軟官方PE",是最為純粹的版本,可以進(jìn)入CMD操作界面
②winre.wim
< 系統(tǒng)安裝光盤或ISO>\Sources\install.wim\Windows\System32\Recovery\winre.wim ——可以進(jìn)入恢復(fù)環(huán)境
③boot.wim
< 系統(tǒng)安裝光盤或ISO>\Sources\boot.wim——定制版的Windows PE,將啟動(dòng)setup.exe,執(zhí)行系統(tǒng)的安裝
重點(diǎn):以上三個(gè)文件有不同用途.但本質(zhì)上都是PE,均可為我們所用,深度加工,制作更人性化、更符合要求的Windows PE.
4.2 常見的 Windows PE 制作途徑分析
①winpe.wim
可以用來制作 ADK/AIK 版 winpe ——安裝ADK/AIK時(shí)自帶winpe.wim,可利用DISM來添加組件,但最終不會(huì)有桌面環(huán)境,只有 CMD 操作界面.
②winre.wim
可以用來制作 Winbuilder 版 winpe ——缺少的文件可以直接從 install.wim 中拷貝,以獲取需要的功能.
重點(diǎn):由于 WinRE.WIM 只比 boot.wim 分卷2 多一個(gè) winpeshl.ini 文件,故而 Winbuilder 大多利用 boot.wim 分卷2 ;另外, install.wim 的幾個(gè)分卷代表不同的 Windows 版本,越往后版本越高,故而拷貝文件的時(shí)候選擇最后一個(gè)分卷即可.
③boot.wim
boot.wim 中的卷#1 Windows PE 相當(dāng)于 winpe.wim ;卷#2 Windows Setup 相當(dāng)于 winre.wim
4.3 制作Windows PE 的新途徑
PE是超小型的Windows系統(tǒng),相關(guān)文件以Wim 形式存在,如winpe.wim ,winre.wim ,boot.wim .而install.wim 包含了Windows系統(tǒng)幾乎所有文件(沒有引導(dǎo)類文件),在WinPE中,我們也經(jīng)常利用它來裝系統(tǒng).基于這樣的理論,Winbuilder 制作出了出色的Windows PE,并讓它走向了傻瓜式操作.
但是, ADK/AIK/Winbuilder/MakePE 都沒讓我們學(xué)到真正的東西,它究竟是如何做到的呢?有沒有更快更簡單的制作方法呢?答案是肯定的,本帖為此而生. 我將告訴大家如何利用boot.wim鏡像全手工式制作自己的WinPE,讓你做得明明白白,體驗(yàn)其中的樂趣.有了這個(gè)基礎(chǔ),還可以利用winre.wim 或者winpe.wim來試試,操作差不多,不過要注意一些細(xì)節(jié)差異.
全局注意:
必備的文件和工具 win7.iso/win8.iso Windows系統(tǒng)ISO鏡像 WimTool BOOT.WIM文件的修改 RegWorkShop 注冊(cè)表編輯和分析利器 UltraISO 修改win7.iso/win8.iso
①每次修改注冊(cè)表的時(shí)候都留心一下:
C:\ D:\ 應(yīng)改為 X:\ ; Interactive User 應(yīng)全部刪除.
②注冊(cè)表技巧,解決注冊(cè)表問題途徑:
熟練使用RegWorkShop,RegShot,可配合其他優(yōu)化軟件靈活使用.
③Windows\System32\config下文件:SOFTWARE 對(duì)應(yīng) HKEY_LOCAL_MACHINE\SOFTWARE;
SYSTEM 對(duì)應(yīng) HKEY_LOCAL_MACHINE\SYSTEM;
DEFAULT 主要對(duì)應(yīng) HKEY_CURRENT_USER1 準(zhǔn)備WinPE本身需要的文件
1.1 下載WIN7.ISO或者WIN8.ISO /* 按需選擇 */1.2 保留下列文件,其他都刪了 /* 只支持BIOS,不想支持UEFI的情況下 */
BOOT\BCD
BOOT\BOOT.SDI
SOURCES\BOOT.WIM
BOOTMGR
2 獲取所需文件權(quán)限
為了能夠在Win7下順利制作PE,必須獲得相關(guān)文件的權(quán)限.
2.1 用WimTool解開BOOT.WIM第一個(gè)卷(Windows PE)為BOOT文件夾
2.2 獲取BOOT文件夾及其子文件的完全控制權(quán)
鼠標(biāo)右鍵BOOT文件夾->屬性->安全選項(xiàng)卡->高級(jí)->更改權(quán)限->添加->輸入everyone->確定->勾選"完全控制",其他選項(xiàng)會(huì)自動(dòng)勾上->應(yīng)用于"此文件夾,子文件夾"->確定->刪除Everyone,SYSTEM以外的權(quán)限項(xiàng)目->勾選"使用可從此對(duì)象繼承的權(quán)限替換所有子對(duì)象權(quán)限"->確定
->所有者選項(xiàng)卡->編輯->其他用戶或組->輸入everyone->確定->勾選"替換子容器和對(duì)象的所有者"->確定
[注意:由于文件過多,需要重復(fù)執(zhí)行以下操作幾次:1."使用可從此對(duì)象繼承的權(quán)限替換所有子對(duì)象權(quán)限"->確定;2."替換子容器和對(duì)象的所有者"->確定]
2.3 獲取WinPE注冊(cè)表的完全控制權(quán)
2.3.1 加載注冊(cè)表
"運(yùn)行"->輸入Regedit->加載boot\Windows\System32\config下的DEFAULT,SYSTEM,SOFTWARE分別命名為pe-def,pe-sys,pe-soft
2.3.2 分別對(duì)每個(gè)加載單元進(jìn)行如下操作:
右鍵->權(quán)限->高級(jí)->添加->輸入everyone->確定->勾選"完全控制",其他選項(xiàng)會(huì)自動(dòng)勾上->應(yīng)用于"此文件夾,子文件夾"->確定->刪除Everyone,SYSTEM以外的權(quán)限項(xiàng)目->勾選"使用可從此對(duì)象繼承的權(quán)限替換所有子對(duì)象權(quán)限"->確定
->所有者選項(xiàng)卡->編輯->其他用戶或組->輸入everyone->確定->勾選"替換子容器和對(duì)象的所有者"->確定
[注意:由于文件過多,需要重復(fù)執(zhí)行以下操作幾次:1."使用可從此對(duì)象繼承的權(quán)限替換所有子對(duì)象權(quán)限"->確定;2."替換子容器和對(duì)象的所有者"->確定]
——至此,我們就獲得了并統(tǒng)一了WinPE幾乎所有文件的控制權(quán)限,后面制作WinPE就非常順利了.3 注冊(cè)表修改3.1 選中加載的SOFTWARE單元pe-soft3.2 修改注冊(cè)表中關(guān)于路徑的值在pe-soft下搜索 $windows.~bt\ ,替換為 (空)在pe-soft下搜索 Interactive User,找到后全部刪除.
[沒有的就不用改了]3.3 同理,對(duì)pe-def,pe-sys也進(jìn)行此操作3.4 卸載pe-def,pe-sys,pe-soft4 WinPE制作好了!!! 這就是原汁原味的微軟官方WinPE了.4.1 打包測(cè)試
用WimTool把BOOT文件夾新建映像為BOOT.WIM,原版的BOOT.WIM文件可移到他處作為備份,以便隨時(shí)還原,保存修改的ISO并測(cè)試.
4.1.1 原版的BOOT.WIM啟動(dòng)效果/****************************************************************************背景知識(shí):BOOT.WIM中包含卷#1 Windows PE,卷#2 Windows Setup(Windows PE增強(qiáng)版,用來安裝操作系統(tǒng)的).由于WIM文件只允許一個(gè)卷可啟動(dòng),BOOT.WIM真正起作用的是可啟動(dòng)卷#2 Windows Setup .卷#2 在卷#1 的基礎(chǔ)上追加了一些安裝相關(guān)的文件,專門用來自啟動(dòng)安裝環(huán)境的,它檢測(cè)到并啟動(dòng)了setup.exe.又因WIM特殊壓縮算法,兩個(gè)卷共用文件,不影響體積.****************************************************************************/
4.1.2 WimTool直接解開BOOT.WIM,再打包的啟動(dòng)效果/****************************************************************************背景知識(shí):WimTool 默認(rèn)解開WIM鏡像的卷#1,即Windows PE,這正是我們需要的.也可采用好壓等工具直接解開卷#1,前提是能打開查看此WIM文件.此時(shí)新建的BOOT.WIM,注冊(cè)表相關(guān)環(huán)境和微軟純粹的WinPE,即winpe.wim還有差別,我們需要做一些工作.****************************************************************************/
4.1.3 修改的BOOT.WIM啟動(dòng)效果/****************************************************************************背景知識(shí):在處理了注冊(cè)表后,BOOT.WIM的注冊(cè)表環(huán)境和winpe.wim一致,而文件環(huán)境本就差不多.這時(shí)的BOOT.WIM已經(jīng)相當(dāng)于原汁原味的微軟官方WinPE——源自原版BOOT.WIM卷#1,此時(shí),只有一個(gè)卷,無分卷.****************************************************************************/
4.2 必要的精簡
因?yàn)锽OOT.WIM鏡像原本垃圾文件就多,我們可以適當(dāng)精簡,便于后面的工作.但也不要過火,以免留下后患.
\Windows\fonts /* 可適度刪除 */
\Windows\winsxs\Backup /* 可以刪除 */
\Windows\System32\zh-TW...zh-HK...uk-UA...sr-Latn-CS...等 /* 存放*.dll.mui 的文件夾,僅保留zh-CN,其他都可刪除 */
... ...
附件中有資料,可以參考.
5 添加explorer
5.1 修改注冊(cè)表
5.1.1 加載WinPE的注冊(cè)表文件SOFTWARE為pe-soft,然后導(dǎo)出為pe-soft.reg備用
[其實(shí),熟練的話,在前面的步驟就可以導(dǎo)出備用了.]
5.1.2 修改權(quán)限[與前面的操作一樣滴]
用WIMTool解壓Win7.iso的install.wim文件中最后一個(gè)卷(旗艦版Windows),定位到Windows\System32\config下,把software文件加載到注冊(cè)表,命名為pe-soft.
右鍵加載的注冊(cè)表單元pe-soft——>"權(quán)限"——>"高級(jí)"中添加Everyone的完全控制權(quán)限,刪掉Everyone和System以外其他用戶權(quán)限,然后替換所有子項(xiàng)的權(quán)限;
右鍵加載的注冊(cè)表單元pe-soft——>"權(quán)限"——>"高級(jí)"中替換"所有者"為Everyone,然后替換所有子項(xiàng)的所有者.
[注意:請(qǐng)重復(fù)幾次——因?yàn)槲募^多,一次操作可能有遺漏,軟件處理能力有限]
5.1.3 編輯注冊(cè)表
在pe-soft下搜索 Interactive User,找到后全部刪除.
在pe-soft下搜索 C:\ D:\ ,全部替換為 X:\
[注意:RegWorkshop每次只能搜索到1000項(xiàng),而需要替換的有幾千項(xiàng),需要重復(fù)操作幾次.
搜索時(shí)請(qǐng)將keys/value/data三項(xiàng)都勾選,搜索結(jié)果出現(xiàn)在下面的窗口,在搜索結(jié)果窗口中選中所有項(xiàng),鼠標(biāo)右鍵→替換或刪除]
5.1.4 得到WinPE的SOFTARE完整注冊(cè)表
把之前導(dǎo)出的pe-soft.reg導(dǎo)進(jìn)來,覆蓋Win7系統(tǒng)的SOFTWARE注冊(cè)表加載單元pe-soft
[同名在于確保路徑統(tǒng)一,以覆蓋Win7系統(tǒng)的注冊(cè)表]
5.1.5 繼續(xù)修改pe-soft
找到pe-soft下\Microsoft\Windows NT\CurrentVersion\Winlogon下,
把"Shell"="cmd.exe /k start cmd.exe" 改成 "Shell"="explorer.exe"
然后,卸載pe-soft.
5.2 準(zhǔn)備文件
5.2.1 方案一:精確式
從install.wim中拷貝這些文件到boot.wim中同樣的位置:
=====================================
//進(jìn)入SHELL需要添加以下文件
Windows\explorer.exe
Windows\zh-CN\explorer.exe.mui
Windows\System32\ExplorerFrame.dll
Windows\System32\zh-CN\explorerframe.dll.mui
=====================================
//為了穩(wěn)定而添加的文件
Windows\System32\actxprxy.dll /*沒有它,會(huì)提示"explorer.exe不支持此接口" */
Windows\System32\comctl32.dll
Windows\System32\zh-CN\comctl32.dll.mui
Windows\System32\mscories.dll
Windows\System32\oledlg.dll
Windows\System32\zh-CN\oledlg.dll.mui
Windows\System32\shdocvw.dll
Windows\System32\zh-CN\shdocvw.dll.mui
Windows\System32\shellstyle.dll
Windows\System32\zh-CN\shellstyle.dll.mui
=====================================
//為了美觀而添加的文件——與版權(quán)信息,開始菜單按鈕等圖標(biāo)有關(guān)
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的靈魂是注冊(cè)表,文件處理方面較為好辦,如有現(xiàn)成的WinPE,可不必大費(fèi)周章.
偷懶又保險(xiǎn)的方法:
可以直接不覆蓋式拷貝正常 WinPE 的 Windows 文件夾, winpeshl.ini 不要拷貝!其他文件隨便.
要求不高的,選擇 骨頭WinPE ;要求高的,選擇 多功能WinPE ;請(qǐng)自行選擇你喜歡的 WinPE 作為基礎(chǔ).
5.3 打包測(cè)試
通過上面的步驟,我們得到了"史上最完整的"WinPE的SOFTWARE注冊(cè)表.
現(xiàn)在,重新打包boot.wim,保存修改后的WinPE的ISO.
啟動(dòng)VMWare虛擬機(jī)測(cè)試,還是命令提示符窗口,不過你現(xiàn)在運(yùn)行explorer.exe.看看,熟悉的explorer是不是已經(jīng)出來.
6 explorer的初步完善
這里需要利用激活的Win7系統(tǒng)注冊(cè)表,導(dǎo)入PE后,相關(guān)配置和Windows呈現(xiàn)一樣的效果,所以,請(qǐng)先在Windows下配置好.
處理的注冊(cè)表較多,先加載好pe-soft,pe-sys,pe-def.
6.1 explorer 的個(gè)性化設(shè)置
6.1.1 Advanced配置
這里的配置很重要(下面在正運(yùn)行的Win7中配置好,將來在PE中explorer的特性就與這些配置一樣):
在正在運(yùn)行的激活的Win7中,打開explorer資源管理器,在菜單→文件夾和搜索選項(xiàng),在"常規(guī)"頁面,勾選"顯示所有文件夾"和"自動(dòng)擴(kuò)展當(dāng)前文件夾";在 "查看"頁面,按你的習(xí)慣勾選(如顯示隱藏文件,顯示擴(kuò)展名等),特別注意:一定要勾選"在單獨(dú)進(jìn)程中打開文件夾窗口"(否則PE啟動(dòng)后再插入U(xiǎn)盤,U盤不可見);然后,定位到Win7的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,導(dǎo)出為Advanced.REG,用記事本編輯," [HKEY_CURRENT_USER\"全部替換為: " [HKEY_LOCAL_MACHINE\PE-DEF\",再導(dǎo)入PE-DEF.
6.1.2 其他配置
導(dǎo)出Win7系統(tǒng)以下注冊(cè)項(xiàng):
①HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ProductOptions /*壁紙出現(xiàn)了*/
②HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM /* Desktop Window Manager */
③HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Personalization /* 個(gè)性化 */
④HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons /*桌面圖標(biāo)的顯示隱藏:計(jì)算機(jī),回收站,用戶的文件,控制面板,網(wǎng)絡(luò)*/
用記事本修改①~④導(dǎo)出的.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的注冊(cè)表中
6.1.3 顯示我的電腦圖標(biāo)
在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 定位到正在運(yùn)行的win7注冊(cè)表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services下面,導(dǎo)出與win7相關(guān)的幾項(xiàng)DXGKrnl, monitor,Schedule,Themes,UxSms和vga.
把剛才導(dǎo)出的win7的那6項(xiàng)服務(wù)導(dǎo)入到pe-sys下\ControlSet001\services中.
6.2.2 在pe-sys的\Setup\AllowStart\中新建項(xiàng)Themes
6.2.3 這是唯一需要文件修改與添加的地方. 參見 http://bbs.wuyou.com/viewthread.php?tid=167092 用hex編輯器打開winlogon.exe,在其中查找unicode字符串minint,修改其中任一字母,只要和原先不一樣即可,比如,改成minins. 下載ux.exe,在運(yùn)行explorer前運(yùn)行此小程序即可啟用Win7的basic主題.ux.rar (3.97 KB, 下載次數(shù): 196)
/****************************************************************************
背景知識(shí):system用戶下只能啟用basic主題,沒有aero特效.
想要啟用aero特效的朋友,可搜索無憂相關(guān)資料,有詳細(xì)介紹.不過,本人不建議這么做,因?yàn)镻E的SYSTEM權(quán)限是它生存的意義所在,為此要繞很多圈子.
****************************************************************************/
6.2.4 其他需要補(bǔ)充的文件,見附件"Win7PE_X64支持文件列表"
6.2.5 解決X盤的容量過小問題——開啟主題等,需耗費(fèi)內(nèi)存,這里借機(jī)擴(kuò)充一下
加載注冊(cè)表system單元,展開至/ControlSet001/Services/FBWF,新建二進(jìn)制dword(32位)值,命名為WinPECacheThreshold,修改鍵值為200.(這是512MB,可以根據(jù)需要修改鍵值)
6.2.6 卸載PE的所有注冊(cè)表加載單元,檢驗(yàn)效果.
7 通過winpe自帶的幾個(gè)小程序?qū)崿F(xiàn)一些常用功能.
7.1 驅(qū)動(dòng)的加載程序—Drvload.exe
經(jīng)常有人問該怎么加入驅(qū)動(dòng),準(zhǔn)備好你的驅(qū)動(dòng)文件,看了下面圖片你就清楚了,格式就是drvload (inf文件路徑)
7.2 winpe工具—Wpeutil.exe
這個(gè)工具非常實(shí)用,大家可以參看WAIK的幫助文件.如果不用第三方程序,pe的關(guān)機(jī)和重啟就是通過它實(shí)現(xiàn)的.下面列了幾個(gè)有用的
wpeutil shutdown 關(guān)機(jī)
wpeutil reboot 重啟
wpeutil CreatePageFile /path=C:\pagefile.sys.設(shè)置虛擬內(nèi)存
wpeutil DisableFirewall 開關(guān)防火墻 (Enablefirewall)
7.3 winpe的初始化設(shè)置—Wpeinit.exe
7.3.1 Wpeinit.exe的介紹
Wpeinit 是命令行工具,它在每次啟動(dòng) Windows PE 時(shí),對(duì)其進(jìn)行初始化.當(dāng) Windows PE 啟動(dòng)時(shí),Winpeshl.exe 執(zhí)行啟動(dòng) Wpeinit.exe 的 Startnet.cmd.
具體地說,Wpeinit.exe 安裝 PnP 設(shè)備,處理 Unattend.xml 設(shè)置并加載網(wǎng)絡(luò)資源.
另外,Wpeinit 會(huì)將日志消息輸出到 c:\Windows\system32\wpeinit.log.
7.3.2 Wpeinit.exe的使用
首先你得建立一個(gè)應(yīng)答文件,打開Windows系統(tǒng)映像管理器,想偷懶的可以直接以win7的安裝文件基礎(chǔ),打開安裝盤source文件夾下install_windows 7 ultimate.clg.
再新建應(yīng)答文件,傳送Components中的Microsoft-Windows-Setup到pe,在這里可以設(shè)置屏幕分辨率,計(jì)算機(jī)名,頁面文件等等,刪掉不需要的部分,保存為init.xml
調(diào)用如下:
wpeinit.exe /unattend=X:\Users\Default\Documents\init.xml
7.4 explorer的自動(dòng)載入—Winpeshl.exe
7.4.1 比如,我們可以讓winpe自動(dòng)載入explorer并啟用主題,新建ISO\Windows\System32\winpeshl.ini 中內(nèi)容為:
[LaunchApps]
wpeinit.exe /unattend=X:\Users\Default\Documents\init.xml
ux.exe
X:\windows\explorer.exe
/* 沒有應(yīng)答文件直接運(yùn)行wpeinit.exe.當(dāng)然,還可以加載更多的程序,一行一行的添加就行了. */
/****************************************************************************
背景知識(shí):Windows PE 提供了三種方法啟動(dòng)自定義腳本:Winpeshl.ini,Startnet.cmd 和 Autounattend.xml.
Windows PE 默認(rèn)界面是一個(gè)命令提示符窗口.但是,您可以創(chuàng)建自定義的 Winpeshl.ini 文件,以運(yùn)行自己的外殼應(yīng)用程序(SHELL).也可以創(chuàng)建自己的 Startnet.cmd 版本來運(yùn)行特定的命令集,批處理文件或腳本.
****************************************************************************/
7.4.2 刪除startnet.cmd
當(dāng)你加入上面的Winpeshl.ini文件時(shí),Winpeshl.exe不再檢測(cè)startnet.cmd是否存在,startnet.cmd已經(jīng)不起任何作用了,刪不刪掉都可以.
8 使用windows的其他功能和設(shè)置
8.1 windows程序的添加
由于我們直接使用了修改的win7的software注冊(cè)單元,其他功能的添加就很簡單了.基本不用改注冊(cè)表,直接復(fù)制文件就是了.
8.1.1 比如要加入ie8,就復(fù)制Program Files\Internet Explorer下所有文件(以及system32文件夾下相關(guān)文件)到ISO\Program Files下即可.
[注意:這是64位ie,你要愿意,也可以Program Files(x86)下的32位IE.]
8.1.2 同理,要使用windows的查看圖片功能,復(fù)制Windows Photo Viewer即可,其他類似.
8.1.3 要用控制面板,控制臺(tái),復(fù)制相應(yīng)的cpl和mmc文件,要使winpe支持.net framework, 復(fù)制win7的的assembly和Microsoft.NET放進(jìn)去就可以了(同時(shí)支持v2.0,v3.0和v3.5會(huì)很大,不知道網(wǎng)上有沒有精簡的)
8.1.4 64位winpe的32位程序支持(WOW64)同樣不需要配置注冊(cè)表,拷貝syswow64以及system32下的wow相關(guān)文件就可以了.
[注意:要支持多少wow64程序取決于你拷貝syswow64文件夾中的文件.和system32中的一樣,你不復(fù)制mfc.dll不會(huì)對(duì)你的pe有影響,但是那樣你就不能支持需要這個(gè)dll的程序.]
8.2 windows服務(wù)的添加.
winpe不能安裝msi格式的安裝包,我們以給winpe添加msi服務(wù)為例,添加其他服務(wù)類似.
8.2.1 確認(rèn)文件復(fù)制完整后,把加載win7安裝文件的system配置單元到注冊(cè)表并命名為pe-sys.找到下面的ControlSet001\services\msiserver 全部導(dǎo)出備用. 卸載pe-sys.
8.2.2 加載winpe的system配置單元(:ISO\Windows\System32\config下system文件)到注冊(cè)表并命名為pe-sys,導(dǎo)入剛才導(dǎo)出的msiserver即可.
8.3 windows的一些設(shè)置
你要設(shè)置計(jì)算機(jī)名,桌面圖片,oem信息和圖片,隱藏夾顯示與否,開始菜單,任務(wù)欄,桌面什么的,網(wǎng)上很多了,這里列舉幾個(gè):
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 修改計(jì)算機(jī)右鍵屬性內(nèi)容
用ResHacker.exe工具修改Windows\System32\zh-CN下systemcpl.dll.mui文件即可.
8.3.3 開始菜單和桌面
控制開始菜單的顯示項(xiàng)目:
\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
桌面圖標(biāo)的顯示和隱藏:
\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons
8.3.4 計(jì)算機(jī)名稱的修改
加載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的幫助文件,很簡單,批處理都給你寫好了.
9 一些需要注意的一些地方和其他程序的加入
9.1 用戶文件夾的更改,默認(rèn)在config文件夾下,建議改到X:\Users\Default下,在Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18 下修改.
9.2 計(jì)算機(jī)管理管理不能在"我的電腦"上用右鍵打開,加載pe注冊(cè)表software單元,修改Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage\command,
為 %SystemRoot%\system32\mmc.exe compmgmt.msc
9.3 "關(guān)機(jī)"按鈕無效,可以改software單元的Microsoft\Windows\CurrentVersion\Policies\Explorer 添加 "NoClose"=dword:00000001 或0 移出或顯示"關(guān)機(jī)"按鈕
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文件,進(jìn)入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 鎖定到任務(wù)欄:
快捷方式在 \Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar,
另外還需要導(dǎo)入default單元的 \Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband 項(xiàng).
9.6.4 附到開始菜單欄:
快捷方式在 \Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\,
另外還需要導(dǎo)入default單元的 \Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage2 項(xiàng).
9.7 綠化第三方程序到PE
可以用注冊(cè)表工具分別掃描安裝程序前后的注冊(cè)表,提取需要寫入的鍵值.將注冊(cè)表導(dǎo)入PE,并復(fù)制安裝形成的文件
?大家注意到,用微軟自帶的winpeshl.exe載入explorer關(guān)機(jī)按鈕無效.如果需要,可以使用pecmd, pecmd有自己的一套東西,操作起來會(huì)方便很多,大家可以根據(jù)需求與喜好用pecmd替換掉winpeshl,并寫入pe注冊(cè)表software單元中的CmdLine.
接步驟5給出走向?qū)嵱没倪M(jìn)階教程
基于Win7PE_X86(比較普遍的WinPE版本,無憂資料豐富,便于學(xué)習(xí)研究)
10 用PECMD取代winpeshl
在 步驟5 中,我們得到了能進(jìn)入"資源管理器"(也即explorer,也即MS SHELL)的WinPE,是微軟系統(tǒng)ISO修改而來的.
體積很大,但我們要的是WinPE的核心——注冊(cè)表.
為了方便大家學(xué)習(xí),長經(jīng)驗(yàn),我做了以下操作:
10.1 用PECMD代替winpeshl.exe,跳過CMD界面直接進(jìn)入桌面:
定位到WinPE注冊(cè)表SYSTEM的SETUP項(xiàng),在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 現(xiàn)在已經(jīng)得到可以進(jìn)入桌面的WINPE注冊(cè)表,有了這個(gè)核心,其他什么文件和優(yōu)化都不是難點(diǎn).
我把修改的注冊(cè)表和Windows\winsxs復(fù)制移植到絕對(duì)PE_V1.6,正常進(jìn)入桌面.
[添加了部分Windows\winsxs是因?yàn)橹苯犹鎿Q注冊(cè)表會(huì)藍(lán)屏,根據(jù)我的經(jīng)驗(yàn)需要補(bǔ)充Windows\winsxs.還有可能是驅(qū)動(dòng)問題]
10.3 稍微精簡了一下,然后發(fā)個(gè)可啟動(dòng)的"演示用WIN7PE.ISO"給大家看看效果.
http://pan.baidu.com/share/link?shareid=166615&uk=3358530891&third=0
11 PECMD.INI中的常用命令解釋
PECMD接管winpeshl后,所有的配置可直接通過PECMD.INI中的命令來實(shí)現(xiàn).下面給出一些最基本的命令,便于入門,更詳細(xì)的命令解釋在PECMD幫助文檔中可以看到.學(xué)習(xí)時(shí)最好參考一些文件結(jié)構(gòu)簡單的WinPE,用記事本查看里面的PECMD.INI,一般在System32目錄或者Windows目錄下,有的PECMD.INI還加載了外置配置文件,也是.INI文件,可以合并的.
11.1 一些基礎(chǔ)的環(huán)境變量:
%CurDir% 表示本配置文件所在目錄
%SystemRoot% 和 %WinDir% 均表示W(wǎng)indows目錄
%ProgramFiles% 表示Program Files 目錄
%Desktop% 表示桌面
%StartMenu% 表示開始菜單目錄
%Startup% 表示啟動(dòng)菜單目錄
%Programs% 表示程序菜單目錄
11.2 基礎(chǔ) EXEC,LOAD,LINK 命令寫法
EXEC %ProgramFiles%\Internet Explorer\iexplore.exe 表示 運(yùn)行 在 Program Files 目錄下\Internet Explorer\iexplore.exe 程序
LOAD %ProgramFiles%\Tools.ini" 表示 加載 在 Program Files 目錄下的Tools.ini 外置配置文件
LINK %Desktop%\騰訊QQ,%ProgramFiles%\QQ.exe 表示 在桌面創(chuàng)建一個(gè)名為"騰訊QQ "的快捷方式,并且鏈接指向 Program Files 目錄下\QQ.exe
?EXEC 負(fù)責(zé)運(yùn)行后綴名為exe,bat,cmd等可執(zhí)行文件
?LOAD 負(fù)責(zé)加載后綴名為ini 的配置文件
?LINK 負(fù)責(zé)創(chuàng)建快捷方式,它負(fù)責(zé)的文件類型很多
11.3 常見符號(hào) ! @ _ & =意義
11.3.1這里這些符號(hào)" ! @ _ & ="都是指搭配EXEC時(shí)的,因?yàn)楸容^常用.常見的有:EXEC _ EXEC & EXEC ! EXEC @
例如:
EXEC _%SystemRoot%\123.exe ------表示最小化運(yùn)行Windows 目錄下的123.exe
EXEC &%SystemRoot%\123.exe ------表示最大化運(yùn)行Windows 目錄下的123.exe
EXEC !%SystemRoot%\123.exe ------表示隱藏運(yùn)行Windows 目錄下的123.exe (常用)
EXEC @%SystemRoot%\123.exe ------表示徹底隱藏運(yùn)行Windows 目錄下的123.exe
11.3.2另外一種寫法:
EXEC =!%SystemRoot%\123.exe ------表示隱藏運(yùn)行Windows 目錄下的123.exe
[它多了一個(gè)"="號(hào),表示等待這個(gè)命令執(zhí)行結(jié)束,可以根據(jù)自己的情況加或不加
聯(lián)系客服