无忧启动论坛

标题: cmd 判定 BISO/UEFI 現在開機環境執行 [打印本页]

作者: j120163392    时间: 2021-8-17 02:17
标题: cmd 判定 BISO/UEFI 現在開機環境執行
cmd 判定 BISO/UEFI 現在開機環境執行
如下方 判定x86 或 x64 執行Ghost


@ECHO OFF
if /i "%PROCESSOR_IDENTIFIER:~0,3%" == "X86" goto 86
GHOST64 -split=0
exit
:86
GHOST32 -split=0
exit



請問cmd 命令如何寫

作者: 邪恶海盗    时间: 2021-8-17 07:51
wlishihua 发表于 2021-8-17 07:46
根据系统 EXE文件来识别,如果是BIOS引导,那必定C盘有boot文件夹,没有就是UEFI引导,
先以memtest.exe文 ...

系统分区不一定是C:

-----------------------
作者: 铿锵玫瑰    时间: 2021-8-17 07:52
感觉这是想远程无人值守装系统的节奏,原来是什么就装什么。
作者: ylac    时间: 2021-8-17 07:54
来学学,谢谢分享
作者: xiaomomoyaya    时间: 2021-8-17 08:14
可以的
作者: junyee    时间: 2021-8-17 08:23


  1. (bcdedit /enum|findstr "winload.exe">NUL) && echo legacy || echo uEFI
复制代码

作者: smalldimple    时间: 2021-8-17 08:30
解决了别忘了把完整代码贴出来哦
作者: riser    时间: 2021-8-17 08:38
我只想造,这有何用途
作者: moran    时间: 2021-8-17 12:47
wlishihua 发表于 2021-8-17 07:46
根据系统 EXE文件来识别,如果是BIOS引导,那必定C盘有boot文件夹,没有就是UEFI引导,
先以memtest.exe文 ...

一楼的代码 PE 下咋没法运行?
作者: 熄灭的烟    时间: 2021-8-17 16:16
wlishihua 发表于 2021-8-17 07:53
已实现 对的

咋实现的,分享下
作者: 熄灭的烟    时间: 2021-8-17 16:55
wlishihua 发表于 2021-8-17 16:48
@ipconfig /all|FIND /I "4C-CC-69-FC-D6-60">NUL 2>NUL&& start "" "C:%users\Administrator\Desktop\Mi ...

好的,回头我试试。谢谢!
作者: 熄灭的烟    时间: 2021-8-17 16:58
wlishihua 发表于 2021-8-17 07:54
那是另类,我还没见过 这个不针对个人装机
根据客户机MAC 地址来恢复对应的系统也以实现

这个工具箱能够分享下吗?
作者: chiannet    时间: 2021-8-17 19:04
批处理

  1. @echo off &setlocal
  2. set "securemode="
  3. set "biosmode="
  4. for /f %%i in ('powershell.exe -nop -ep Bypass -c "Confirm-SecureBootUEFI"') do set "securemode=%%i"
  5. if /i "%securemode%"=="False" (
  6.   set "biosmode=UEFI(未启用安全引导)"
  7. ) else if /i "%securemode%"=="True" (
  8.   set "biosmode=UEFI(启用了安全引导)"
  9. ) else (
  10.   powershell.exe -nop -ep Bypass -c "Confirm-SecureBootUEFI" | >nul find /i "PermissionDenied"
  11.   if errorlevel 1 (
  12.     set "biosmode=LEGACY BIOS(启用了传统BIOS)启动。"
  13.   ) else (
  14.     echo 拒绝访问. 请用Administrator权限运行!
  15.     pause
  16.     exit /b
  17.   )
  18. )

  19. echo 当下计算机是采用%biosmode%
  20. pause
复制代码



作者: chiannet    时间: 2021-8-17 19:40
本帖最后由 chiannet 于 2021-8-17 19:42 编辑

下面这种更简练,注意,要以管理员权限(administrator)运行。
  1. @echo off
  2. SET "biosmode=未知方式"
  3. FOR /F "DELIMS=" %%i in ('bcdedit.exe /enum {current}^|find /i "WINLOAD.EFI"') DO (SET "biosmode=UEFI")
  4. if "%biosmode%"=="未知方式" (
  5.         FOR /F "DELIMS=" %%i in ('bcdedit.exe /enum {current}^|find /i "WINLOAD.exe"') DO (SET "biosmode=LEGACY BIOS(传统BIOS)")
  6. )
  7. echo 当下计算机是启用%biosmode%启动。
  8. pause
复制代码



作者: 江南一根葱    时间: 2021-8-18 10:32
本帖最后由 江南一根葱 于 2021-8-18 13:06 编辑

这个方式我用了多年,我通常是就打个mountvol,

  1. @echo off
  2. mountvol|find "EFI"
  3. if "%errorlevel%" == "1" set bootmode=LegacyBios
  4. if "%errorlevel%" == "0" set bootmode=UEFI
  5. echo 当前启动模式为%bootmode%
  6. pause
复制代码

作者: szwp    时间: 2021-8-18 15:09
wlishihua 发表于 2021-8-17 07:46
根据系统 EXE文件来识别,如果是BIOS引导,那必定C盘有boot文件夹,没有就是UEFI引导,
先以memtest.exe文 ...

LTSB LTSC 好像没Windows\System32\WSReset.exe
作者: szwp    时间: 2021-8-18 15:46
wlishihua 发表于 2021-8-18 15:18
没有就换一个嘛 换成这一个  不知道有没这个文件夹。反正Win7是没有的
C:\Windows\Web\4K

有,到时俺将通用BCD改下,多建几个条目。8就不考虑了。
作者: junyee    时间: 2021-8-18 17:37
wlishihua 发表于 2021-8-17 12:18
UEFI  也存在winload.exe文件

你试了没有?
为何也不顺便质疑下 21# ?

如果你有更好的办法为何不向楼主荐言?






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