无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: lxl1638
打印 上一主题 下一主题

PECMD.EXE SHOW 命令详解。

[复制链接]
1#
发表于 2010-5-31 14:45:41 | 显示全部楼层
原帖由 lxl1638 于 2010-5-30 23:16 发表
这样啊?你先试试能不能将PECMD放入一级内核作为第一个程来使用,当然在二级内核没有加载之前,PECMD.INI要尽可能使用更少的命令,或者只执行 EXEC 命令启动加载二级内核的 CMD。
PECMD只有执行到相应的命令才加载那些不常用的DLL的,并没有使用很多DLL的说法,
新版PECMD和旧版的PECMD一样可以在只有10多M的骨头版PE使用,你说会使用到很多DLL么。

0pe先启动到cmdpe(一级内核),然后再加载desktop.wim(二级内核)。
这样做的原因之一是u盘在启动之初,不一定能达到usb 2.0高速。那么分解内核,尽量减少u盘启动初期读取文件总体积,也就是一级内核的体积,是有意义的。
许多dll放在二级内核,这部分是在进入windows cmd后读取的,这时已经是usb2.0高速,体积大小,是否骨头已经无所谓。

一级内核基本上相当于cmdpe,比骨头版PE少dll,或者差不多。这时可以运行某些程序,不能运行pecmd:


要加较大体积的dll才行,那样会明显增加cmdpe体积。
所用的pecmd版本为:


这个已经比07年的版本需要的dll多。
即使后来dll有了,更新的版本也用不成,因为这个可能是支持pelogon的最后版本了。
还有,在做英文版(中英混杂,部分英文)时,不能启动shel,提示pecmd不能改名之类,但我没改名。

试过用pecmd作为第一程序调用cmd.exe,结果会重启。zxw在#9楼也遇到了。

有网友做过simple pecmd,需要dll少,可以作为第一启动程序运行,但后面启动shel还得用旧版pecmd。

楼主能否让新版继续支持pelogon这种不以pecmd为第一程序的用法,或者提供需要动态库少的pecmd(功能减少点也可以),
以便在cmdpe环境下能作为第一启动程序,后面再与需要动态库多的功能强的新版pecmd衔接,启动shel。

我理解并支持楼主限制pecmd为第一程序、取消pelogon的做法。不过这样在0pe中无法应用新版pecmd强大功能,令人遗憾。

最后,感谢楼主提供这么好的作品。
回复

使用道具 举报

2#
发表于 2010-5-31 18:17:06 | 显示全部楼层
原帖由 lxl1638 于 2010-5-31 15:05 发表
你将一级内核打包放到某个地方,本下来试试。

谢谢楼主关注。
0PE_To_lxl1638.rar(33.3MB)
内有说明。
回复

使用道具 举报

3#
发表于 2010-6-1 00:41:24 | 显示全部楼层
让楼主费心了。
chenall的pe,yidawpf的pe都是类似结构,如果能用上新版pecmd就太好了。
回复

使用道具 举报

4#
发表于 2010-6-4 14:45:14 | 显示全部楼层
原帖由 lxl1638 于 2010-6-1 14:46 发表

可能很快可以帮你搞定,基本框架已编译好,工作原理是按顺序执行一个INI文件中列出的(CMD和EXE)命令,如这个INI文件的命令列表可以是:

目前(56K)只需一个DLL(KERNEL32.DLL),现在打算将代码移到VC6中编 ...

论坛变动,先前回帖丢失。
列表如下
ADVAPI32 DLL
AUTHZ    DLL
BASESRV  DLL
BIOSINFO IN_
BOOTVID  DL_
CMD      EXE
CRYPT32  DLL
CSRSRV   DLL
CSRSS    EXE
CTYPE    NLS
C_1252   NLS
C_936    NLS
FBINST   EXE
FLTLIB   DLL
FRAMEBUF DLL
GDI32    DLL
HAL      DL_
HALAACPI DL_
HALACPI  DLL
IMAGEHLP DLL
KDCOM    DL_
KERNEL32 DLL
LOCALE   NLS
L_INTL   NLS
MSASN1   DLL
MSVCRT   DLL
NDDEAPI  DLL
NETAPI32 DLL
NTDLL    DLL
NTOSKRNL EX_
PROFMAP  DLL
PSAPI    DLL
REGAPI   DLL
RPCRT4   DLL
SECUR32  DLL
SETUPAPI DLL
SETUPREG HI_
SMSS     EXE
SORTKEY  NLS
SORTTBLS NLS
SXS      DLL
UNICODE  NLS
USER32   DLL
USERENV  DLL
VERSION  DLL
VGAOEM   FO_
WIMGAPI  DLL
WIN32K   SYS
WINLOGON EXE
WINSRV   DLL
WINSTA   DLL
WINTRUST DLL
WS2HELP  DLL
WS2_32   DLL
回复

使用道具 举报

5#
发表于 2010-6-4 20:33:18 | 显示全部楼层

回复 #28 lxl1638 的帖子

是一级内核的文件列表。
启动pecmd不成功,见#11楼图。

[ 本帖最后由 pseudo 于 2010-6-4 20:34 编辑 ]
回复

使用道具 举报

6#
发表于 2010-6-5 22:11:16 | 显示全部楼层

初步测试

1、setupreg.hiv中CmdLine设为:
WinPEShl.EXE
无参数。
2、PECMD.EXE,PecmdHelper.EXE,WinPEShl.EXE,WinPEShl.INI,AutoRun_.CMD在一级内核system32目录。
3、WinPEShl.INI内容
[LaunchApp]
AppPath="PECMD.EXE MAIN PECMD.INI"
[LaunchApps]
=CMD.EXE,"/K AutoRun_.CMD"
4、AutoRun_.CMD开头为
echo 1111111
pause

效果:进入windows蓝色背景后自动重启,以往这里会出现cmd窗口。
回复

使用道具 举报

7#
发表于 2010-6-5 22:35:31 | 显示全部楼层

对照

1、setupreg.hiv中CmdLine设为:
SIMPCMD.EXE load SIMPCMD.INI

2、SIMPCMD.INI内容
TEXT WinPE正在启动中,请稍候 #0xFFFFFF L320 T200 R700 B240 $20
EXEC =CMD.EXE /K AutoRun_.CMD

3、AutoRun_.CMD同上

效果:停在cmd窗口,有显示信息,符合预期。
回复

使用道具 举报

8#
发表于 2010-6-6 10:03:05 | 显示全部楼层
初步测试,54K控制台成功。
谢谢老九大!
回复

使用道具 举报

9#
发表于 2010-6-6 18:06:22 | 显示全部楼层
很好。四个WinPEShl.EXE都可用。

LaunchApps里各个ini、cmd之间,以及与LaunchApp的ini之间要传递变量(向后面传),有什么好办法吗?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-25 04:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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