无忧启动论坛

 找回密码
 注册
搜索

求教(已解决,pecmd脚本方案)判断当前系统是否为 uefi

查看数: 20464 | 评论数: 80 | 收藏 22
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-3-24 22:52

正文摘要:

本帖最后由 dos时代菜鸟 于 2021-6-18 12:30 编辑 问题已经解决, 感谢 liuzhaoyzz 、窄口牛 、adef 、liuzhaoyzz 等诸位大侠的热心回复和提供的思路。 我想弄个 cmd 实现这个功能,进而判断 系统启动类型是 ...

回复

sn4735 发表于 2022-10-6 16:27:34
感谢楼主的分享
dos时代菜鸟 发表于 2021-6-18 12:32:39
正确答案在一楼,有更新。
f2021z 发表于 2021-6-17 18:34:44
您没有权限
liuzhaoyzz 发表于 2021-3-2 11:23:50
2013kyj 发表于 2021-3-2 11:07
哦,能否指点一二, 我确实测试过, 能加载就是UEFI, 否则MBR

判断启动模式,贴自己都已经有了,还要什么?
2013kyj 发表于 2021-3-2 11:07:16

哦,能否指点一二, 我确实测试过, 能加载就是UEFI, 否则MBR

点评

判断启动模式,贴自己都已经有了,还要什么?  详情 回复 发表于 2021-3-2 11:23
liuzhaoyzz 发表于 2021-3-2 10:16:53
2013kyj 发表于 2021-3-2 09:50
关于Windows是否是UEFI启动[不考虑在PE的情况下], 是否可以简单用命令mountvol z: /s来识别呢? MBR的不能 ...

你的思路不对。

点评

哦,能否指点一二, 我确实测试过, 能加载就是UEFI, 否则MBR  详情 回复 发表于 2021-3-2 11:07
2013kyj 发表于 2021-3-2 09:50:16
本帖最后由 2013kyj 于 2021-3-2 09:54 编辑
liuzhaoyzz 发表于 2019-3-26 09:37
1、基于BCDEDIT的方案是不可靠的。一些情况下bcdedit根本就运行不了。
2、基于setupact.log判断的 ...

关于Windows是否是UEFI启动[不考虑在PE的情况下], 是否可以简单用命令mountvol z: /s来识别呢? MBR的不能加载EFI分区, 批处理应该怎么写呢, 欢迎讨论

点评

你的思路不对。  详情 回复 发表于 2021-3-2 10:16
dos时代菜鸟 发表于 2021-1-15 20:08:22
本帖最后由 dos时代菜鸟 于 2021-1-15 23:07 编辑
Anson4 发表于 2021-1-15 16:51
新版本的PECMD还能这么玩啊,不知道可靠程度如何?

这个应该可以了啦
bootmode.2021.2.7z (1.67 MB, 下载次数: 15)
Anson4 发表于 2021-1-15 16:51:09
dos时代菜鸟 发表于 2021-1-14 12:11
新版 pecmd 有此功能支持

见1楼。

新版本的PECMD还能这么玩啊,不知道可靠程度如何?

点评

好像还是不行  详情 回复 发表于 2021-1-15 20:08
dos时代菜鸟 发表于 2021-1-14 12:11:16
Anson4 发表于 2020-7-30 20:40
请问楼主,在Win10 2004(19041)下,PECMD脚本返回的结果不正确,这个问题能解决了吗?

新版 pecmd 有此功能支持

见1楼。

点评

新版本的PECMD还能这么玩啊,不知道可靠程度如何?  详情 回复 发表于 2021-1-15 16:51
dos时代菜鸟 发表于 2020-12-15 22:39:35
本帖最后由 dos时代菜鸟 于 2020-12-15 22:41 编辑
Anson4 发表于 2020-12-15 20:32
这个是20H2的,2004的更新版。

确实 不行了,不知道还有 其他 啥好办法没有
在 20h2 中 调用老版本的 kernel32.dll 也不行,显示无法定位 程序输入点。

Anson4 发表于 2020-12-15 20:32:31
dos时代菜鸟 发表于 2020-12-15 09:22
经测试,特意下载了一个 win10 2004的gho ,用 里面的 kernel32.dll ,通过 python 调用其 相关句柄,能 ...

这个是20H2的,2004的更新版。
kernel32.7z (281.41 KB, 下载次数: 6)

点评

确实 不行了,不知道还有 其他 啥好办法没有  详情 回复 发表于 2020-12-15 22:39
dos时代菜鸟 发表于 2020-12-15 08:46:47
Anson4 发表于 2020-7-31 16:35
G550确实有点老了,不过我的i5-M520也不年轻,性能应该比G550差一些,关键是我装了一块固态硬盘,一般上 ...

把 2004 20h4 里的 kernel32.dll 拿来,用一下试试,
或者干脆调用 1809 低版本里的 kernel32.dll 的函数句柄。
iteu 发表于 2020-11-22 22:10:28
多谢分享,,,,,,,,,,,,,,
Anson4 发表于 2020-7-31 16:35:05
dos时代菜鸟 发表于 2020-7-31 16:24
只能说你还是年轻呀。

我用的是 赛扬 G550 @ 2.60GHz .安装个系统 很费劲,下载个系统也很费劲。

G550确实有点老了,不过我的i5-M520也不年轻,性能应该比G550差一些,关键是我装了一块固态硬盘,一般上上论坛还可以。

点评

把 2004 20h4 里的 kernel32.dll 拿来,用一下试试, 或者干脆调用 1809 低版本里的 kernel32.dll 的函数句柄。  详情 回复 发表于 2020-12-15 08:46
dos时代菜鸟 发表于 2020-7-31 16:24:23
Anson4 发表于 2020-7-31 16:04
我的移动CPU一代i5都在用2004,还有啥机器用不了呢?

只能说你还是年轻呀。

我用的是 赛扬 G550 @ 2.60GHz .安装个系统 很费劲,下载个系统也很费劲。

点评

G550确实有点老了,不过我的i5-M520也不年轻,氢能应该比G550差一些,关键是我装了一块固态硬盘,一般上上论坛还可以。  详情 回复 发表于 2020-7-31 16:35
Anson4 发表于 2020-7-31 16:04:23
dos时代菜鸟 发表于 2020-7-31 15:20
没用过 那么先进的 系统呀,我这都是老古董。
也不知道 2004 中 dll 调用 句柄是啥。

我的移动CPU一代i5都在用2004,还有啥机器用不了呢?

点评

只能说你还是年轻呀。 我用的是 赛扬 G550 @ 2.60GHz .安装个系统 很费劲,下载个系统也很费劲。  详情 回复 发表于 2020-7-31 16:24
dos时代菜鸟 发表于 2020-7-31 15:20:12
Anson4 发表于 2020-7-30 20:40
请问楼主,在Win10 2004(19041)下,PECMD脚本返回的结果不正确,这个问题能解决了吗?

没用过 那么先进的 系统呀,我这都是老古董。
也不知道 2004 中 dll 调用 句柄是啥。

点评

我的移动CPU一代i5都在用2004,还有啥机器用不了呢?  详情 回复 发表于 2020-7-31 16:04
Anson4 发表于 2020-7-30 20:40:21
请问楼主,在Win10 2004(19041)下,PECMD脚本返回的结果不正确,这个问题能解决了吗?

点评

新版 pecmd 有此功能支持 见1楼。  详情 回复 发表于 2021-1-14 12:11
没用过 那么先进的 系统呀,我这都是老古董。 也不知道 2004 中 dll 调用 句柄是啥。  详情 回复 发表于 2020-7-31 15:20
Anson4 发表于 2020-5-10 08:27:09

手上没有2004的PE
不过,我觉得不是权限的问题,因为同样的操作,在1909以及更低版本的系统下运行正常。
dos时代菜鸟 发表于 2020-5-9 21:18:15
Anson4 发表于 2020-5-8 12:29
已经用了管理员权限了

pe 下呢?

点评

手上没有2004的PE 不过,我觉得不是权限的问题,因为同样的操作,在1909以及更低版本的系统下运行正常。  详情 回复 发表于 2020-5-10 08:27
Anson4 发表于 2020-5-8 12:29:45
dos时代菜鸟 发表于 2020-5-8 07:01
好吧,好吧,看来 还要等正式的出来了,才能再确定下。
还要看看,那几个 exe 方案能否有效。另外 1314  ...

已经用了管理员权限了

点评

pe 下呢?  详情 回复 发表于 2020-5-9 21:18
dos时代菜鸟 发表于 2020-5-8 07:01:52
本帖最后由 dos时代菜鸟 于 2020-5-8 07:08 编辑
Anson4 发表于 2020-5-7 22:51
1909的版本号是Windows 10.0.0.18363,2004的版本号才是Windows 10.0.0.19041,其正式版即将到来。

好吧,好吧,看来 还要等正式的出来了,才能再确定下。
还要看看,那几个 exe 方案能否有效。另外 1314 码 对应的应该是 权限问题,你不妨 用管理员权限 运行 再试试。

点评

已经用了管理员权限了  详情 回复 发表于 2020-5-8 12:29
Anson4 发表于 2020-5-7 22:51:43
dos时代菜鸟 发表于 2020-5-7 09:47
特意 弄个 1909 的 win10 测试了下,没问题。
有图有真相。

1909的版本号是Windows 10.0.0.18363,2004的版本号才是Windows 10.0.0.19041,其正式版即将到来。

点评

好吧,好吧,看来 还要等正式的出来了,才能再确定下。 还要看看,那几个 exe 方案能否有效。  详情 回复 发表于 2020-5-8 07:01
Anson4 发表于 2020-3-19 14:27:44
1楼的PECMD代码已经不能适应 Windows 10.0.0.19041,无论是UEFI环境还是LEGACY环境,检测出来的结果都是“1314”,而不是“1”或者“998”。

点评

特意 弄个 1909 的 win10 测试了下,没问题。 有图有真相。 [attachimg]431849[/attachimg]  详情 回复 发表于 2020-5-7 09:47
qxhdly 发表于 2020-2-11 00:30:12
多谢分享,,,,,,,,,,,,,,
xinzaixin 发表于 2020-1-4 22:17:25
多谢分享,,,,,,,,,,,,,,
liuzhaoyzz 发表于 2019-5-18 18:23:02

分享

本帖最后由 liuzhaoyzz 于 2019-5-18 18:24 编辑

    求人不如求己啊!我下载了adef兄的https://github.com/xcat2/xcat-co ... cat/netboot/windows源代码,然后用VS2008重新编译,编译的时候选择静态编译,右键项目,属性->配置属性->常规->MFC的使用,选择“在静态库中使用MFC”。编译为32位程序,编译后exe文件52KB,亲测适用于XP,64位的WIN7 10,检测BIOS/UEFI启动模式正确无误。为了区别于adef兄的detectefiX86.exe(45KB),特地改名字为detectefi32.exe(52KB)。现奉上源代码和编译后的exe文件。

   

detectefi32.rar

25.19 KB, 下载次数: 125, 下载积分: 无忧币 -2

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

闽公网安备 35020302032614号

GMT+8, 2024-5-3 02:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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