窄口牛 发表于 2019-3-24 23:39
bcd判断不了,还得用其它方法,有个第三方命令可以。
2012jiashanni 发表于 2019-3-25 09:44
很简单 判断启动文件是否是EFI 当然了 PE下无效
窄口牛 发表于 2019-3-25 10:23
一般人的电脑上,你这么判断多半不会错,但是鼓捣引导的人机器上就不行了。
窄口牛 发表于 2019-3-25 10:47
那个第三方可以,我试了,因为我的bcd路径根本就不是常规的位置,它可以正确判断,但是我现在的精简版系统 ...
dos时代菜鸟 发表于 2019-3-25 10:17
bcd 中记载的 path 项目 是可以删掉的,丝毫不影响系统启动。
窄口牛 发表于 2019-3-25 11:48
找不到,它找不到bcd的正确位置。
窄口牛 发表于 2019-3-25 10:47
那个第三方可以,我试了,因为我的bcd路径根本就不是常规的位置,它可以正确判断,但是我现在的精简版系统 ...
窄口牛 发表于 2019-3-25 12:29
就应该就是楼上这位程大师的。
窄口牛 发表于 2019-3-25 11:48
找不到,它找不到bcd的正确位置。
江南一根葱 发表于 2019-3-25 20:59
@echo off
:: 获取管理员权限运行批处理
@echo off
rem 原理参见2010hook发表在http://bbs.wuyou.net/forum.php?m ... &fromuid=298214
:DetectUEFI
for /f %%a in ('reg query "HKLM\HARDWARE\UEFI\ESRT" /s 2^>nul^|find /i "{"') do set "IsEFI=%%a"
if "!IsEFI:~-1!" equ "}" (
set "loader=efi"
echo UEFI启动
) else (
set "loader=exe"
echo BIOS启动
)
pause
@echo off
pushd %~dp0
reg add "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v "DisableUNCCheck" /t "REG_DWORD" /d "1" /f 1>nul 2>nul
rem cd /d "%~dp0"
detectefi |find /i "UEFI" && call :UEFI|| call :BIOS
echo 继续下一句
popd %~dp0
pause
exit /b
pause
:BIOS
echo BIOS启动
pause
exit /b
:UEFI
echo UEFI启动
pause
exit /b
pause
liuzhaoyzz 发表于 2019-3-26 09:37
1、基于BCDEDIT的方案是不可靠的。一些情况下bcdedit根本就运行不了。
2、基于setupact.log判断的 ...
adef 发表于 2019-3-26 09:45
方案1貌似有点问题,win7 x64 的 UEFI 启动它判断成 BIOS 启动了。
dos时代菜鸟 发表于 2019-3-26 10:28
说到 api
刚测试 powershell 3.0 有一句 可以成功
liuzhaoyzz 发表于 2019-3-26 10:31
基于powershell的方案是不可靠的,很多系统早已精简powershell。
dos时代菜鸟 发表于 2019-3-26 10:39
还有 ,如果用 rundll32.exe 调用 kernel32.dll 中的 GetFirmwareEnvironmentVariableA 函数,句柄应该怎 ...
liuzhaoyzz 发表于 2019-3-26 10:57
frg521是不是在楼上给出的有例子,我没有试过。
Win7不支持UEFI,我的判断结果是对的
frg521 发表于 2019-3-30 23:36
...
dsxmg1990 发表于 2019-4-5 15:52
可以通过diskpart 检测有没有esp分区来测试嘛
QQ拼音截图20190414225157.png (7.21 KB, 下载次数: 248)
liuzhaoyzz 发表于 2019-4-14 23:23
adef兄,
你提供的detectefi有问题,只适用于64位系统,这个detectefi.exe是64位VC8.0编写的,因 ...
32M剎p蠰 (17.99 KB, 下载次数: 266)
25.19 KB, 下载次数: 125, 下载积分: 无忧币 -2
Anson4 发表于 2020-3-19 14:27
1楼的PECMD代码已经不能适应 Windows 10.0.0.19041,无论是UEFI环境还是LEGACY环境,检测出来的结果都是“1 ...
dos时代菜鸟 发表于 2020-5-7 09:47
特意 弄个 1909 的 win10 测试了下,没问题。
有图有真相。
Anson4 发表于 2020-5-7 22:51
1909的版本号是Windows 10.0.0.18363,2004的版本号才是Windows 10.0.0.19041,其正式版即将到来。
dos时代菜鸟 发表于 2020-5-8 07:01
好吧,好吧,看来 还要等正式的出来了,才能再确定下。
还要看看,那几个 exe 方案能否有效。另外 1314 ...
Anson4 发表于 2020-5-8 12:29
已经用了管理员权限了
dos时代菜鸟 发表于 2020-5-9 21:18
pe 下呢?
Anson4 发表于 2020-7-30 20:40
请问楼主,在Win10 2004(19041)下,PECMD脚本返回的结果不正确,这个问题能解决了吗?
dos时代菜鸟 发表于 2020-7-31 15:20
没用过 那么先进的 系统呀,我这都是老古董。
也不知道 2004 中 dll 调用 句柄是啥。
Anson4 发表于 2020-7-31 16:04
我的移动CPU一代i5都在用2004,还有啥机器用不了呢?
dos时代菜鸟 发表于 2020-7-31 16:24
只能说你还是年轻呀。
我用的是 赛扬 G550 @ 2.60GHz .安装个系统 很费劲,下载个系统也很费劲。
Anson4 发表于 2020-7-31 16:35
G550确实有点老了,不过我的i5-M520也不年轻,性能应该比G550差一些,关键是我装了一块固态硬盘,一般上 ...
dos时代菜鸟 发表于 2020-12-15 09:22
经测试,特意下载了一个 win10 2004的gho ,用 里面的 kernel32.dll ,通过 python 调用其 相关句柄,能 ...
Anson4 发表于 2020-12-15 20:32
这个是20H2的,2004的更新版。
Anson4 发表于 2020-7-30 20:40
请问楼主,在Win10 2004(19041)下,PECMD脚本返回的结果不正确,这个问题能解决了吗?
dos时代菜鸟 发表于 2021-1-14 12:11
新版 pecmd 有此功能支持
见1楼。
Anson4 发表于 2021-1-15 16:51
新版本的PECMD还能这么玩啊,不知道可靠程度如何?
liuzhaoyzz 发表于 2019-3-26 09:37
1、基于BCDEDIT的方案是不可靠的。一些情况下bcdedit根本就运行不了。
2、基于setupact.log判断的 ...
2013kyj 发表于 2021-3-2 09:50
关于Windows是否是UEFI启动[不考虑在PE的情况下], 是否可以简单用命令mountvol z: /s来识别呢? MBR的不能 ...
liuzhaoyzz 发表于 2021-3-2 10:16
你的思路不对。
2013kyj 发表于 2021-3-2 11:07
哦,能否指点一二, 我确实测试过, 能加载就是UEFI, 否则MBR
欢迎光临 无忧启动论坛 (http://wuyou.net/) | Powered by Discuz! X3.3 |