无忧启动论坛

标题: 求wpeinit.exe的功能说明、命令行参数说明及示例。 [打印本页]

作者: lxl1638    时间: 2009-6-20 16:38
标题: 求wpeinit.exe的功能说明、命令行参数说明及示例。
如题,在WinPE 2.0以后的系统中有个wpeinit.exe,这是微软自己的文件,
本人所发的用PECMD启动PE2.1测试中没有用到这个文件,想知道其功能。
作者: yj0176    时间: 2009-6-20 16:41
我也想知道这个文件有什么用?
作者: lelexiong    时间: 2009-6-20 16:44
http://technet.microsoft.com/zh-cn/library/cc748941(WS.10).aspx
作者: 小咕咚    时间: 2009-6-20 16:46
Windows 7官方文档中跟Vista一样,只有下列这几句:

Vista中:
Wpeinit 命令行选项Wpeinit 是命令行工具,它在每次启动 Windows PE 时,对其进行初始化。当 Windows PE 启动时,Winpeshl.exe 执行启动 Wpeinit.exe 的 Startnet.cmd。具体地说,Wpeinit.exe 安装 PnP 设备、处理 Unattend.xml 设置并加载网络资源。

Wpeinit 替换以前 Factory.exe -winpe 中支持的初始化功能。Wpeinit 将日志消息输出到 c:\Windows\system32\wpeinit.log。

Wpeinit 命令行选项您可以从 Windows PE 的“命令提示符”窗口中手动执行 Wpeinit 以处理自定义应答文件。Wpeinit.exe 接受一个名为 unattend 的选项。您可以采用四种方式之一指定参数。


wpeinit –unattend=<path\unattend>
wpeinit –unattend:<path\unattend>
wpeinit /unattend=<path\unattend>
wpeinit /unattend:<path\unattend>


有关如何创建应答文件 (Unattend.xml) 的详细信息,请参阅无人参与的 Windows 安装参考。
作者: lqcai    时间: 2009-6-20 16:49
启动初始化的实际上是 winpeshl.exe

此外还有 wpeutil.exe ,winpe2.x 关机就是这个,
作者: 小咕咚    时间: 2009-6-20 16:55
楼主的PECMD-V3.3.501.293实际上就是取代winpeshl.exe。至少我刚在Windows PE3在测试就可以。
不加载Wpeinit可以提高启动速度。
国外的win7peldr.exe以及6月19日新出的7peldr.exe都加载了Wpeinit,因此启动好慢。
作者: mapeimapei    时间: 2009-6-20 16:56
http://bbs.wuyou.net/forum.php?m ... ;highlight=winpe2.0

不知道winpe3.0中对wpeutil.exe参数有没有增加,不过那个事英文版的。。
作者: mapeimapei    时间: 2009-6-20 16:57
奉上英文版的winpe3.0帮助文件。。

[ 本帖最后由 mapeimapei 于 2009-6-20 20:03 编辑 ]

WinPE3.0.rar

341.18 KB, 下载次数: 219, 下载积分: 无忧币 -2


作者: lqcai    时间: 2009-6-20 17:27
原帖由 mapeimapei 于 2009-6-20 16:56 发表
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=103918&highlight=winpe2.0

不知道winpe3.0中对wpeutil.exe参数有没有增加,不过那个事英文版的。。

增加了两个 Saveprofile  
WaitForRemoveableStorage

作者: lqcai    时间: 2009-6-20 17:41
原帖由 小咕咚 于 2009-6-20 16:55 发表
楼主的PECMD-V3.3.501.293实际上就是取代winpeshl.exe。至少我刚在Windows PE3在测试就可以。
不加载Wpeinit可以提高启动速度。
国外的win7peldr.exe以及6月19日新出的7peldr.exe都加载了Wpeinit,因此启动好慢。

pecmd 实际上并没有取代winpeshl.exe, 不管是win7peldr.exe 还是pecmd 都必需添加进winpeshl.ini,实际上仍然是winpeshl.exe 调用 pecmd 或win7peldr,
批处理同样可以实现,只是批处理写起来很麻烦,没有 pecmd 易上手和人性化,如在 winpesh.ini 添加一行 "cmd.exe /c autorun.cmd" ,必须用引号括起来,否则不会执行,如果直接使用命令行,参数有空格的,也必须用引号括起来, 如添加
rundll32.exe, "setupapi.dll,InstallHinfSection DefaultInstall 132 .\wimfltr.inf"
regedit.exe, "/s x:\tools\7-zip\7-Zip.reg"

[ 本帖最后由 lqcai 于 2009-6-20 17:47 编辑 ]
作者: lxl1638    时间: 2009-6-20 18:39
原帖由 lqcai 于 2009-6-20 17:41 发表

pecmd 实际上并没有取代winpeshl.exe, 不管是win7peldr.exe 还是pecmd 都必需添加进winpeshl.ini,实际上仍然是winpeshl.exe 调用 pecmd 或win7peldr,
批处理同样可以实现,只是批处理写起来很麻烦,没有 pe ...


本人并没有将PECMD.EXE加进winpeshl.ini,且将winpeshl.EXE和winpeshl.ini从BOOT.WIM删掉了,说明PECMD.EXE也以取代winpeshl.EXE的,但出现在一些问题。

先将本人遇到的问题说明一下:
用PECMD.EXE代替winpeshl.EXE后,在注册表中设置的ProFiles无效,不管如何设置,启动后ProFiles都是在:
X:\Windows\System32\config\SystemProFiles目录下。而用winpeshl.EXE初始化的PE,ProFiles在X:\User目录下,
虽然不影响使用,但与老外的PE不同,有点另起炉灶的感觉,且这样的目录名太长了。难道在NT6.X系统中存在
"系统用户"和"系统"的区别,PECMD.EXE只初始化到"系统",没有初始化到"系统用户"?
本人知道,NT5.x系统的UserProFiles可以通过注册表来设置,在PECMD初始化以前的WinPE就是这样,但为什么
NT6.x系统的UserProFiles在注册表设置无效?应如何设置ProFiles?NT6.x系统有没有提供这样的内核函数?

另,你所说的
增加了两个 Saveprofile  
WaitForRemoveableStorage
是什么,能否详细说明一下,最好给些资料,最好是VC++语法的资料,其它资料本人看起来很费时,也可以省去本人找资料的时间。

[ 本帖最后由 lxl1638 于 2009-6-21 13:00 编辑 ]
作者: 小咕咚    时间: 2009-6-21 09:45
同意楼主的意见,本人正是将winpeshl.ini及winpeshl.exe删除了,只采用pecmd测试的,并将注册表配置单元system的setup键下的CmdLine改为“PECMD.EXE MAIN %SystemRoot%\SYSTEM32\PECMD.INI”,pecmd.ini配置为:
EXEC !%SystemRoot%\SYSTEM32\autorun.cmd
SHEL %SystemRoot%\Explorer.EXE
作者: 小咕咚    时间: 2009-6-21 09:48
采用PECMD后系统变量为:
ALLUSERSPROFILE=X:\ProgramData
CommonProgramFiles=X:\Program Files\Common Files
COMPUTERNAME=MINWINPC
ComSpec=X:\windows\system32\cmd.exe
Desktop=X:\windows\system32\config\systemprofile\Desktop
Favorites=X:\windows\system32\config\systemprofile\Favorites
FP_NO_HOST_CHECK=NO
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=X:\windows\system32;X:\windows;X:\windows\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
Personal=X:\windows\system32\config\systemprofile\Documents
PROCESSOR_ARCHITECTURE=x86
ProgramData=X:\ProgramData
ProgramFiles=X:\Program Files
Programs=X:\windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
PROMPT=$P$G
PUBLIC=X:\Users\Public
QuickLaunch=X:\windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
SEE_MASK_NOZONECHECKS=1
SendTo=X:\windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Windows\SendTo
StartMenu=X:\windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Windows\Start Menu
Startup=X:\windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
SystemDrive=X:
SystemRoot=X:\windows
TEMP=X:\windows\TEMP
TMP=X:\windows\TEMP
USERNAME=SYSTEM
USERPROFILE=X:\windows\system32\config\systemprofile
windir=X:\windows

未采用PECMD前系统变量为:
ALLUSERSPROFILE=X:\ProgramData
CommonProgramFiles=X:\$windows.~bt\Program Files\Common Files
COMPUTERNAME=MINWINPC
ComSpec=X:\windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=X:\windows\system32;X:\windows;X:\windows\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0209
ProgramData=X:\ProgramData
ProgramFiles=X:\$windows.~bt\Program Files
PROMPT=$P$G
PUBLIC=X:\Users\Public
SEE_MASK_NOZONECHECKS=1
SystemDrive=X:
SystemRoot=X:\windows
TEMP=X:\windows\TEMP
TMP=X:\windows\TEMP
USERNAME=SYSTEM
USERPROFILE=X:\windows\system32\config\systemprofile
windir=X:\windows
作者: lxl1638    时间: 2009-6-21 13:01
原帖由 小咕咚 于 2009-6-21 09:48 发表
采用PECMD后系统变量为:
ALLUSERSPROFILE=X:\ProgramData
CommonProgramFiles=X:\Program Files\Common Files
COMPUTERNAME=MINWINPC
ComSpec=X:\windows\system32\cmd.exe
Desktop=X:\windows\system32\ ...


问题在上面说了,可以使用,好象没有影响。
如果能找到解决的方法,本人尽可能完善。

另问,你的PE3.0是否已加入了微软的资源管理器了?目录的BOOT.WIM有多大?

[ 本帖最后由 lxl1638 于 2009-6-21 13:03 编辑 ]
作者: 小咕咚    时间: 2009-6-21 14:26
刚发现问题:
同一个制作好的Boot.wim采用您的pecmd和win7peldr两种方式启动,前者启动后无法识别再插入的移动设备。尽管后者只能在“磁盘管理器”中打开移动设备。
PE3.0已加入了微软的资源管理器了,目录的BOOT.WIM有243MB左右。
另外用pecmd字体好象要注册,否则记事本打开无法正常显示中文,尽管已经预先处理过注册表配置单元。

[ 本帖最后由 小咕咚 于 2009-6-21 14:29 编辑 ]
作者: lxl1638    时间: 2009-6-21 15:51
原帖由 小咕咚 于 2009-6-21 14:26 发表
刚发现问题:
同一个制作好的Boot.wim采用您的pecmd和win7peldr两种方式启动,前者启动后无法识别再插入的移动设备。尽管后者只能在“磁盘管理器”中打开移动设备。
PE3.0已加入了微软的资源管理器了,目录的 ...


情况是这样的,WinPEShl.EXE和win7peldr都调用的WPEINIT.EXE来初始化USB设备,它们的调用方式是阻塞方式,所以老外那些PE启动都很慢,慢就慢在WPEInit.EXE要很长的时间才执行完成。
用PECMD.EXE启动PE理论上也可以调用WPEINIT.EXE来初始化USB设备,WPEINIT.EXE的执行可以通过RUNS命令放到启动组来执行,这样PE启动的前期(出现桌面的时间)就会大为缩短,在启动到桌面后等到后台的WPEINIT.EXE执行完毕就可以使用USB设备了。也可以将WPEINIT.EXE放到PECMD.INI中通过EXEC命令来执行(不要加"="),这样启动到桌面后一定时间也可以使用USB设备了。

你明白关键的问题吧?USB是通过WPEINIT.EXE来初始化的,执行过WPEINIT.EXE就有那效果了。WPEINIT.EXE什么时候执行,如何执行在PECMD.INI中可以随意设置,不象WinPEShl.EXE和win7peldr那样一定要用阻塞方式来执行,这样就可以大大缩短启动时间了。

另,如果没有USB的符盘,可以用PECMD的SHOW命令来分配,PECMD.EXE的特色是速度和自由,不象老外的工具,只有一条路让你走。

还有WinPEShl.EXE和win7peldr都内置了字体注册功能,所以用WinPEShl.EXE和win7peldr可以不用注册字体。

[ 本帖最后由 lxl1638 于 2009-6-21 16:02 编辑 ]
作者: lqcai    时间: 2009-6-21 17:12
标题: 回复 #11 lxl1638 的帖子
呵呵,这个我也不大清楚,winpe3.0的帮助文档目前只有英文的,我只能借助金山词霸才能看一个大概.winpe3.0我是浅尝即止,英文看不太懂。
作者: lqcai    时间: 2009-6-21 17:59
没太弄明白 15楼和16楼提到的识别再插入的 USB 设备问题,

在我使用 winpe2.x 的过程中,在没有运行 wpeinit.exe 初始化winpe 和启动网络支持的情况下没有出现过不能识别 USB 移动设备的问题呀
作者: lxl1638    时间: 2009-6-21 19:24
原帖由 lqcai 于 2009-6-21 17:59 发表
没太弄明白 15楼和16楼提到的识别再插入的 USB 设备问题,

在我使用 winpe2.x 的过程中,在没有运行 wpeinit.exe 初始化winpe 和启动网络支持的情况下没有出现过不能识别 USB 移动设备的问题呀


老外的PE无需你手动执行WPEINIT.EXE的,启动过程中已自动执行了它。这正是老外这些PE启动慢的原因。
就如同正常系统,无需你手动加载资源管理器一样,因为是自动加载了。

另,PE1.0也存在这种情况,有些USB设备很容易被识别,而一些USB设置要手动加载驱动才能被识别。可能你的USB就是前者的情况。
很早以前,如红叶盘V2X版使用的"激活USB工具"就象这个WPEINIT.EXE类似。

[ 本帖最后由 lxl1638 于 2009-6-21 19:31 编辑 ]
作者: lqcai    时间: 2009-6-21 19:34
原帖由 lxl1638 于 2009-6-21 19:24 发表


老外的PE无需你手动执行WPEINIT.EXE的,启动过程中已自动执行了它。这正是老外这些PE启动慢的原因。
就如同正常系统,无需你手动加载资源管理器一样,因为是自动加载了。


我用的是我自己DIY的winpe,最近我嫌启动运行 wpeinit 太慢,用MSDaRT工具的 netstart ,启动时需要人工干预,嫌麻烦所以现在启动winpe时是既不运行wpeinit 也不运行netstart 的.但从没出现过不能识别 usb 设备的情况下, 我是基于 waik1.1 制作 winpe2.1,参考 winbuilder 集成 Explorer + IE + MMC
作者: lxl1638    时间: 2009-6-21 19:52
原帖由 lqcai 于 2009-6-21 19:34 发表


我用的是我自己DIY的winpe,最近我嫌启动运行 wpeinit 太慢,用MSDaRT工具的 netstart ,启动时需要人工干预,嫌麻烦所以现在启动winpe时是既不运行wpeinit 也不运行netstart 的.但从没出现过不能识别 usb 设备 ...


可能是你的PE没有遇到这样的USB,希望放出来给大家测试一下,让大家从PE1.x转到PE3.x的研究。
PE1.x也出现过不能识别USB的现象,有不少人说到磁盘管理器中看到U盘是无法识别的格式,但另一些U盘插上去又可以被识别。
微软的磁盘管理与MMC组件和网络组件都有关,如果这两个组件存在问题,磁盘管理工具根本无法启动。
作者: lqcai    时间: 2009-6-22 13:41
原帖由 lxl1638 于 2009-6-21 19:52 发表


可能是你的PE没有遇到这样的USB,希望放出来给大家测试一下,让大家从PE1.x转到PE3.x的研究。
PE1.x也出现过不能识别USB的现象,有不少人说到磁盘管理器中看到U盘是无法识别的格式,但另一些U盘插上去又可 ...

基于waik1.1制作的winpe2.1,启动时默认不运行wpeinit.
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=144701&extra=page%3D1
作者: JCDN    时间: 2016-8-8 20:47
学习pe制作中......基础资料




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3