설치 / 사용기

기 타 Win10에서 UEFI or Legacy 를 구분하는 5가지 방법을 소개한 곳이 있네요..

2021.01.04 16:43

왕초보 조회:1673 추천:8

제목에서 처럼 Windows10에서 UEFI or Legacy 를 구분하는 구분하는 5가지 방법에 대해서 소개한 사이트를 지후빠님이 알려주셨습니다

이미 알고 계신분도 있으실것입니다...소개한 글이 없어져서..아쉬운 마음에 사용기란에 소개를 하게 되었습니다

 

아래는 5가지 방법이 소개된 사이트 입니다

 

Check if Windows 10 is using UEFI or Legacy BIOS

https://www.tenforums.com/tutorials/85195-check-if-windows-10-using-uefi-legacy-bios.html

 

Option One: To Check if Windows 10 is using UEFI or Legacy BIOS in System Information

Option Two: To Check if Windows 10 is using UEFI or Legacy BIOS in Disk Management

Option Three: To Check if Windows 10 is using UEFI or Legacy BIOS using BCDEDIT command

Option Four: To Check if Windows 10 is using UEFI or Legacy BIOS in Command Prompt at Boot

Option Five: To Check if Windows 10 is using UEFI or Legacy BIOS in PowerShell

 

본문 내용을 복사를 해온것입니다

 

실제 pe나 윈도우에서 UEFI 와 Legacy 구분용으로 활용되고 있는것들이 있어서 생소하지 않으실것입니다

저는..powershell을 명령어는 처음 알게 되어서 혹시나 하고 기대를 했었습니다..제목에 있는것처럼 Windows7에서는 되지 않고 Windows10에서

는 잘되네요..

 

powershell 이라면 저도 활용해본적이 없고...복잡한 소스들이 있는것만 보아서 어려운줄 알았습니다..다행이 cmd에서 한줄로 UEFI와  Legacy 를

구분할수가 있습니다.

간단히 가능하구나 하는 정도로 참고를 해두셨다가 필요할때 활용을 하시면 좋을것 같습니다

 

5가지 방법을 간단히 정리를 해 보았습니다

 

1. msinfo32 으로 확인하는 방법은 Gui로 할수도 있고 CMD로 할수가 있습니다..cmd에서 txt로 저장하는데 한참이 걸립니다..

   프로그램밍에 활용을 할수가 없는 방법인것 같습니다

2. 디스크관리에서 직접 확인하는 방법입니다..수동으로 진행이 되기 때문에 cmd로는 활용을 할수가 없는 방법이기는 합니다  

3. cmd에서 bcdedit | find "path" 명령어를 활용하는 방법입니다..윈포에서 배치파일로 많이 활용이 되고 있어서 많이 보신 내용입니다

4. cmd에서 wpeutil UpdateBootInfo 실행후 레지값으로 구분하는것을 pe에서 활용되고 있어서 이미 알고 계신것이죠..  

5. PowerShell을 실행후 $env:firmware_type 명령어를 입력하면 UEFI 인지 Legacy 인지 알려줍니다...

 

PowerShell이 명령어에서 firmware_type 단어 덕분에 이제까지 몰랐던것을 알게 되었습니다

오토잇으로 UEFI,Legacy 구분을 해보려고 한적이 있습니다 이때 Windows7에서 구분을 할수가 없어서 포기를 했었습니다

같은 방식인데 오토핫키는 구분이 되기는 하였습니다...오토잇도 에러가 나시는분이 있으신것을 보면 완벽하지는 않았던것 같습니다

 

PowerShell 관련 자료를 찾던중 아래와 같은 글을 보았습니다 소스의 일부입니다

이것을 보기전까지 Windows7에서 오토잇으로 다시 해본다고 열심히 여기저기 찾았다녔습니다.결국 포기를 했습니다.

 

 

 If ($QueryType -eq 'Auto') {

 

        Switch (Get-OSVersion) {

            {$_ -ge [System.Version]'6.2.0.0'} {

                Write-Verbose "OS Version $OSVersion, Windows 8.0, Server 2012 or above -> Using GetFirmwareType() API."

                $QueryType = 'GetFirmwareType'

                Break

            }

 

            {$_ -ge [System.Version]'6.1.0.0'} {

                Write-Verbose "OS Version $OSVersion, Windows 7, Server 2008R2 or above -> Using GetFirmwareEnvironmentVariable() API."

                $QueryType = 'GetFirmwareEnvironmentVariable'

                Break

            }

            Default {

                Write-Verbose "OS Version $OSVersion, Windows Vista, Server 2008 or below -> Using $Env:windir\Panther\setupact.log file."

                $QueryType = 'SetupLog'

                Break

            }

        }

    }

 

 

Windows7에서와 Windows10에서 사용하는 api를 다른것을 활용을 하고 있습니다..윈도우마다 차이가 있나 봅니다

혹시 UEFI 와 Legacy를 구분하시는 프로그램밍을 하셨는데 잘 안되시면 이런 부분도 감안을 하시면 좋을것 같습니다..

Windows7은 이제 사용하시는 분이 많지 않아서 고려의 대상에서 아닐수도 있습니다

 

재미없는 내용들이었습니다. 

 

cmd에서 PowerShell $env:firmware_type 명령어 실행 결과를 변수에 추출하는것은 for 문을 활용하였습니다

 

::  UEFI Legacy 구분

for /f %%a in ('powershell.exe $env:firmware_type') do (Set sMode=%%a)

echo BOOTMODE : %sMode%

 

 

 

추가입니다 //////////////////////////////////////////////////////////////////////////

 

아래의 내용은 댓글로 지후빠님게서 알려주신 내용을 복사해 온것입니다.

지후빠님 덕분에 아주 간단히 구분할수 있게 되었습니다..복 많이 받으십시요

 

 

근데 파워쉘에서 $env는 환경변수라는 말이어서 cmd에서 다음처럼 쉽게 확인이 되네요.

echo %firmware_type%

 

오토핫키에서는

EnvGet, UorB, firmware_type

MsgBox % UorB

 

%FIRMWARE_TYPE% (숨겨진) 환경변수는 윈도우8부터 생긴 것 같습니다. (윈8.1 되고 윈7에선 안됨)

 

 

이제 위에서 for문으로 복잡하게 변수에 넣어서 IF문으로 처리할 필요없이 바로 UEFI가 아닌지 IF문에 바로 사용할수가 있습니다

너무 간단해졌습니다  아래는 간단한 예입니다

 

IF "%firmware_type%" EQU "UEFI" (echo BOOMODE-2 : UEFI)

 

 

 

 

1. Windows7에서 실행 결과 입니다.. 아무것도 나오지 않습니다 

1.jpg

 

2. 사이트 설명대로 Windows10에서는 아래처럼 UEFI 값을 출력합니다..

2.jpg

 

3. powershell 확장자로 된 파일을 구글에서 다운 받았습니다만...잘 안되네요..ps1 파일을 클릭하면 이런 프로그램이 실행이 됩니다..저도 처음보는

  것이라..그냥 구경만 했습니다

  몇줄 안되는것인데도 내용을 알지 못하여서 인지 저에개는 외계어로 보입니다..언젠가..고수님께서 cmd보다는 다양한 기능이 있는 powershell을

  활용하는것이 좋다고 하셨는데...쉽게 접근이 되지 않네요.. 

3.jpg

 

4. 에러가 나면서 결과를 보여 주지 못합니다

4.jpg

 

5. 저만 몰랐죠..우클릭에서 powershell을 실행할수가 있습니다

5.jpg

 

6. 에러가 나기는 합니다만..결과 같은 보여주기는 합니다..실제 활용을 하지 못하는것입니다만..저도 처음 실행해보는것이어서 캡쳐를 하였습니다

6.jpg

 

7. 마무리

UEFI 와 Legacy를 구분하는것에 대한 명령어들을 따로 따로 cmd등에서 보기는 하였습니다..수동으로 확인을 해야 하지만 이렇게 5가지나 되네요

저의 경우 bcdedit 를 활용하는 방식을 사용해보지는 않았습니다...디스크 관리에서 파티션에서 ESP를 구분하는 것처럼 오토잇으로 ESP 파티션을

구분하는것을 활용하기는 합니다..

 

cmd에서 powershell에서 한줄로 UEFI 와 Legacy 를 구분할수 있어서 bcdedit 방법외에도 한가지 방법이 더 생긴것이죠..

혹시 저만 이제서야 알게된것인가요...알고만 계셨다가 필요하실때 활용을 하시면 될것 같습니다

 

 

월요일이 가장 힘든날이죠..오늘 하루도 끝나가네요..

마무리 잘되시길 바랍니다

 

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 사용기/설치기 이용안내 gooddew - - -
10245 기 타| PE에서 Chrome을 링크로 가져오기 [31] 집앞의_큰 778 58 09-13
10244 소프트웨어| [4차 수정]makeiso(WimToIso) [58] sunshine 1699 108 09-13
10243 윈 도 우| Win11_ KB5030219 (OS Build 22621.2283) [11] 4k8k 1171 16 09-13
10242 기 타| Win11 PE 작업줄 우메뉴 정리 [55] 집앞의_큰 1055 93 09-12
10241 기 타| kj 267mb Win11 PE ~~~~~~~~ [673] 딸랑쇠 2759 343 09-10
10240 기 타| (수정) 한글 Sergei Admin PE - 로그인 메세지를 넣어 보았... [40] 왕초보 856 58 09-10
10239 소프트웨어| Windows11 22621.2215 Admin PE - KNM [55] wfja88 1342 78 09-10
10238 기 타| 벤토이(Ventoy) Tela grub 테마를 적용해봤습니다. [6] 스피커 848 15 09-09
10237 윈 도 우| 우인님 22631_2271 PE 사용기 [11] 4k8k 620 23 09-09
10236 기 타| 다시 올립니다. 끌어 붙여서 PE부팅. [72] 집앞의_큰 1534 143 09-08
10235 기 타| 한글 Sergei Admin PE - 자작 GUI 로그인은 실패네요... [10] 왕초보 703 21 09-08
10234 기 타| win11 빌드 -정리 중, [145] 집앞의_큰 1385 196 09-08
10233 기 타| 아래↓ 【수정배포2】의 DVD(Full.iso) PE [73] 딸랑쇠 1857 127 09-08
10232 기 타| 한글 Sergei Admin PE - GUI 로그인을 하여 보았습니다 [11] 왕초보 718 23 09-07
10231 기 타| 한글 Sergei Admin PE - 부팅 과정을 개선(?)하여 보았습니다 [8] 왕초보 671 17 09-07
10230 소프트웨어| [종료]하드웨어인포 단일파일(0907) [12] DengJang 426 18 09-07
10229 기 타| 정보를 보여주는 DesktopInfo.exe 간단한 사용기 입니다 [10] 왕초보 752 24 09-07
10228 기 타| 【수정배포2】 Imagine 1.1.7 update PE [57] 딸랑쇠 2607 131 09-07
10227 소프트웨어| [종료]씨피유Z 단일파일(0906) [10] DengJang 554 27 09-06
10226 소프트웨어| [종료]이미진 업데이트(0906) [13] DengJang 503 25 09-06
XE1.11.6 Layout1.4.8