Как проверить режим загрузки устройства (UEFI или устаревший)?

#powershell

#powershell

Вопрос:

Как я могу использовать Powershell, чтобы определить, работает ли устройство в режиме загрузки UEFI или Legacy, и вернуть простую строку с надписью «UEFI» или «Legacy»?

Комментарии:

1. Отвечает ли это на ваш вопрос: wintech.sgal.info/2016/12 /…

Ответ №1:

Ниже приведено для повышенных прав, могут быть способы сделать его не повышенным, но вы не указали, является ли это требованием, так что вот оно.

Запустите это в PowerShell с повышенными правами:

 $BootMode = bcdedit | Select-String "path.*efi"
if ($null -eq $BootMode) {
    # I think non-uefi is WindowsSystem32winload.exe
    $BootMode = "Legacy"
}else {
    # UEFI is: 
    #path                    EFIMICROSOFTBOOTBOOTMGFW.EFI
    #path                    Windowssystem32winload.efi
    $BootMode = "UEFI"
}

Write-Host "Computer is running in $BootMode boot mode."
 

Если у него есть .efi путь, его режим UEFI. Если он показывает .exe , это устаревшая загрузка, если мне не изменяет память.