无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: lxl1638
打印 上一主题 下一主题

[PECMD X86 & X64 V4.0.2011.0501版] WinPE命令解释程序 & WinPE登录命令。

    [复制链接]
2971#
发表于 2010-6-8 21:04:21 | 只看该作者
原帖由 网虫2008 于 2010-6-8 20:19 发表
jeremy (卯金刀客)  网友测试结果

——————————————————————————
把 PECMD.INI 中的
SHOW -1:-1
改为
EXEC =!%WinDir%\SYSTEM32\SHOWDRIVE.EXE

再把这SHOWDRIVE.EXE扔到SYST ...



SHOW -1:-1
很有用的命令.但机器多样.建议不要在启动时自动加载...易出错.也影响启动速度.

为插入新盘的识别.加条命令.手动下不难.

LINK %Programs%\附件\显示隐藏分区,%WS%\pecmd.exe,SHOW -1:-1,show.ico
回复

使用道具 举报

2972#
发表于 2010-6-8 21:25:04 | 只看该作者
原帖由 66369 于 2010-6-8 21:04 发表



SHOW -1:-1
很有用的命令.但机器多样.建议不要在启动时自动加载...易出错.也影响启动速度.

为插入新盘的识别.加条命令.手动下不难.

LINK %Programs%\附件\显示隐藏分区,%WS%\pecmd.exe,SHOW -1:-1 ...


即然有了 SHOW 参数,再留着SHOWDRIVE.EXE就没必要了。虽然现在新版PECMD的SHOW无法完全替代SHOWDRIVE.EXE,但那只是时间问题,,,也许明天PECMD.EXE就把这个问题解决了,我这里无此问题无法测试,要不然,在SHOW -1:-1后面加个等待几秒的时间可能问题会排除,

我的PE中,已经把手动设置(ALT+R)中的\显示隐藏分区快捷参数设置为SHOW -1:-1

还好,此问题只是少数特例,SHOWDRIVE.EXE尽可能的不准备重新放回PE里,,,,再等等PECMD.EXE再次更新

另:还有个地方想不明白,,PECMD.INI中,就算没有SHOW -1:-1,那只不过是启动后无法显示隐藏分区,怎么会影响到正常的可显示分区呢?  ,,可事实确实是这个参数原因无法进入桌面!!


个人认为PE还是设置为开机自动显示隐藏分区为好,为了保护数据和其他原因,正常系统下隐藏当然无可非议,但既然用PE启动以维护为目的,显示应该较为合理,也避免了将外置.WIM文件安装到隐藏分区时无法正常调用的情况。

[ 本帖最后由 网虫2008 于 2010-6-8 21:32 编辑 ]
回复

使用道具 举报

2973#
发表于 2010-6-8 21:41:03 | 只看该作者
原帖由 66369 于 2010-6-8 21:04 发表



SHOW -1:-1
很有用的命令.但机器多样.建议不要在启动时自动加载...易出错.也影响启动速度.

为插入新盘的识别.加条命令.手动下不难.

LINK %Programs%\附件\显示隐藏分区,%WS%\pecmd.exe,SHOW -1:-1 ...


下版PECMD如没有这方面的更正,我就启动过程序中加个说明,把默认显示隐藏分区改成 N秒内按CTRL 来选择是否显示。。。。。呵呵,这也算是个被逼出来的“人性化”功能吧。。。。在不了进入桌面后,手动显示外置文件的隐藏分区,再点桌面快捷加载外置

[ 本帖最后由 网虫2008 于 2010-6-8 21:42 编辑 ]
回复

使用道具 举报

2974#
 楼主| 发表于 2010-6-8 22:04:19 | 只看该作者
原帖由 网虫2008 于 2010-6-8 21:41 发表


下版PECMD如没有这方面的更正,我就启动过程序中加个说明,把默认显示隐藏分区改成 N秒内按CTRL 来选择是否显示。。。。。呵呵,这也算是个被逼出来的“人性化”功能吧。。。。在不了进入桌面后,手动显示外 ...


SHOW命令本有只在有限的几台机子中试验。

或者进了桌面等一会再 SHOW,本人的主张是不主动显示隐藏分区,前面已说了,用户将一个分区隐藏必然有他的目的,显示出来了万一操作有误就会损坏隐藏分区的数据。
可以放在进桌面后再SHOW,或加个SHOW的快捷方式。

能将一个分区隐藏的用户,他要SHOW出这样的隐藏分区即使没有PECMD、SHOWDRIVE这样的工具,他一样有办法的,主动SHOW不好。
回复

使用道具 举报

2975#
发表于 2010-6-8 22:37:58 | 只看该作者
原帖由 lxl1638 于 2010-6-8 22:04 发表


SHOW命令本有只在有限的几台机子中试验。

或者进了桌面等一会再 SHOW,本人的主张是不主动显示隐藏分区,前面已说了,用户将一个分区隐藏必然有他的目的,显示出来了万一操作有误就会损坏隐藏分区的数据 ...



可有些时候,程序没有内置,且外置.WIM文件放到隐藏分区时,会加载不到外置,我的PE是分二极内核的,,这事儿就有点不好办了。

看来你不准备对问题深研了,,那下版我暂时先把SHOWDRIVE.EXE给弄回去,再加个“3 秒内按住 Ctrl 键将显示隐藏分区”,等你的此功能完善再说 -_-
回复

使用道具 举报

2976#
发表于 2010-6-8 23:25:29 | 只看该作者
我在XP下用PECMD挂载WIM文件老出现内存错误,你们遇到过这种情况吗?

另3.6.0930.309.X86U在我的PE中,DEVI命令会解压全部文件,这是怎么回事?

[ 本帖最后由 shoulea 于 2010-6-8 23:29 编辑 ]
回复

使用道具 举报

2977#
发表于 2010-6-9 00:58:55 | 只看该作者
好东西,去抢把  。。。
回复

使用道具 举报

2978#
发表于 2010-6-9 08:15:58 | 只看该作者
報錯:
2.cmd內容是

PECMD LOAD 2.INI
----------------------------

2.ini內容(安裝網卡的片段)

UPNP -c p -i MS_TCPIP
UPNP -c c -i MS_MSCLIENT
UPNP -v -c s -i MS_SERVER
UPNP -c p -i MS_L2TP
UPNP -c p -i MS_PPTP
UPNP -c p -i MS_PPPOE
UPNP -c p -i MS_WANARP
UPNP -c p -i MS_NDISWAN

-----------------------------

執行2.cmd會出現很多個黑色cmd視窗,或直接在cmd下pecmd load 2.in都會出現多個cmd黑色視窗,0607版的pecmd才有這情形,是不是upnp指令有修改動到,元宵版及之前的版本都很安靜無CMD視窗的

[ 本帖最后由 bahmo 于 2010-6-9 18:05 编辑 ]
回复

使用道具 举报

2979#
发表于 2010-6-9 09:59:25 | 只看该作者
XP下可以使用不?很白
回复

使用道具 举报

2980#
 楼主| 发表于 2010-6-9 12:55:42 | 只看该作者
原帖由 shoulea 于 2010-6-8 23:25 发表
我在XP下用PECMD挂载WIM文件老出现内存错误,你们遇到过这种情况吗?

另3.6.0930.309.X86U在我的PE中,DEVI命令会解压全部文件,这是怎么回事?


MOUN [!][Wim文件名],<Mount目标目录>,[映像ID],[WimFltr临时工作目录]
1、没有安装 WimFltr 或 WimMount 驱动?
2、WIM驱动版本太旧?早期有些WIM驱动挂载以FAT为源的WIM会出错,后期的WIM驱动虽然解决了源为FAT的WIM出现的问题,但要求挂到NTFS分区的空目录,且可写挂载时临时工作目录要有足够空间。
3、其它系统问题,如一些防毒杀毒工具与WIM冲突。
本人测试 MOUN 命令在 XP、2003中均无问题。



DEVI 前导 "$": 表示解压缩驱动文件后安装驱动,否则只解压;INF文件不管是否有前导"$"都无条件安装;

[ 本帖最后由 lxl1638 于 2010-6-9 13:11 编辑 ]

未命名.PNG (47.75 KB, 下载次数: 149)

未命名.PNG

未命名1.PNG (70.04 KB, 下载次数: 151)

未命名1.PNG
回复

使用道具 举报

2981#
发表于 2010-6-9 14:14:01 | 只看该作者
此贴本是PE区必须的
置顶是顺理成章

也方便查找
回复

使用道具 举报

2982#
发表于 2010-6-10 03:31:36 | 只看该作者
原帖由 lxl1638 于 2010-6-9 12:55 发表

MOUN [!][Wim文件名],,[映像ID],[WimFltr临时工作目录]
1、没有安装 WimFltr 或 WimMount 驱动?
2、WIM驱动版本太旧?早期有些WIM驱动挂载以FAT为源的WIM会出错,后期的WIM驱动虽然解决了源为FAT的WIM出 ...


先谢谢你的回复。

对于第一个问题感觉都不是引发错误的原因。我在XP中用的驱动是从现行PE中提取出来的,不存在没有安装或太旧的问题,我从来不用杀毒软件,因此3也不成立。既然你在其他系统上试过,我想可能的原因有:

1、FltMgr相关文件有冲突,因为我发现我XP中的和PE中的版本不一样,而且换成PE的后WIM不能正确工作(可以在安装驱动后挂载一次,但重启一次系统后服务WimFltr服务自动关闭,每次都要手动用sc命令启动之);

2、有可能是我的本本身有问题,因为去年有一段时间老出现内存错误,重装系统都不行,因此怀疑是硬件出了问题,但后来又莫名其妙地好了。

总之出错时给的提示是内存访问非法,有时的提示还是企图反引用空指针。

对于第二个问题最先发现时在是我修改HHH333的PE。当时修改了很多东西,当开启声显网驱动时,发现X盘暴增约60M,感觉十分奇怪,因为如果PECMD仅仅解压需要的驱动的话,应该不会增加这么多。初怀疑是自己的修改有问题,于是用未修改的H3PE091209.iso启动系统进入PE,开启驱动发现仍增大了这么多。

并不存在你说的命令的使用的问题,我查看了命令,如下面是从H3PE091209.iso复制出来的:

IF /I "%1"=="WLAN" ( PECMD.EXE DEVI DRIVERS_NET_WIRELESS.CAB ) ELSE PECMD.EXE DEVI DRIVERS_NET.CAB
START /Wait ..\InfCacheBuild.exe %SystemRoot%
PECMD.EXE UPNP -pnp


为了慎重起见,刚才我用HHH333的PE又试了一次。我用RAR解压DRIVERS_NET.CAB,用CMD的FOR命令提取到230个*.sys文件名,然后用CMD的FOR+IF EXIST对解压到Drivers中的文件进行测试,发现仅有64个*.sys文件没有被解压。

因此原来说的解压全部文件并不成立,但PECMD似乎解压的文件过多了,因为我参考H3PE里面从XP提取驱动的做法,用bartpe输出的device id在INF文件中进行搜索,仅解压不到10个*.sys文件(准确说是8个),网卡驱动也能正常工作。

所以我觉得DEVI命令是否可以修改一下搜索算法,因为现在的做法解压了太多的不必要的文件。

附件是用JavaScript写成的搜索程序,是开学那段时间写的,由于这段时间又开始弄PE才想到到这来反映这个问题。

finddrivers.rar

2.47 KB, 下载次数: 33, 下载积分: 无忧币 -2

回复

使用道具 举报

2983#
发表于 2010-6-10 08:25:41 | 只看该作者

回复 #3022 shoulea 的帖子

X盘暴增约60M.

特用水PE最新版测试.没有此情况.怪.
回复

使用道具 举报

2984#
发表于 2010-6-10 11:47:25 | 只看该作者
当时修改了很多东西,当开启声显网驱动时,发现X盘暴增约60M

网络组件和声音组件就要25M多点

如果加上IE就要35M了

如果本来MMC外置,那开启声显网驱动时,X盘暴增60M只会多不会少,这是正常的

我整的PE开启声显网驱动时,光MMC组件+网络组件+声音组件+DX9+IE就有83.5M,还没算声网显的驱动呢
回复

使用道具 举报

2985#
发表于 2010-6-10 13:08:13 | 只看该作者
X盘空间增大的主要来源,在我这就是DRIVERS_*.CAB。

我把大部分其他DLL、EXE文件都搞到WIM文件中了,不必全部解压到X盘。用我那finddrivers.js搜索驱动,同时开MMC/IE/WMPlayer/DirectX/声显网驱动只占X盘22M

事实表明原因就是PECMD的DEVI命令在我这解压了过多不必要的文件,8个*.sys文件对160多个,相差了20倍,X盘空间被白白浪费了。

希望会弄的把解压到Drivers目录的*.sys文件与DRIVERS_*.CAB中对比一下,看到底是什么原因。

[ 本帖最后由 shoulea 于 2010-6-10 13:09 编辑 ]
回复

使用道具 举报

2986#
发表于 2010-6-10 16:09:42 | 只看该作者
  1. //test.ini
  2. logs test.log
  3. envi sStr=ABCDEF
  4. writ test.txt,+0,%sStr%
  5. logs
复制代码

//test.log
logs test.log 操作成功完成。
envi sStr=ABCDEF 操作成功完成。
writ test.txt,+0,ABCDEF 操作成功完成。
LOGS  操作成功完成。

//test.txt
%sStr%
回复

使用道具 举报

2987#
发表于 2010-6-10 17:08:19 | 只看该作者
麻烦老九帮忙分析下面的INI执行日志(片段):
EXEC !REG LOAD HKLM\INJSRS C:\Windows\system32\config\system 操作成功完成。
REGI HKLM\INJSRS\ControlSet001\Control\CriticalDeviceDatabase\PCI#VEN_104B&DEV_1040\Service=vmscsi 函数不正确。
REGI HKLM\INJSRS\ControlSet001\Services\vmscsi\ErrorControl=#1 函数不正确。
REGI HKLM\INJSRS\ControlSet001\Services\vmscsi\Group=SCSI miniport 函数不正确。
REGI HKLM\INJSRS\ControlSet001\Services\vmscsi\Start=#0 函数不正确。
REGI HKLM\INJSRS\ControlSet001\Services\vmscsi\Type=#1 函数不正确。
REGI HKLM\INJSRS\ControlSet001\Services\vmscsi\ImagePath=system32\drivers\vmscsi.sys 函数不正确。
LOGS  操作成功完成。
第一条REGI命令,在命令行下直接PECMD,提示错误:“系统找不到指定路径”;
其他的REGI命令,命令行下执行正确;不知为何在INI中却“函数不正确”。

[ 本帖最后由 canmao 于 2010-6-10 17:09 编辑 ]
回复

使用道具 举报

2988#
 楼主| 发表于 2010-6-10 17:45:49 | 只看该作者
原帖由 canmao 于 2010-6-10 17:08 发表
麻烦老九帮忙分析下面的INI执行日志(片段):第一条REGI命令,在命令行下直接PECMD,提示错误:“系统找不到指定路径”;
其他的REGI命令,命令行下执行正确;不知为何在INI中却“函数不正确”。


一一调试,可能是权限有关
回复

使用道具 举报

2989#
 楼主| 发表于 2010-6-10 20:24:49 | 只看该作者
原帖由 shoulea 于 2010-6-10 03:31 发表


先谢谢你的回复。

对于第一个问题感觉都不是引发错误的原因。我在XP中用的驱动是从现行PE中提取出来的,不存在没有安装或太旧的问题,我从来不用杀毒软件,因此3也不成立。既然你在其他系统上试过,我想 ...


你说的问题的确存在,从PECMD支持Win7PE开始就存在这个问题了。
现在查源码,回想当时的情形,是DEVI命令加入对Win7PE支持后忘记处理NT5.x WinPE中INF文件与硬盘ID的匹配问题。
还有一个问题,是DEVI命令一直没有解决的,你看看下面的操作能不能从注册表中设置?
http://www.drivergenius.com/1/0/21.htm
回复

使用道具 举报

2990#
发表于 2010-6-10 21:32:47 | 只看该作者

WinPEShl有什么优势?

老九的新版pecmd使用了WinPEShl,究竟WinPEShl有什么优势?
回复

使用道具 举报

2991#
发表于 2010-6-10 23:16:56 | 只看该作者
原帖由 lxl1638 于 2010-6-10 20:24 发表


你说的问题的确存在,从PECMD支持Win7PE开始就存在这个问题了。
现在查源码,回想当时的情形,是DEVI命令加入对Win7PE支持后忘记处理NT5.x WinPE中INF文件与硬盘ID的匹配问题。
还有一个问题,是DEVI命令 ...

Microsoft 技術支援
http://support.microsoft.com/kb/298503/zh-cn
回复

使用道具 举报

2992#
 楼主| 发表于 2010-6-10 23:47:53 | 只看该作者
原帖由 ls_qiang 于 2010-6-10 21:32 发表
老九的新版pecmd使用了WinPEShl,究竟WinPEShl有什么优势?


WinPEShl.EXE 是一个控制台工具,是为类似 PP 大这样的 0PE 而制作的工具,0PE 由于极度精简,在 CmdLine 无法启动 Win32GUI 模式的 PECMD.EXE,只能启动控制台工具 WinPEShl;通过 WinPEShl 执行相关命令向 0PE 的内核复制文件,将一级内核扩展成能启动 PECMD.EXE 的二级内核,之后再执行 PECMD 的登录流程。

在 CmdLine 能启动 PECMD 的 WinPE 中,它是个多作的工具,没有任何作用。
回复

使用道具 举报

2993#
发表于 2010-6-11 01:08:11 | 只看该作者
刚才用regshot监控了一下修改"所采取的操作"时注册表发生的变化,你看看是否有用:

阻止 => 警告
------------------------------------------------------
HKLM\SOFTWARE\Microsoft\Driver Signing\Policy: 02
HKLM\SOFTWARE\Microsoft\Driver Signing\Policy: 01
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PrivateHash: 01 B1 D1 DA C8 B0 6D C6 6A F9 B7 CB 08 12 B0 F7
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PrivateHash: 0C C6 17 E1 49 96 25 91 83 0E B2 AB B1 AA D3 BF

警告 => 忽略
------------------------------------------------------
HKLM\SOFTWARE\Microsoft\Driver Signing\Policy: 01
HKLM\SOFTWARE\Microsoft\Driver Signing\Policy: 00
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PrivateHash: 0C C6 17 E1 49 96 25 91 83 0E B2 AB B1 AA D3 BF
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PrivateHash: ED F8 F9 F4 46 16 A5 5F 14 01 36 03 8D 2C 58 73

忽略 => 阻止
------------------------------------------------------
HKLM\SOFTWARE\Microsoft\Driver Signing\Policy: 00
HKLM\SOFTWARE\Microsoft\Driver Signing\Policy: 02
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PrivateHash: ED F8 F9 F4 46 16 A5 5F 14 01 36 03 8D 2C 58 73
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PrivateHash: 01 B1 D1 DA C8 B0 6D C6 6A F9 B7 CB 08 12 B0 F7

另发现从“我的电脑—属性”修改,和从“管理工具—本地安全设置—本地策略—安全选项—设备:未签名驱动程序的安装操作”效果是一样的,而且是同步的。

首次见到相关东西是HHH333的PE中,不过见只修改了Policy值,没有修改PrivateHash值,而且它又被注释掉了,可能是不起作用的缘故吧:

`REGI HKLM\SOFTWARE\Microsoft\Driver Signing\Policy=@00 `取消驱动的数字签名检测

另外还知Bart的“HWPNP.EXE”好像以一种复杂的方法实现了这种功能,其做法是在弹出警告框时枚举桌面上的所有窗口,找到确定按钮并对其发送事件。试过一次,好像还真有用,但大家好像对这个工具不了解。


对了,还想到一点,就是HHH333的PE里面有个从XP提取驱动的东西,好像我用它的时候从没有出现警告对话框,但有几次自己试图研究时却弹出了警告框,不知是不是Pseudo和chenall的批处理做到了这一点,但他们的批处理太难读了,完全找不出头绪。

[ 本帖最后由 shoulea 于 2010-6-11 02:11 编辑 ]
回复

使用道具 举报

2994#
发表于 2010-6-11 01:14:25 | 只看该作者
以后再来研究,先做个记号
回复

使用道具 举报

2995#
发表于 2010-6-11 02:31:38 | 只看该作者
老九,对于PECMD在我XP下出错的问题,我用OllyDBG跟踪了PECMD执行出问题的配置文件(第一次调试二进制程序,真累啊),发现发生异常的原因是,最后程序退出时调用C库msvcrt.dll中的free函数发生ACCESS_VIOLATION错误,因此错误应该是软件导致。

我从PE启动将XP的msvcrt.dll换成PE的发现错误仍不能消除。这个问题太复杂了,就不再研究了。
回复

使用道具 举报

2996#
 楼主| 发表于 2010-6-11 08:58:41 | 只看该作者
原帖由 shoulea 于 2010-6-11 01:08 发表
刚才用regshot监控了一下修改"所采取的操作"时注册表发生的变化,你看看是否有用:

阻止 => 警告
------------------------------------------------------
HKLM\SOFTWARE\Microsoft\Driver Signing\Polic ...


问题是在不同的机子中,PrivateHash 的值是不同的。
有关取消驱动认证的问题,以前也有讨论过,只是本人试验好象无效。
回复

使用道具 举报

2997#
发表于 2010-6-11 12:09:22 | 只看该作者
原帖由 lxl1638 于 2010-6-11 08:58 发表


问题是在不同的机子中,PrivateHash 的值是不同的。
有关取消驱动认证的问题,以前也有讨论过,只是本人试验好象无效。


看来惟一可行的方法只能是HWPNP的做法了。
回复

使用道具 举报

2998#
 楼主| 发表于 2010-6-11 12:20:53 | 只看该作者
原帖由 shoulea 于 2010-6-11 12:09 发表


看来惟一可行的方法只能是HWPNP的做法了。


你试试这个,已修正了 DEVI 命令,就是那个驱动认证心里没有底。
另,你有HWPNP源码?

[ 本帖最后由 lxl1638 于 2010-6-11 12:30 编辑 ]

PECMD.rar

119.33 KB, 下载次数: 44, 下载积分: 无忧币 -2

回复

使用道具 举报

2999#
发表于 2010-6-11 14:06:02 | 只看该作者

回复 #3033 shoulea 的帖子

hwpnp 采取的方法最通用,原理也最简单,安装驱动是会弹出一个对话框,就是未通过认证什么的,让用户来选是否安装,hwpnp用编程的方法替用户点击了继续安装按钮。在驱动开发网上有相似的源码。bartpe用的是另一种方法pSetupGetRealSystemTime,只能用于xp,在win7中失效。xpe用的是Driver Signing\Policy好像不大有用。win7pe中winpeshl(wpeutil.dll)用的是微软本家的方法pSetupModifyGlobalFlags,可惜在pe1.x中没有相应的函数。
回复

使用道具 举报

3000#
发表于 2010-6-11 17:51:27 | 只看该作者
在autoruns.cmd中定义的环境变量,到pecmd.ini里不认了。
在pecmd.ini定义的变量,kill explorer.exe后,打开cmd窗口也不认了,需要在cmd窗口执行pecmd envi,再开另一个窗口才认。
有什么好办法传递变量吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-1 18:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表