請選擇 進入手機版 | 繼續訪問電腦版

NoName Team 電腦資訊討論區

 找回密碼
 我要註冊
搜索
查看: 4212|回復: 1

[教學] PE開機流程

[複製鏈接]
發表於 2021-4-9 21:43:29 | 顯示全部樓層 |閱讀模式
本帖最後由 makimaki2 於 2021-4-9 21:44 編輯

本文為轉載,原文地址如下
https://maxymx.pixnet.net/blog/post/196237540-pe%E9%A0%90%E8%A8%ADcmd%E8%A8%AD%E5%AE%9A%E6%AA%94%E7%9A%84%E4%BB%8B%E7%B4%B9%E5%92%8C%E6%B8%AC%E8%A9%A6
因為很重要所以特別轉過來


PE預設CMD設定檔的介紹和測試

背景知識

Windows PE 4.x(3.x  2.x類似)引導過程:
①Windows PE 在特定媒體上載入開機磁區。系統將控制傳遞給 Bootmgr。Bootmgr 從啟動配置資料 (BCD) 中提取基本啟動資訊,並將控制傳遞給包含在 Boot.wim 文件中的 Winload.exe 文件。然後 Winload.exe 將載入相應的硬體抽象層 (HAL),接著載入系統登錄配置單元和必要的啟動驅動程式。Winload.exe 完成載入後,將會準備要執行內核 Ntoskrnl.exe 的環境。
②該環境將執行 Ntoskrnl.exe 文件。然後 Ntoskrnl.exe 完成環境設置。系統將控制傳遞給會話管理器 (SMSS)。
③SMSS 載入註冊表的剩餘部分,然後配置運行 Win32 子系統 (Win32k.sys) 的環境及其各種進程。SMSS 載入用於創建使用者會話的 Winlogon 進程,然後啟動服務和剩餘的非必要設備驅動程式及安全子系統 (LSASS)。
④Winlogon.exe 根據 HKEY_LOCAL_MACHINE\SYSTEM\Setup\CmdLine 註冊表值來運行設置。Winpeshl.exe 將啟動 %SYSTEMDRIVE%\sources\setup.exe 文件,前提是該文件存在。如果該檔不存在,Winpeshl.exe 將確定 %SYSTEMROOT%\system32\winpeshl.ini 檔是否指定了某個應用程式。如果該檔未指定應用程式,則 Winpeshl.exe 將執行 cmd /k %SYSTEMROOT%\system32\startnet.cmd 文件。預設情況下,Windows PE 包含啟動 Wpeinit.exe 文件的 Startnet.cmd 文件。Wpeinit.exe 將載入網路資源並協調網路元件(如 DHCP)。
⑤當 Wpeinit.exe 結束時,將會出現命令提示視窗。當命令提示視窗出現時,Windows PE 的啟動進程結束。


我的測試
說明:Windows PE 4.x(3.x  2.x類似)在④中切入使用者配置,本人將該階段設定檔執行情況進行了如下測試,一一列出。
※測試階段一
①註冊表CmdLine和設定檔的內容
CmdLine:winpeshl.exe
winpeshl.ini:wpeinit.exe
startnet.cmd: wpeinit.exe

②測試結果列表
winpeshl.ini    startnet.cmd    啟動ISO測試結果
不存在              存在            有CMD介面出現。顯示:"wpeinit運行,另起一行"               //Windows PE的預設情況      
不存在           不存在            有CMD介面出現。顯示:"'startnet.cmd'不是內部或外部命令,也不是可運行的程式"
   存在              存在            CMD介面不出現,黑屏,重啟
   存在           不存在            CMD介面不出現,黑屏,重啟  

※測試階段二
①註冊表CmdLine和設定檔的內容
CmdLine:winpeshl.exe
winpeshl.ini:空
startnet.cmd: wpeinit.exe

②測試結果列表
winpeshl.ini    startnet.cmd   啟動ISO測試結果
    存在              存在          有CMD介面出現。顯示:"winpeshl.ini檔存在,但沒有成功啟動命令。這可能是由於格式錯誤或可執行檔名無效導致。請參考文檔以瞭解更多資訊。"


※測試階段三
①註冊表CmdLine和設定檔的內容
CmdLine:winpeshl.exe
winpeshl.ini: wpeinit.exe
startnet.cmd:空

②測試結果列表
winpeshl.ini    startnet.cmd    啟動ISO測試結果
不存在           存在               有CMD介面出現。比預設情況少了wpeinit運行的行,純CMD介面。


※測試階段四
①註冊表CmdLine和設定檔的內容
CmdLine:PECMD MAIN %SystemRoot%\PECMD.INI
PECMD.INI:wpeinit.exe  
②測試結果列表                           
PECMD.EXE    PECMD.INI       啟動ISO測試結果   
存在              存在               有CMD介面出現。比預設情況少了wpeinit運行的行,純CMD介面。


我的結論
1.按照順序:%SYSTEMDRIVE%\sources\setup.exe→%SYSTEMROOT%\system32\winpeshl.ini→cmd /k %SYSTEMROOT%\system32\startnet.cmd ,winpeshl.exe逐一檢查,如果發現其中一個,檢測中止,立即運行;否則,按照實際情況提示,比如,什麼都沒檢測到,提示「'startnet.cmd'不是內部或外部命令,也不是可運行的程式」,說明檢測結束了,連startnet.cmd都沒有發現.
2.其他結論,根據實驗結果清單可以作出。
 樓主| 發表於 2021-4-9 22:42:50 | 顯示全部樓層

原文地址
http://white5168.blogspot.com/2013/05/scriptpe.html

添加script到WinPE中
WinPE系統提供了三種方法啟動自訂腳本:Winpeshl.ini、Startnet.cmd 和 Unattend.xml。
原生態WinPE系統的預設介面是「命令提示字元」視窗,但可以建立自訂的Winpeshl.ini檔,以便執行自己的外殼應用程式。也可以創建自己的 Startnet.cmd批次檔來運行特定的命令集、批次檔或腳本。Unattend.xml是WinPE 2.0的新應答檔案格式,它取代了Winbom.ini和Winpeoem.sif。以下將詳細介紹將自訂腳本DIY添加到WinPE系統中,在添加任何自訂腳本之前,必須先使用ImageX應用或裝入基本WinPE映射 (WinPE.wim)。
一、使用Winpeshl.ini添加自訂腳本:
    可以使用Winpeshl.ini的檔來啟動自訂的外殼應用程式。Winpeshl.exe將在啟動期間處理Winpeshl.ini中的設置。使用文字編輯器(如記事本)創建具有以下檔目錄結構的Winpeshl.ini文字檔。例如:
    [LaunchApp]
    AppPath = %SYSTEMDRIVE%\myshell.exe
    [LaunchApps]
    %SYSTEMDRIVE%\mydir\application1.exe, -option1 -option2
    application2.exe, -option1 -option2
  註:將AppPath項設置為外殼應用程式的路徑。此路徑可以是絕對路徑,也可以使用環境變數(相對路徑),例如%SYSTEMROOT%\System32\Myshell.exe。AppPath 項不支援命令列選項。將此檔保存到WinPE系統映射的%SYSTEMROOT%\System32下。

二、使用Startnet.cmd添加自訂腳本:
  使用Startnet.cmd可以在WinPE系統中添加自訂的命令列腳本。預設情況下,WinPE系統包括Startnet.cmd腳本,此腳本位於WinPE系統映射的 %SYSTEMROOT%\System32 中。當前,主要用Startnet.cmd來啟動Wpeinit.exe。用於安裝隨插即用 (PnP) 設備、處理 Unattend.xml 設置以及載入網路資源。編輯Startnet.cmd 以包括自訂命令。
  注意:對於PnP和網路支援,請確保在自訂Startnet.cmd腳本中包含了對wpeinit的調用。

三、使用Unattend.xml添加自訂腳本,定義各種 Windows PE 設定和動作。
您需要登錄後才可以回帖 登錄 | 我要註冊

本版積分規則

小黑屋|手機版|NoName Team 電腦資訊討論區 |網站地圖

GMT+8, 2024-12-10 20:35 , Processed in 0.516656 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表