无忧启动论坛

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

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

    [复制链接]
2971#
发表于 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 编辑 ]
回复

使用道具 举报

2972#
发表于 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%
回复

使用道具 举报

2973#
发表于 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 编辑 ]
回复

使用道具 举报

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


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

使用道具 举报

2975#
 楼主| 发表于 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
回复

使用道具 举报

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

WinPEShl有什么优势?

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

使用道具 举报

2977#
发表于 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
回复

使用道具 举报

2978#
 楼主| 发表于 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 中,它是个多作的工具,没有任何作用。
回复

使用道具 举报

2979#
发表于 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 编辑 ]
回复

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

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


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

使用道具 举报

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


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


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

使用道具 举报

2984#
 楼主| 发表于 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

回复

使用道具 举报

2985#
发表于 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中没有相应的函数。
回复

使用道具 举报

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

使用道具 举报

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


autoruns.cmd 定义的环境变量在PECMD.INI中肯定认不到,除非又更新WinPEShl,那样WinPEShl就象小型的PECMD了。

pecmd.ini定义的变量,kill explorer.exe后,有可能让cmd窗口认到。就是在pecmd.ini中将这些环境变量设置成系统级环境变量。
回复

使用道具 举报

2988#
发表于 2010-6-11 18:32:19 | 只看该作者

回复 #3041 lxl1638 的帖子

在pecmd.ini中将这些环境变量设置成系统级环境变量也不行。
kill explorer.exe后,我的电脑系统属性-环境变量里可以看到环境变量。但cmd窗口不认。
需要在cmd窗口执行pecmd envi,再开另一个窗口才认。
回复

使用道具 举报

2989#
 楼主| 发表于 2010-6-11 18:54:06 | 只看该作者
原帖由 pseudo 于 2010-6-11 18:32 发表
在pecmd.ini中将这些环境变量设置成系统级环境变量也不行。
kill explorer.exe后,我的电脑系统属性-环境变量里可以看到环境变量。但cmd窗口不认。
需要在cmd窗口执行pecmd envi,再开另一个窗口才认。


将无参数的 ENVI 命令写入启动项(RUN)试试,即在 PECMD.INI 加上一行:
RUNS PECMD.EXE ENVI,刷新环境变量
启动到桌面等这行执行完毕后,再打开的CMD窗口应该可以认得这些系统级环境变量了。
回复

使用道具 举报

2990#
发表于 2010-6-11 20:19:26 | 只看该作者

回复 #3043 lxl1638 的帖子

不中。情况同#3042楼。
现在explorer.exe是pecmd管的吧。能不能在加载/重新加载explorer.exe时,由pecmd负责自动执行envi?
回复

使用道具 举报

2991#
发表于 2010-6-11 20:28:31 | 只看该作者

v3.9

用以下办法.加载经常不显示.以往一直正常.

LINK %Startup%\输入法指示器,%WS%\INTERNAT.EXE

查X盘.怪的是.%Startup%下有输入法指示器...kill explorer.exe也不出现到任务栏.

现在用

RUNS PECMD.EXE EXEC !X:\WXPE\system32\INTERNAT.EXE,输入法指示器

正常.
回复

使用道具 举报

2992#
发表于 2010-6-11 20:36:56 | 只看该作者

v3.9

新版.加网驱可以了.但发觉跳出窗口...

LINK  !
也不行.

加WAIT 仔细分析.是UPNP造成.以往不是这样的.

BARTPE.EXE

还是要发挥余热...

[ 本帖最后由 66369 于 2010-6-11 20:38 编辑 ]
回复

使用道具 举报

2993#
发表于 2010-6-11 20:39:55 | 只看该作者
原帖由 66369 于 2010-6-11 20:36 发表
新版.加网驱可以了.但发觉跳出窗口...

LINK  !
也不行.

加WAIT 仔细分析.是UPNP造成.以往不是这样的.

BARTPE.EXE

还是要发挥余热...


测试了一下,用#3038楼的不跳了
回复

使用道具 举报

2994#
发表于 2010-6-11 21:00:08 | 只看该作者
原帖由 snaketsg 于 2010-6-11 20:39 发表


测试了一下,用#3038楼的不跳了



试.真实不虚.
回复

使用道具 举报

2995#
发表于 2010-6-11 21:19:42 | 只看该作者
QUOTE:
原帖由 lxl1638 于 2010-6-11 17:39 发表


已更正了PECMD的DEVI命令:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=91524&page=304#pid1971714
你测试看看。


刚刚在虚拟机,与台试机,笔记本实机的都做了测试,DEVI 命令正常、网启版客户端 PECMD SERV 与 NET START 方式正常、单双核下正常,不再闪现DOS窗口。

呵呵,看来PECMD.EXE要发布修正版了。
回复

使用道具 举报

2996#
发表于 2010-6-11 22:02:48 | 只看该作者
原帖由 网虫2008 于 2010-6-11 21:19 发表
QUOTE:
原帖由 lxl1638 于 2010-6-11 17:39 发表


已更正了PECMD的DEVI命令:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=91524&page=304#pid1971714
你测试 ...



========

用修正的.在你PE没问题的话.你就更新下你的PE.

毕竟在等你的人多.

我那个.凡有不适的命令.事先绕过了.几天来无出错反馈.PE各部分正常.就不动了.
回复

使用道具 举报

2997#
 楼主| 发表于 2010-6-11 22:09:17 | 只看该作者
大家试验时,DEVI命令有没有出现驱动认证的窗口?
回复

使用道具 举报

2998#
发表于 2010-6-11 22:11:32 | 只看该作者
原帖由 lxl1638 于 2010-6-11 22:09 发表
大家试验时,DEVI命令有没有出现驱动认证的窗口?



过去到如今.没有.
回复

使用道具 举报

2999#
发表于 2010-6-11 22:14:52 | 只看该作者
原帖由 66369 于 2010-6-11 22:02 发表



========

用修正的.在你PE没问题的话.你就更新下你的PE.

毕竟在等你的人多.

我那个.凡有不适的命令.事先绕过了.几天来无出错反馈.PE各部分正常.就不动了.


再等等老九正式发布修正版吧。这阵儿更新太频,正好这段时间看看有没有其他反馈。。。

新版PECMD.EXE在我的PE中,只是SHOW命令在与F6模块结合时有些小问题,但不是普遍现象,只有两例,如老狼所说,问题比较“诡异”,,,哈 哈!
回复

使用道具 举报

3000#
 楼主| 发表于 2010-6-11 22:20:26 | 只看该作者
shoulea 的测试结果再说,关键是 DEVI 命令:
1、能否安装驱动;
2、有没有解压出过多的驱动文件;
3、是否出现驱动认证的窗口。

SHOW 命令出问题只是个案,本人测试无法重现出刀客那种情况,也无从着手SHOW命令的问题,SHOW命令暂时不管了。

[ 本帖最后由 lxl1638 于 2010-6-11 22:24 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-10-4 10:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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