无忧启动论坛

标题: 关于windows pe 运行环境的判断 [打印本页]

作者: htt_rd    时间: 2015-5-8 13:52
标题: 关于windows pe 运行环境的判断
请问 论坛中的各位前辈、先进

应用程序要如何判断是否在 windows pe 环境中运行呢?
作者: sssky301    时间: 2015-5-8 20:00
我估计,一般先是在windows下运行,再到 pe下运行,缺什么就到windows里面找,补到pe里面去,注册表,netframework可能都 需要
作者: pseudo    时间: 2015-5-8 21:26
系统盘是X:的是PE环境。

if "%windir:~,2%"=="X:" echo PE
if not "%windir:~,2%"=="X:" echo Windows
作者: wylgogogo    时间: 2015-5-8 22:25
    p大,这代码我看不懂。呵呵
作者: zds1210    时间: 2015-5-8 22:33
pseudo 发表于 2015-5-8 21:26
系统盘是X:的是PE环境。

if "%windir:~,2%"=="X:" echo PE

貌似是cmd脚本,如果存在x盘,就显示PE;如果不存在,就不显示。
作者: zds1210    时间: 2015-5-8 22:34
还有一个方法,一般PE系统不能缺少pecmd,这神器,有的就是PE,没有的就不是。再结合P大法,可能比较完美。
作者: zds1210    时间: 2015-5-8 22:34
还有一个方法,一般PE系统不能缺少pecmd,这神器,有的就是PE,没有的就不是。再结合P大法,可能比较完美。
作者: wjgyz740526    时间: 2015-5-8 22:47
以前不是通过某个注册表项的值是否为minipe来判断嘛
作者: wyb391    时间: 2015-5-9 06:59
方法太多了~原理都通过对某个特征判断p大的代码就跟直观
作者: ge    时间: 2015-5-9 07:23
在pecmd压缩包的help文件夹下的pecmd补充说明中,
判断 WINPE
REGI $HKLM\SYSTEM\CurrentControlSet\Control\SystemStartOptions,&&SSO
SED &&MNT=?:0,MININT,,%&SSO%
FIND $%&MNT%=0,MESS NOT IN PE!MESS IN PE

PE 有 MININT 启动标志
作者: lbw2007    时间: 2015-5-9 09:15
其实我一直想知道AIDA64是怎么看出我的系统是PE的……
作者: htt_rd    时间: 2015-5-9 15:37
pseudo 发表于 2015-5-8 21:26
系统盘是X:的是PE环境。

if "%windir:~,2%"=="X:" echo PE

万分感谢 p大 抽空指导,小弟甚感荣幸。
作者: htt_rd    时间: 2015-5-9 15:40
ge 发表于 2015-5-9 07:23
在pecmd压缩包的help文件夹下的pecmd补充说明中,
判断 WINPE
REGI $HKLM\SYSTEM\CurrentControlSet\Con ...

请问 ge 大,所有PE 都会有这个标记吗?
作者: 2012bzsb    时间: 2015-5-9 17:06
X: 不行
很多RAMOS, VHD 都是X:盘

准确的应该看登录用户是否为SYSTEM
作者: 2012bzsb    时间: 2015-5-9 17:09
PECMD, 也不行
很多PE不用PECMD

而且,PECMD2012可以改名.如 MYCMD
作者: 2012bzsb    时间: 2015-5-9 17:12
MININT好像也不行吧

WIM的RAMOS ,X盘 ,会不会也有?
作者: 2012jiashanni    时间: 2015-5-29 06:52
我软件就是判断系统盘是不是X盘 windows只有PE是X盘 其他的 无法更改系统盘盘符为X
作者: ge    时间: 2016-4-24 19:43
pseudo 发表于 2015-5-8 21:26
系统盘是X:的是PE环境。

if "%windir:~,2%"=="X:" echo PE

这个可是没准!我的为了让系统盘盘符不冲突,VHD WIN7的盘符改成Z:
作者: ge    时间: 2016-4-24 19:47
htt_rd 发表于 2015-5-9 15:40
请问 ge 大,所有PE 都会有这个标记吗?

M大的PECMD的help文件夹下的pecmd补充说明中说的,是!
作者: ge    时间: 2016-4-24 19:54
2012jiashanni 发表于 2015-5-29 06:52
我软件就是判断系统盘是不是X盘 windows只有PE是X盘 其他的 无法更改系统盘盘符为X

我的VHD WIN7是在用WINNTSETUP安装时修改的盘符!Z:
也可以修改成X:判断盘符是不准的!
我的系统下就有PECMD!如果是判断有PECMD进程,可能是PE!
作者: ge    时间: 2016-4-24 19:56
本帖最后由 ge 于 2016-4-24 20:01 编辑
2012bzsb 发表于 2015-5-9 17:06
X: 不行
很多RAMOS, VHD 都是X:盘


就用M大给的方法就很好!WIM的RAMOS和WIM的PE有什么不同?
作者: ge    时间: 2016-4-24 19:59
lbw2007 发表于 2015-5-9 09:15
其实我一直想知道AIDA64是怎么看出我的系统是PE的……

可能就是读取注册表的 MININT 启动标志!有就是PE!
作者: zlgs    时间: 2016-4-24 21:01
可能读取set返回的环境变量判断
SET里面的信息太丰富了
如USERNAME,windir,PECMDVER,COMPUTERNAME,OS
足以判断是什么系统
获取文本信息
SET >D:\SET.TXT

作者: cbl    时间: 2020-3-2 19:21

作者: xiaoqiLi    时间: 2020-3-4 17:33
呵呵
作者: 熄滅的蠟燭    时间: 2020-5-31 10:49
htt_rd 发表于 2015-5-9 15:40
请问 ge 大,所有PE 都会有这个标记吗?

有MINNT是因为在BCD里有一个名为winpe的启动参数,PE都会添加这个参数,当然系统也可以添加这个参数
作者: 熄滅的蠟燭    时间: 2020-5-31 10:52
注册表读取SystemStartOptions,这个是读取启动选项的意思,有MINNT是因为在BCD里有一个WinPE Yes的启动参数,完整的系统也可以添加这个参数,只要添加了这个参数,就连dism都会把当前系统识别成winpe
作者: 熄滅的蠟燭    时间: 2020-5-31 10:54
pseudo 发表于 2015-5-8 21:26
系统盘是X:的是PE环境。

if "%windir:~,2%"=="X:" echo PE

告诉你个变量:%systemdrive%可以直接获取到当前系统的系统驱动器号
作者: hua_giang    时间: 2022-9-7 17:30
Encryptor




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