설치 / 사용기

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

2021.01.04 16:43

왕초보 조회:1752 추천: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 - - -
1397 기 타| 그 P2 설명 하나 [30] 집앞의_큰 844 25 05-20
1396 기 타| (첨부)FSCapture 켑처 저장시 [33] 집앞의_큰 1202 44 05-19
1395 기 타| cpu 서멀구리스 발랐어요! [6] 펭수대스타 754 0 05-18
1394 기 타| [큰나*]님의 PE 실컴에서 사용기 [13] 안정 723 9 05-17
1393 기 타| Win10XPE_x64_2105 윈도우10 10.0.19043.985 PE 실컴으로.. [6] 멋진거지 867 7 05-17
1392 기 타| SystemPE 실컴으로.. [6] 멋진거지 745 6 05-17
1391 기 타| [종료]AOMEI Backupper Technician Plus 6.5.1 [50] 첨임다 931 63 05-17
1390 기 타| PE 하자 보수 완료 [394] 집앞의_큰 4000 213 05-16
1389 기 타| [종료]수정된 WINDOWS 10 New_985.iso [464] 첨임다 3054 159 05-14
1388 기 타| (종료) 11세대 드라이버 통합 PE [34] RainbowCha 2544 29 05-14
1387 기 타| 설치 뼈대 문제... [8] 첨임다 1217 14 05-14
1386 기 타| (종료) 2% 부족한 왕자Pe [324] RainbowCha 2504 188 05-13
1385 기 타| 가상-VHD 만들어 ventoy 심기 [189] 첨임다 1609 94 05-13
1384 기 타| [종료]단일MTUI_PE(21H1-19043.985).iso [413] 첨임다 1527 151 05-13
1383 기 타| [종료]MTUI-자동부팅(21H1-19043.985).zip [328] 첨임다 1032 136 05-13
1382 기 타| [종료]MTUI-OUT_PE(21H1-19043.985).iso [275] 첨임다 958 117 05-13
1381 기 타| [종료]JU-ChumPE(21H1-19043.985)_iso [285] 첨임다 888 119 05-13
1380 기 타| [종료]KJ-ChumPE(21H1-19043.985)_iso [318] 첨임다 1077 126 05-13
1379 기 타| [종료]깔끔이-PE(21H1-19043.985)_iso [303] 첨임다 1200 127 05-13
1378 기 타| [종료]WTG-VHD_(21H1-19043.985).zip [275] 첨임다 775 119 05-13
XE1.11.6 Layout1.4.8