導航:首頁 > 程序命令 > pecmd命令

pecmd命令

發布時間:2025-06-26 14:46:30

① win10pecmd命令裝系統

win10pecmd命令裝系統(cmd命令重裝系統)定製 Windows 10 安裝程序准備WinPE修改WinPE 掛載winpe 添加中文語言支持1 修改WinPE啟動後調用程序開發 Windows 安裝程序封裝ISO定製鏡像的安裝效果參考

Windows 鏡像定製非常常見,無論是個人還是組織,為了滿足各種需求,都可能進行 Windows 鏡像定製。常見的定製內容就是精簡系統,如移除不必要的系統組件、模塊、app;以及其他一些系統配置,如關閉一些遙測數據發送,保護用戶隱私安全。這些定製內容的效果,主要體現在用戶後期使用操作系統的過程中。那麼在用戶安裝操作系統的過程中,能不能根據需求做一些定製化的操作呢?答案是肯定的。

默認的Windows安裝程序要求用戶在安裝過程中選擇安裝語言、安裝版本、安裝磁碟、所在時區以及後續的用戶名和密碼等設置。以下為普通安裝過程:

思考一下Windows鏡像文件安裝操作系統過程,可以分為兩種方式。首先進入到winPE環境,使用dism應用映像文件或者運行Windows安裝程序。另外一種方式是從可啟動的安裝媒介,比如刻錄的U盤或者DVD來運行Windows安裝程序,進行Windows 操作系統的安裝。

通過鏡像文件安裝操作系統的兩種方式最終都會落腳到 Windows 安裝程序。只要我們能夠接管這一安裝程序,或者說我們自己來實現一個安裝程序來安裝 Windows,就能夠滿足上面的需求。

到這里,定製 windows 10 安裝程序的想法就通順了:啟動盤開始引導,進入winpe,調用定製後的 windows 安裝程序,通過安裝程序來安裝操作系統。所有與用戶的交互以及系統的安裝工作都由安裝程序來實現。所以,簡單來說,這里只需要處理好winpe調用安裝程序的過程以及准備安裝程序這兩點基本就夠了。

思路確定,開始動手!

准備WinPE

首先通過 Windows ADK製作WinPE。
Windows 鏡像文件中帶有一個PE文件,但選擇 Windows ADK來製作winpe有兩點考慮:1. 鏡像自帶winpe體積比較大,ADK中winpe更加精簡,體積小;2. 鏡像自帶winpe出現過如漢化不全的問題,這時候不太好找到對應的語言包,而ADK中包含比較全面的工具包,所以直接選用ADK來製作winpe。
在頁面 Windows ADK頁面下載 Windows ADK,每一個ADK都有對應的windows適用版本,我這里選擇windows 10 1809 版本:
Windows ADK for Windows 10 版本 1809
適用於 ADK 版本 1809 的 Windows PE 載入項
兩個exe文件下載完成後進行安裝,初始界面如圖,其餘按照默認選項點擊"下一步"進行安裝就好了。

ADK 安裝界面

WindowsPE載入項 安裝界面

安裝完成後,會在開始菜單出現:

選擇"部署和映像工具環境",彈出ADK console。

執行 pe amd64 E:Win10PE 命令,x64版本winpe就被提取出來,在 E:Win10PEmediasources 目錄下就會得到boot.wim文件。

修改WinPE掛載winpe

在E:Win10PEmediasources目錄下創建boot文件夾,然後通過命令 dism /mount-wim /wimfile:"E:Win10PEmediasourcesoot.wim" /index:1 /mountdir:"E:Win10PEmediasourcesoot" 將boot.wim文件掛載到boot目錄。此時的目錄結構如下圖

添加中文語言支持1

通過 Dism /Get-Packages /Image:"E:Win10PEmediasourcesoot"命令查看winpe中安裝的包

WinPE中需要配置語言支持中文,否則在後面顯示中文的時候會出現亂碼問題。
執行以下命令添加中文支持

添加中文語言包dism /Add-Package /Image:E:Win10PEmediasourcesoot /PackagePath:"C:Program Files (x86)Windows Kits10Assessment and Deployment KitWindows Preinstallation Environmentamd64WinPE_OCszh-cnlp.cab" dism /Add-Package /Image:E:Win10PEmediasourcesoot /PackagePath:"C:Program Files (x86)Windows Kits10Assessment and Deployment KitWindows Preinstallation Environmentamd64WinPE_OCszh-cnWinPE-HTA_zh-cn.cab" 添加中文字體包dism /Add-Package /Image:E:Win10PEmediasourcesoot /PackagePath:"C:Program Files (x86)Windows Kits10Assessment and Deployment KitWindows Preinstallation Environmentamd64WinPE_OCsWinPE-FontSupport-ZH-CN.cab" 區域設置更改為使用中文dism /Set-AllIntl:zh-CN /Image:"E:Win10PEmediasourcesoot"

安裝完成後,查看winpe中安裝的包,語言包已經安裝成功。

修改WinPE啟動後調用程序

默認情況下,Winpeshl.exe 是 Windows PE 啟動時運行的第一個進程。Winpeshl.exe 在System32下搜索名為 Winpeshl.ini 的文件。Winpeshl.ini 可以控制是否將自定義shell程序載入到 Windows PE而不是默認的「命令提示符」窗口。 如果該文件不存在,Winpeshl.exe 會啟動一個執行 Startnet.cmd 腳本的 Cmd.exe 進程。 如果 Winpeshl.ini 存在並且包含要啟動的應用,則會執行這些應用而不是 Cmd.exe2。

ADK中的boot.wim掛載後,在 E:Win10PEmediasourcesootWindowsSystem32 目錄下沒有 Winpeshl.ini 文件,需要手動創建,注意編碼格式為utf8。

Winpeshl.ini的用法可以參考官方文檔:Winpeshl.ini 參考:啟動 WinPE 時啟動應用

因為我只需要載入一個應用,所以在Winpeshl.ini中僅設置[LaunchApp]這一個條目就夠了。CustomSetup.exe是我寫的安裝程序。
Winpeshl.ini 文件內容:

[LaunchApp]AppPath = %SYSTEMDRIVE%Program FilesCustomCustomSetup.exe開發 Windows 安裝程序

Windows PE 包含非常多的功能支持(Windows PE 功能支持),安裝程序的實現主要用到 "Windows 應用程序編程介面(API)" 和 "映像管理和維護(DISM)工具"。

這里的 Windows 安裝程序主要適用於執行自定義安裝,也就是干凈安裝。這個階段包含兩個最基本的操作,一個是配置磁碟(分區和格式化)。另外一個就是將 Windows 的映像復制到磁碟。此外,還可以添加接受License以及一些其他的配置,為用戶提供更豐富的控制介面。

我將在安裝程序中實現這兩個最基本的操作。因為是在 Windows PE 環境下執行,所以採用基本的WIN32編程來實現,不依賴於任何現有的框架。簡單添加幾個基本頁面,具體的代碼就不貼了。主要實現兩個基本功能:對硬碟驅動器進行分區和拷貝、應用系統鏡像。

硬碟分區的實現:
微軟提供了一個 CreatePartitions-UEFI.txt 腳本,它將磁碟分為系統分區(S)、MSR保留分區、Windows分區(W)和恢復分區(R)。為了簡化實現,安裝程序首先查詢用戶硬碟驅動器總大小,根據用戶輸入的C盤和D盤大小,以腳本文件中內容作為模板,生成需要執行的腳本。然後執行腳本,實現硬碟分區和格式化。

鏡像拷貝和應用的實現:
鏡像的拷貝和應用主要利用dism工具實現,同時,還需要設置 Windows 的引導程序以及隱藏恢復分區。

應用映像(install.wim中內容)到 Windows 分區dism /Apply-Image /ImageFile:"$drivesourcesinstall.wim" /Index:1 /ApplyDir:"$windowsDrive"使用bcdboot工具配置系統分區$windowsDriveWindowsSystem32cdboot $windowsDriveWindows /s $systemDrive將 Windows 恢復環境(winre)工具復制到恢復工具分區中mkdir $ /h $.wim $注冊恢復工具的位置,然後使用 Diskpart 隱藏恢復分區$ /Setreimage /Path $ /Target $windowsDriveWindows$ /Info /Target $windowsDriveWindows

這里有一點要注意:因為在winpe環境中,除了『x』是留給winpe虛擬盤的盤符,其他盤符是臨時分配的。所以,以上這些命令中的drive信息都是通過枚舉所有盤符獲得對應的分區。
將兩部分內容封裝到安裝程序中,將開發好的CustomSetup.exe按照Winpeshl.ini文件中的內容到放到指定位置。

封裝ISO

至此,Windows 安裝工具開發基本完成。通過dism /unmount-image /mountdir:"E:Win10PEmediasourcesoot" /commit命令,卸載winpe並提交修改。
利用鏡像編輯工具,將ISO文件中sources目錄下的的boot.wim替換為製作好的boot.wim文件。同時,將ISO中與安裝無關的文件刪除。如下是原始ISO文件中的目錄結構和定製安裝程序之後ISO的目錄結構:

原ISO的文件布局

新ISO的文件布局

定製鏡像的安裝效果

在hyper-v中安裝新的鏡像文件,系統引導進入winpe並調用前面開發的 Windows 安裝程序,以下為安裝過程截圖。
首頁模擬了windows 10 原生的安裝程序,添加了兩個logo。

要求用戶接受安裝許可條款

查詢磁碟總大小,在用戶輸入具體分配磁碟大小後,對磁碟進行分區操作。

添加了一頁擴展頁,這一頁只是個示例,沒有實際操作。

下一步就是將鏡像內容復制到磁碟。

以上的操作完成以後,系統自動進行重啟,然後系統將自動引導進入OOBE過程。

至此,定製 Windows 10 安裝程序基本完成。當然,這里的重寫安裝程序只是一個探索性開始,還有很多的細節需要完善、很多的功能需要支持,如:對於硬體的兼容性檢查,評估新的系統是否適用於當前的硬體,以保證老舊的硬體能夠安裝新版的操作系統,而不是直接就去安裝;對於磁碟操作更加靈活,支持更多分區;增加網路安裝的支持;增加無人值守安裝的支持等等。

本文最想要說明的一個想法是在系統重新引導進入 Windows 之前的安裝階段,我們可以做非常多的事情,在這個過程中可以添加非常多的頁面操作,比如說前面提到的安裝第三方軟體,讓不同安全等級的用戶選擇對應的加密模塊;在系統安裝過程中向用戶提供殺毒軟體的選擇;向用戶提供合規軟體版本列表供用戶選擇...更多的內容大家可以自己想像。

參考Add languages to images: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-add-packages--optional-components-reference?view=windows-11#add-languages-to-images-that-include-optional-componentsWinPE: Create Apps: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-create-apps?view=windows-11

這是水淼·dedeCMS站群文章更新器的試用版本更新的文章,故有此標記(2024-01-28 08:35:23)

② pecmd winpe commande什麼意思

目前,國內winpe系統大都有一個核心軟體支持,這就是pecmd.exe(一個命令行解釋程序)共有70多條。
一。命令的分類:
1、常用命令行命
2、窗口控制項、子程序命令
(1)、系統變數:
CurDir ---- 當前目錄
Desktop ---- 桌面
Favorites ---- 收藏夾
Personal ---- 我的文檔
Programs ---- 程序
SendTo ---- 發送到
Start ---- 開始菜單
Startup ---- 自動運行
QuickLaunch ---- 快速啟動欄
SystemDriver ---- 系統分區
SystemRoot ---- 系統文件夾
(2)、常用控制項:
ComboBox Button Picture CheckBox HotKey PopupMenu Progress BarGroup Static Timer Radio
RADI
3、字元串、字元控制:
LPOSLSTRMSTRRPOSRSTR STRL
4、窗口、子程序標志:
_END_SUB
5、常用命令:

IFEX INIT KILL LINK LIST LOAD LOGO
LOGS MAIN MD5C MENU MESS MOUN NAME NUMK PAGE PATH RAMD REGI RUNS SEND SERV SHEL
SHOW SHUT SITE SUBJ TEAM TEMP TEXT TIPS UPNP

[_SUB]
格式:_SUB <子過程名> 或 _SUB <窗口名稱>,<窗口形狀>,[窗口標題],[窗口事件],[窗口圖標],[窗口類型]
功能:定義子過程或定義一個窗口。
參數:
■子過程名: 字元串。
■窗口名稱: 字元串,窗口名稱應是唯一的,不能與其它控制項名稱或環境變數名稱同名。
■窗口標題: 文字。
■窗口形狀: 窗口位置和大小,格式為<L左T上W寬H高>,左上寬高均為數值,省略"左上"時窗口居中。
■窗口事件: 關閉窗口時執行的命令,必須是 PECMD.EXE 支持的命令。
■窗口圖標: 窗口標題欄和任務欄的圖標,格式為<圖標文件名#ID>
■窗口類型: [-][#][數值],"-"為無標題欄,"#"為無邊框窗口,數值為透明度,數值超99為隱藏窗口。
示例:
◆_SUB DoLoop
◆_SUB Windows1,W360H440,PECMD功能演示,EXEC $使用說明.TXT,%IconFile%#19,20
備註:
※子過程名或窗口名的第1個字元不能是"$",命令關鍵詞_SUB與子過程名或窗口名之間必須是1個空格。
※若有多個_SUB命令,這些命令定義的名稱不能重復,不能近似,也不能用這些名稱設置成環境變數。
※本命令與_END命令必須成對出現,均不能在命令行中使用,其它參照_END命令、CALL命令的說明。
※要設置窗口的標題,可以使用 "ENVI @窗口名稱=窗口標題" 來設置 ,參照 ENVI 命令的說明。

[_END]
格式:_END
功能:結束子過程或結束窗口定義。
參數:
■無
示例:
◆_END
備註:
※定義子過程的 _SUB 命令和 _END 命令必須單獨一行。即:FIND、IFEX、TEAM 命令內不能定義子過程。大白菜官網
※_SUB 與 _END 之間的命令(即子過程)只被對應的 CALL 命令執行,主流程會跳過這些命令。
※ _END 命令必須與 _SUB 命令一一匹配,且子過程內不能再定義子過程。
※子過程放在配置文件的任意位置都可以被同一配置文件中的 CALL 命令調用,建議放在文件開始處。
※該命令及 _SUB 命令只能在配置文件中使用,不能在命令行下使用。

[BROW]
格式:BROW <變數名>,[[*|&]初始路徑],[提示文字],[擴展名]
功能:瀏覽磁碟文件和目錄。
參數:
■變數名: 用於保存瀏覽結果的變數名。
■初始路徑: 為瀏覽窗口默認選中的文件或目錄,省略該參數時定位到系統默認的路徑;前導符"*"為瀏覽目錄對話框,前導符"&"為保存文件對話框,省略前導符為打開文件對話框。
■提示文字: 可以省略,省略時默認的文字為系統默認的文字提示。
■擴展名: 瀏覽指定擴展名的文件,省略表示所有文件。
示例:
◆BROW Boot_Ini,C:\Windiws\BOOT.INI,請選擇一個文件,INI
◆BROW Tag,*C:\Windiws,請選擇一個目錄
備註:
※本命令會打開一個文件目錄瀏覽對話窗,讓用戶瀏覽磁碟文件目錄,用戶可選擇某個文件或目錄。
※選擇結果將保存在指定的進程環境變數中。示例2可通過環境變數 %Tag% 來引用。
※BROW命令必須在INIT命令之後或在桌面執行。

[CALC]
格式:CALC [#]<變數0><=><變數1><運算符><變數2>
功能:將"變數1"和"變數2"按"運算符"來運算,把運算結果保存在"變數0"中。
參數:
■前導"#"表示所有變數按 int 型數據來處理,省略該前導表示所有變數按double型數據來處理;
■"變數1"和"變數2"可以是具體數值,也可以是已存在的變數;
■"運算符"目前只支持"+"、"-"、"*"、"/"四種運算。
示例:
◆加法運算: CALC #Sum = 128 + 32 或 CALC Sum = %Datum1% + %Datum2%
◆乘法運算: CALC #Result = 128 * 64 或 CALC Result = %Datum1% * %Datum2%
備註:
※"變數1"或"變數2"可以用 ENVI 命令來直接設置(賦值),也可以是 CALC 命令運算賦值的結果;
※"變數1"或"變數2"沒有賦值時,當數值"0"處理;要完成復雜的四則運算可用一系列 CACL 命令完成;
※CACL命令按 double 型變數來處理數據時,最多保留4位小數,要比較數值大小可用IFEX命令來判斷。

③ 請教winpe環境如何命令重啟系統

wpeutil reboot
wpeutil是一個在winpe會話期間運行命令的一個工具,後面可以加各種命令。具體命令代碼可以查看命令的幫助,或者在網上搜一下。

閱讀全文

與pecmd命令相關的資料

熱點內容
聲音識別演算法 瀏覽:674
文件夾是存放文件的邏輯載體 瀏覽:110
伺服器夯住是什麼意思 瀏覽:988
下游戲安卓用什麼軟體 瀏覽:670
撫順程序員 瀏覽:924
伺服器windows怎麼更新 瀏覽:735
牧師能用命令方塊嗎 瀏覽:628
app改名意味著什麼 瀏覽:472
內部審計編譯工作 瀏覽:717
煤氣APP是什麼名字 瀏覽:76
安卓手機怎麼清空後台 瀏覽:228
先解壓還先壓縮 瀏覽:64
安卓機怎麼檢測手機 瀏覽:217
程序員出席活動 瀏覽:107
程序員送給我的禮物 瀏覽:777
php按拼音排序 瀏覽:650
紅警1重製版資源源碼 瀏覽:459
騰訊雲代理伺服器代金券 瀏覽:994
2015版中國葯典pdf 瀏覽:124
pdf一張列印多頁 瀏覽:763