강좌 / 팁
윈 도 우 집앞의_큰나무님의 "우클 PE 부팅" 원클릭화 (TEST겸)
2020.01.23 14:23
링크로 이동......
https://windowsforum.kr/lecture/12760209
댓글 [5]
-
왕초보 2020.01.23 17:09
-
레마클로 2020.01.23 18:34 고맙습니다.^^
-
notaking 2020.01.23 21:55
아까.. 좀전에 노트북 백업 해놓은거 윈도우로 복구 할려니 현제시스템에서 복구가 안된다고 해서 마우스 우클릭 pe부팅 메뉴가
있었으면 했는데... 바로 이렇게 좋은 소개를 해주시니.. 깜짝 놀랐습니다... . ^_^;
-
UU自適 2020.01.25 17:23
좋은 툴 감사합니다.
bcd에 pe가 먼저 등록되어있어야 하는 건가요?
등록도 안 된 상태에서 자동 등록하고 1회 부팅하는 건가요?
-
레마클로 2020.01.26 00:32 bcd에 pe가 먼저 등록되어있어야 합니다.
소개하여 주신 VBS로 잘 됩니다..
좋은 선물을 주셔서 감사합니다.
하이이잌님께서..댓글로 남겨주신 내용이 있습니다..이후에..자동으로 GUID를 알아내고 cmd를 만드는것까지 완성을 하신것으로
알고 있습니다..,
https://windowsforum.kr/index.php?mid=review&search_target=nick_name&search_keyword=%EC%A7%91%EC%95%9E%EC%9D%98_%ED%81%B0%EB%82%98%EB%AC%B4&document_srl=12660961&cpage=1#comment
아래의 내용을 위의 댓글에서 가져온것입니다.
테스트해보세요.
BCD에 PE가 딱 한개만 있어야합니다.
bcedit.cmd
echo off
if not defined in_subprocess (cmd /k set in_subprocess=y ^& %0 %*) & exit )
setlocal enabledelayedexpansion
for /f "tokens=1,2,3" %%a in ('bcdedit /enum OSLOADER') do (
if %%a EQU identifier set GUID=%%b
if %%a EQU winpe IF %%b EQU Yes echo !GUID!>%temp%\GUID.txt
)
for /f "tokens=1 usebackq" %%a in ("%temp%\GUID.txt") do SET PEGUID=%%a
echo PE의 GUID는 %PEGUID% 입니다.
pause
원리는 For /f 명령이 위에서 아래로부터 내려오다가
identifier에서 한번 걸리고, winpe에서 걸린 순간에 임시파일로 빼내는겁니다.
즉, 두번째 걸리는 조건을 winpe / yes가 아니라 부팅메뉴의 이름이라던가 다른 특정할 수 있는 요소로 변경하는게 더 좋을수도 있습니다.
예) if %%a EQU description IF %%b EQU WinPE echo !GUID!>%temp%\GUID.txt
또는, 배치파일에서 부팅 항목을 등록하는 순간에 낚아채는 방법도 있습니다.
setlocal enabledelayedexpansion
for /f "tokens=1-5 usebackq delims=-" %%a in (`bcdedit /create /d "%부팅항목이 표시될 이름%" /기타 옵션 등..부팅항목 추가 명령`) do (
set first=%%a
set last=%%e
set peguid=!first:~-9!-%%b-%%c-%%d-!last:~0,13!
)
echo PE GUID는 %peguid% 입니다.