导航:首页 > 程序命令 > 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