【官方介紹】
一、什么是winpewinpe的全名是WindowsPreinstallationEnvironment(WinPE)直接從字面上翻譯就是“Windows預(yù)安裝環(huán)境”。微軟在2002年7月22日發(fā)布,它的原文解釋是:“Windows預(yù)安裝環(huán)境(WinPE)是帶有限服務(wù)的最小Win32子系統(tǒng),基于以保護模式運行的WindowsXPProfessional內(nèi)核。它包括運行Windows安裝程序及腳本、連接網(wǎng)絡(luò)共享、自動化基本過程以及執(zhí)行硬件驗證所需的最小功能?!睋Q句話說,你可把WinPE看作是一個只擁有最少核心服務(wù)的Mini操作系統(tǒng)。微軟推出這么一個操作系統(tǒng)當(dāng)然是因為它擁有與眾不同的系統(tǒng)功能,如果要用一句話來解釋,我認(rèn)為與Win9X/2000/XP相比,WinPE的主要不同點就是:它可以自定義制作自身的可啟動副本,在保證你需要的核心服務(wù)的同時保持最小的操作系統(tǒng)體積,同時它又是標(biāo)準(zhǔn)的32位視窗API的系統(tǒng)平臺。
二、WinPE的限制
1.為了防止將它用作盜版操作系統(tǒng),在連續(xù)使用24小時后WinPE將自動退出并重啟。
2.你可從WinPE計算機通過網(wǎng)絡(luò)直接訪問服務(wù)器和共享。但不能從網(wǎng)絡(luò)上的另一個位置訪問WinPE計算機上的任何文件或文件夾。WinPE通過TCP/IP及其上的NetBIOS獲得到達(dá)文件服務(wù)器的網(wǎng)絡(luò)連接,不支持其他方法(如IPX/SPX網(wǎng)絡(luò)協(xié)議)。
3.因為涉及反盜版,所以只能從Windows XP Professional CD建立WinPE的自定義版本。而不能從Windows XP Home Edition或Windows 2002 Server操作系統(tǒng)家族的任何成員建立。
4.WinPE太大,不能放在軟盤上。WinPE僅包括可用Win32API的子集(包括I/O(磁盤和網(wǎng)絡(luò))和核心Win32API)。如果 Win32下運行的服務(wù)基于Win32API子集,則它在WinPE是否可用需具體分析。這里不詳細(xì)列出WinPE不支持的API了,反正 rundll32.exe和shell.dll等是不被支持的,想要在WinPE下面玩Quake的朋友還是趁早放棄。
三、怎么制作WinPE
談到這個話題,應(yīng)該有很多人比較關(guān)心,很想了解一下怎么一步一步制作自己的pe。其實我也不明白pe是怎么制作出來的,但是咱們可以享受別人的勞動成果,有一句話說的比較好,站在巨人的肩膀上看的就是遠(yuǎn)。呵呵!我們完全可以走另外一條路,就是--拿來主義!我們完全可以下載別人做好的pe系統(tǒng),然后經(jīng)過自己的加工和修改讓它變成自己的pe系統(tǒng)。如果你是想完全一步一自己制作pe系統(tǒng),那么本文不適合你,沒辦法,有很多東西都是自己做不來的,最起碼的工具不能自己編寫吧!windows不能自己編吧!所以我們可以先學(xué)習(xí)怎么自己修改pe然后在學(xué)習(xí)pe是怎么制作出來的。下面就講講怎么修改pe系統(tǒng)!
A、 修改WinPE的OEM信息
1.提取文件
從WinPE鏡像光盤中提取WinPE.IS_并解壓,得到WinPE.ISO,提取其中需要的文件
2.修改
修改OEM文字信息請編輯OEMINFO.INI (用記事本編輯即可),修改OEM圖標(biāo)請用作圖工具編輯
3.替換文件&壓包
用UltraISO把修改好的文件替換到WinPE.ISO中對應(yīng)的位置,再把WinPE.ISO用makecab壓為WinPE.IS_文件,最后用UltraISO把剛壓縮得到的WinPE.IS_替換到原始WinPE光盤(鏡像)中生成新的WinPE光盤(鏡像)
備注:有的修改 OEM 信息是修改 Winpe.ini 文件。我用到的pe就是修改這里,很多資料都是互相摘抄的,我的也是,呵呵!在我修改的過程中下載了幾個pe都沒有找到oeminfo.ini文件,讓我忙了好久。呵呵,比較笨!
還可以在Winpe.ini中添加代碼如下:
reg add"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /vRegisteredOwner /t reg_sz /d 本拉登 /f >nul
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /vRegisteredOrganization /t reg_sz /d 基地組織 /f >nul
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /vProductId /f >nul 2>nul
del /a /f /q
B、增減外置程序
外置程序在光盤的“外置程序”目錄中,有的名字發(fā)生了變化,不過大多數(shù)都跟WinPE.INI在一個目錄中。對應(yīng)的配置文件是該目錄下的 WinPE.INI。刪除程序只須刪除該軟件在外置程序目錄對應(yīng)的子目錄,再刪除 WinPE.INI 中相應(yīng)的 LINK 創(chuàng)建快捷方式的語句行即可。添加程序正好相反,將綠色軟件放到外置程序目錄中,在 WinPE.INI 中加入相應(yīng)的 LINK 語句行創(chuàng)建快捷方式即可(參照其它 LINK 語句,復(fù)制一行,只須要改一下快捷方式的位置、名稱/目標(biāo)程序的目錄名、可執(zhí)行文件名。配置圖標(biāo)只需定位到原程序即可)。
這里所說的綠色軟件是指能在 PE 中運行綠軟,網(wǎng)上所見的大多綠軟并不是真正的綠色軟件,應(yīng)該叫準(zhǔn)綠色軟件或者免安裝軟件。實際上很多并不是為 PE 準(zhǔn)備的軟件也是可以在 PE 中運行的,用一個笨辦法來判斷一個普通的綠軟是否可以直接在 PE 中運行,啟動 PE 環(huán)境,找到該軟件所在目錄,復(fù)制一份備份,然后將該目錄和目錄下的所有文件屬性改為只讀,直接雙擊目錄內(nèi)的可執(zhí)行文件,看能否運行,運行后各項功能都使用一下看是否正常,如無異常,則可按上面的方法簡單加入。
如運行異常,有可能缺某些庫文件(這種情況一般有提示),或它在自己的目錄內(nèi)寫東西,或依賴注冊表中的某些鍵值,這就需要動點手腳,如準(zhǔn)備缺少的庫文件,看它自己的目錄下有沒有配置文件可以修改,在 XP 中運行監(jiān)視它要讀些哪些注冊表項。這種情況對不同的軟件解決的方法不同,也可能無法解決,不過此種情況超出本文的定位,不再詳述。
C、定制WinPE啟動時顯示中文進(jìn)度條
1、用UE打開Setupldr.bin查找bootfont修改所有bootfont.bak為bootfont.bin(中文支持字體文件,在WinXP系統(tǒng)的根目錄下可以找到?;蛘咧苯诱业絙ootfont.bin文件,修改為bootfont.bak)
2、在偏移45358h處找到00 DB 00修改DB為3E(可以選擇自己喜歡的半角符號的16進(jìn)制碼) 或16進(jìn)制查找00 DB 00修改
3、修改你認(rèn)為有必要修改的英文提示字符串為中文(注意合適的字節(jié)數(shù)),最好也把TXTSETUP.SIF里的那句也改成中文
4、將bootfont.bin放在WinPE 的根目錄下
5、將修改后的Setupldr.bin替換原來的Setupldr.bin
一、增減外置程序(注:以修改老毛桃0325版為例,下同)
外置程序在老毛桃WinPE光盤的“外置程序”目錄中,對應(yīng)的配置文件是該目錄下的 WinPE.INI.刪除程序只須刪除該軟件在外置程序目錄對應(yīng)的子目錄,再刪除 WinPE.INI 中相應(yīng)的 LINK 創(chuàng)建快捷方式的語句行即可。添加程序正好相反,將綠色軟件放到外置程序目錄中,在 WinPE.INI 中加入相應(yīng)的 LINK 語句行創(chuàng)建快捷方式即可(參照其它 LINK 語句,復(fù)制一行,只須更改一下快捷方式的位置、名稱/目標(biāo)程序的目錄名、可執(zhí)行文件名)。
實際上很多并不是為 WinPE 準(zhǔn)備的軟件也是可以在 WinPE 中運行的,用一個笨辦法來判斷一個普通的綠軟是否可以直接在 WinPE 中運行,啟動 WinPE 環(huán)境,找到該軟件所在目錄,復(fù)制一份備份,然后將該目錄和目錄下的所有文件屬性改為只讀,直接雙擊目錄內(nèi)的可執(zhí)行文件,看能否運行,運行后各項功能都使用一下看是否正常,如無異常,則可按上面的方法簡單加入。如運行異常,有可能缺某些庫文件(這種情況一般有提示),或它在自己的目錄內(nèi)寫東西,或依賴注冊表中的某些鍵值,這就需要動點手腳,如準(zhǔn)備缺少的庫文件,看它自己的目錄下有沒有配置文件可以修改,在 XP 中運行監(jiān)視它要讀些哪些注冊表項。這種情況對不同的軟件解決的方法不同,也可能無法解決。
二、定制登錄過程
這一項改動需要熟悉 PECMD 各命令的用法,讀懂配置內(nèi)外配置文件,最好對系統(tǒng)登錄的過程有點了解。只作為興趣,因為老毛桃的登錄順序幾乎也沒什么可改動的了,可以留給我們定制的就是改改提示句、外置程序的加載方式、調(diào)整一下細(xì)節(jié)而已。這一過程會涉及到內(nèi)部配置文件:
1、將光盤映像根目錄中的 WinPE.IS_ 用 UltraISO 或 winrar 提取出來
2、將名稱改成 WinPE.CAB(不改也可以,但用 winrar 打開會麻煩點)
3、用 WinRAR 將其中的 WinPE.ISO 解壓出來
4、用同樣的方法,將 WinPE.ISO 中的 WXPE\SYSTEM32\PECMD.INI 提取出來(注:要修改什么文件就提取什么文件,后面的改注冊表也要用到此方法)
5、按自己的需要修改提取出來的文件
6、將修改后的文件放入 WinPE.ISO 中替換原來的(目錄位置一定要相同)
7、用 CAB 打包工具將 WinPE.ISO 重新打包為 WinPE.IS_
8、再將 WinPE.IS_ 放到老毛桃的光盤映像中替換原來的(注:用 UltraISO 修改 ISO 映像文件時最好用另存,以免改錯了原來的備份也沒有了)
三、修改外置程序目錄名
要改動的地方有 3 個文件和1 個目錄名:
1、內(nèi)部配置文件 PECMD.INI(修改方法見前面說明)
2、\外置程序\WinPE.INI (前面的根指光盤映像的根目錄)
3、\WINPE安裝\SETUP.INI (老毛桃的安裝卸載程序要用它)
4、外置程序的目錄名(這個是當(dāng)然的)
將三個 INI 文件提取出來按下面的步驟修改,假設(shè)新名為 "NEWNAME"
1、用記事本打開 INI 文件,將光標(biāo)定在文件最前面
2、菜單:編輯-替換...
3、在“查找內(nèi)容”編輯框中輸入"\外置程序"(不含引號)
4、在“替換為”編輯框中輸入"\NEWNAME"(不含引號)
5、點全部替換
6、在“查找內(nèi)容”編輯框中輸入"外置程序\"(不含引號)
7、在“替換為”編輯框中輸入"NEWNAME\"(不含引號)
8、點全部替換
9、保存
用修改后的文件替換下載的光盤映像中原來的(外置程序這個目錄的名字可以直接在 UltraISO 中修改),說得這么麻煩只是為了防止漏改或者將注釋也給改了,實際上新版本因采用的 %CurDir% 這個環(huán)境變量后,要改的只有幾個地方,手工改也是可以的。
四、修改系統(tǒng)設(shè)定
這一步主要是指修改 WinPE 的注冊表,可以直接修改WinPE注冊表,也可以修改配置文件。
1、修改內(nèi)部注冊表的方法:
用前面修改 PECMD.INI 的方法將內(nèi)部注冊表的文件提取出來:
\WXPE\SYSTEM32\CONFIG\*.*
\WXPE\SYSTEM32\SETUPREG.HI_ (這是CAB壓縮包,將它解開成 SETUPREG.HIV)
運行注冊表編輯器 REGEDIT.EXE,鼠標(biāo)點擊 HKEY_LOCAL_MACHINE,然后點“文件”-“加載配置單元”,打開提取出來的注冊表文件(需要改哪個就加載哪個),提示掛載名時隨便輸入取一個名字如“WinPE”,展開 HKEY_LOCAL_MACHINE 后里面就有一項 WinPE,然后就跟普通的注冊表操作一樣了,改好后用鼠標(biāo)點一下 “WinPE”項目,然后“文件”-“卸載配置單元”,這個文件就改好了。用改過的注冊表文件替換原來的。
2、修改配置文件的方法:
對于普通的不依賴于外置程序目錄結(jié)構(gòu)的注冊表項目,可以用常規(guī)方法將修改項寫成 REG 文件(可以直接從 XP 系統(tǒng)中導(dǎo)出,然后在其基礎(chǔ)上修)。在外置程序目錄下有個 RegDoc.cmd,這個文件是毛桃用來注冊外置程序文檔關(guān)聯(lián)的(就是改注冊表),可以用記事本打開它,加入一行:
REGEDIT /s REG文件名
則 WinPE 加載外部配置時它會自動導(dǎo)入。
這是最簡單的改注冊表的方法。但是如果要改的項依賴于外置程序的目錄結(jié)構(gòu)(比如要在右鍵菜單中添加用 UltraEdit32 打開),就不能用上面的方法了,因為外置程序的絕對路徑是不確定的(不同的機器中盤符不能確定)。這種情況就需要用原始的 REG 命令來做了(就跟老毛桃在REGDOC.CMD 中的做法一樣),這個命令的語法比較艱懂,且注冊表鍵值的表示方法跟 REG 文件不同。在命令提示符下通過 /? 參數(shù)可以獲得它的用法(中文的哦),提醒一下 /? 參數(shù)是個以多層使用的,如 REG /? 得到的是基本參數(shù)的說明,如用 REG ADD /? 則可得到 ADD 這個參數(shù)的用法……,有了這個命令的基礎(chǔ)后,我們來看看是怎么解決不定路徑問題的。在 REGDOC.CMD 中有一個環(huán)境變量 %TP%,代表的是 REGDOC.CMD 這個文件所在的路徑。我們可以通過 %TP%\..\ 表示它的上層目錄,%TP%\..\..\ 表示它的上兩層目錄。用此方法可以索引到外置程序目錄內(nèi)的所有路徑,而不用考慮外置程序目錄本身的絕對路徑。還有個方法就是在 WinPE.INI 中用 PECMD 的 REGI 命令一行行添加,這個比系統(tǒng)的 REG 命令好理解些,同樣可以用 %CurDir% 環(huán)境變量來索引外置程序目錄內(nèi)的所有路徑.直接修改的好處是啟動 WinPE 就是所需要設(shè)置,不依賴外部配置文件,WinPE 的加載速度也比較快,但麻煩。修改配置文件則比較簡單,但要依賴配置文件加載過程(直到加載到那些語句時才會生效),啟動時需要額外的時間加載,相當(dāng)于給系統(tǒng)打補丁去修改默認(rèn)設(shè)置。
一般情況下不推薦直接修改WinPE注冊表,麻煩,重新打包也比較花時間。但有些跟系統(tǒng)緊密的鍵必須直接修改才有效,比如屏幕分辨率,雖然在外面也可以修改有,但在登錄時加載到它之前是無效的,那么在登錄的過程中屏幕就會因切換分辨率而閃爍。
自己修改注冊表的前提是自己要知道所希望的改變要修注冊表中的哪些鍵值??梢陨暇W(wǎng)搜索,現(xiàn)在網(wǎng)上的這些資源多得是,實在找不到的話可以還可以用 RegMon 之類的注冊表監(jiān)視軟件來定位。比如修改記事本的自動換行,又不知道相應(yīng)的鍵值在哪??梢韵乳_啟 RegMon,然后在記事本中改變換行的選項,看 RegMon 的監(jiān)視結(jié)果,來定位是哪個鍵值。因為系統(tǒng)本身也在不斷的更改注冊表,RegMon 中的顯示會很多,但是通過不斷的改變記事本中的設(shè)置,最終是可以找到的,這個過程需要的是耐心和細(xì)心。
五、添加驅(qū)動
在外置程序目錄中有一個比較重要的目錄“PE_OUTERPART”,核心的外置組件都放在這里。里面有 4 個 CAB 壓縮包,分別是 網(wǎng)卡/無線網(wǎng)卡/聲卡/顯卡 驅(qū)動包,而且加載的框架都已經(jīng)搭好了,在 cmd 腳本中會自動調(diào)用 INFCACHEBUILD.EXE 處理驅(qū)動程序。我們要做的工作就是獲取驅(qū)動程序文件,將它們放到相應(yīng)的驅(qū)動包中。
從本機上獲取驅(qū)動文件有很多驅(qū)動備份工具,我用的是最笨的方法,在設(shè)備管理器中查看驅(qū)動程序詳細(xì)信息,然后一個個復(fù)制文件,建一個目錄,放到相應(yīng)的驅(qū)動包中。中間有一個步驟,就是改一下復(fù)制出來的inf文件的名稱,讓它按文件名排序時可以排在最前面(我就是在文件名前面加了個下劃線)。我不知道這一步是否是必須的。這樣提取出來的驅(qū)動文件可能很大,測試成功后再刪除一些不必要的驅(qū)動文件。有很多文件是可以刪除的,可以參考原驅(qū)動包中同類驅(qū)動的文件,將類似的文件保留,其它刪除。另一個笨辦法是一個個刪除,每刪除一個測試一次,最終找到一個最小的驅(qū)動文件子集。


































