无忧启动论坛

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

作者: 1018438419    时间: 2021-1-22 14:09
标题: 关于windows pe 运行环境的判断
看之前其他人的回答,一般就两种方法,
第一种是判断注册表 HKLM\SYSTEM\CurrentControlSet\Control\SystemStartOptions 是否有 MININT 启动标志,
第二种是判断系统盘是否为X盘
我来提供另一种思路 ,算是第三种方法。
我们都知道,Windows PE本质上就是一个精简的MINI WINDOWS系统,并且他是加载到内存里面的。并非加载到磁盘的系统,所以我们可以让软件判断系统盘容量,如果容量少于5GB的一般都是PE系统了,或者还可以增加一个判断磁盘是否为“内存硬盘”。

作者: 红毛樱木    时间: 2021-1-22 14:33
判断系统盘是否为虚拟盘,这个不错
作者: liuzhaoyzz    时间: 2021-1-22 14:55
如果容量少于5GB的一般都是PE系统了,或者还可以增加一个判断磁盘是否为“内存硬盘”。
不科学吧。按照这个规则,RAMOS就不行。
作者: Bluebells    时间: 2021-1-22 15:11
判断系统分区的盘符是否为 X: 是最不靠谱的! 判断系统分区是否为虚拟盘, 那 VHD 系统呢?

以注册表中的注册表项, 值, 数据中作为判断依据好像也不怎么好, 我记得很久以前的 WinPE, 有部分人就曾在 WinPE 启动到桌面后, 修改一些标志性注册表数据, 以达到解除 WinPE 的某些限制(如系统运行时间到某个长度后系统会自动重启或关机)
Acronis True Image 在判断运行系统是否为 WinPE, 其依据是"是否存在注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT"
MiniTool 系列产品判断运行系统是否为 WinPE, 则是"是否存在注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE, 的值 Version(该值的数据可为空)"
作者: captain_g    时间: 2021-1-22 15:49
微软网上说的:
wpeutil UpdateBootInfo
for /f "tokens=2* delims=         " %%A in ('reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') DO SET Firmware=%%B
:: Note: delims is a TAB followed by a space.
if %Firmware%==0x1 echo The PC is booted in BIOS mode.
if %Firmware%==0x2 echo The PC is booted in UEFI mode.
作者: bfgxp    时间: 2021-1-22 17:01
我是依登录用户,SYSTEM就是PE,其他判断为非PE
所以那些admin登录的pe就有点尴尬了。
作者: nttwqz    时间: 2021-1-22 19:06
还是第二种好,我用的就是这一种,只需要变量 路径和If就能判断,
作者: 1018438419    时间: 2021-1-22 23:42
liuzhaoyzz 发表于 2021-1-22 14:55
不科学吧。按照这个规则,RAMOS就不行。

所以可以增加判断的条件,或者实在拿不准弹窗让用户选也可以,我觉着这几个条件加在一起可以准确判断99%的系统环境
作者: uvwlab    时间: 2021-1-22 23:51
PE系统里面有winpeinit.exe程序,也可以通过类似的方法来判断。但用MININT判断最佳。
作者: 秋水长天369    时间: 2021-1-23 10:26
好东西,谢谢




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