제목 : WimTools beta1 일부분 테스트
지후빠안녕하세요. 기존 WimBootOnce를 새 이름 WimTools로 갱신해보는 중입니다.
qnd님이 아이디어를 주시어 "1-6 다른 윈도우 부트 메뉴로 1회 부팅 + 제거.cmd"를 올려 봅니다.
qnd님 매번 감사합니다. ^^
테스트할 몇 가지도 올려 봅니다. 가능하신 분은 오류 여부 댓글로 부탁드립니다. ^^ PE에서도 가능할지...
- 이전 참고 링크 ; https://windowsforum.kr/gallery/19624548
-. 1-6 다른 윈도우 부트 메뉴로 1회 부팅 + 제거.cmd ; 아래 스샷, bcdedit/findstr/Wselect.exe 이용
-. add-Wim-to-BCD.cmd ; add-Wim-to-BCD.cmd "wim full path.wim" 형태로 실행, 경로에 괄호X, bcdedit/findstr/wimlib 이용
-. fix-ramdiskoptions.cmd ; 단독 실행, boot.sdi 경로 추가나 수정
-. WimBootOnce.cmd ; WimBootOnce.cmd "wim full path.wim" 형태로 실행, bcdedit/findstr/wimlib 이용
-. WimBootOnce.vbs ; 단독실행, 또는 WimBootOnce.vbs "wim full path.wim" 형태로 실행, TBWinPE.exe 이용
-. wimlib-imagex.exe / libwim-15.dll / Wselect.exe
1-6 다른 윈도우 부트 메뉴로 1회 부팅 + 제거.cmd 실행하면 부팅 항목 나열, 끝에 제거 기능 추가
부팅 항목 제거(스샷후 문구 수정됨) 클릭, 항목 선택하면
해당 항목 제거되고 다시 메뉴 나열, 다시 제거 누르고
1번 항목 (기본 윈도우) 클릭하면
1번 항목은 제거할 수 없게함.
아무 키나 누르면 다시 항목 나열
창 닫으면 취소로 종료
편히 주무십시오. ^^
댓글 [27]
지니제스트
- 2023.07.12
- 00:24:10
cmd가 외계어로 보이네요... 이건 낫놓고 ㄱ 자도 못읽는다는 말이 절로 나오네요.
cmd가 이렇게 고급언어였나 다시한번 느낍니다... 너무 간결하게 처리하는것도 놀랍구요.
오토잇만 할 줄 아는 사람으로써, cmd의 기능이 이렇게 부러울 수도 있다는걸 뼈저리게 느끼네요.
수고 많으셨습니다.
지후빠
- 2023.07.12
- 09:44:25
특수 문자를 사용해서 그렇게 보이지, 천천히 보시면 다 아시는 내용일 것입니다.^^
저는 상대적으로 오토잇을 가장 먼저 배운 것 같은데 사용을 안하니 기존 코드 수정하는 정도에 머물러 있습니다.ㅜㅜ
그나저나 못짱님은 왜 이렇게 소식이 없으신지.... ㅎ~
-0-
- 2023.07.12
- 07:27:27
와! WimBootOnce 기능 좋아졌네요.
물론 PC용으로 만들어졌지만 PE에서도 잘되는데 프린스PE에서는 안되더군요.
Dism.exe, findstr.exe, Dism.exe.mui, findstr.exe.mui 이외의도 파일이 필요한 건가요?
아님 어드민 실행 명령어 때문인가요?
지후빠
- 2023.07.12
- 09:49:36
전에 배치 파일로만 완성할때 dism을 사용하였는데, 이번에 78repack과 같은 곳에 둘 것이라서 wimlib-image로 바꿨습니다.^^
어느 정도 완성되면 PE에서도 작동 테스트하려고 합니다. 아직은 갈길이 먼 것 같습니다.
포럼99
- 2023.07.12
- 07:46:56
BOOTool_bcd로 몀몀은 어떠신지...
BootAll.ahk란 이름도 본적이 있습니다.
제거아이템 + 기본값으로 설정까지 넣어주시면 ..
바뀐 부분이 dism에서 imagex.exe군요.
저도 생각했던 아이디언데...
wimlib-imagex dir "%$w%" | findstr /i /c:"%$path%" || set $path=%$path:2=2\boot%
지후빠
- 2023.07.12
- 09:51:51
wimboot, wimconvert/optimize, wimextract 등을 모아놓을 것이라서 이름을 자칭 WimTools로 해봤습니다.
딱히 이거다 싶은 것이 없어서요. WimUtils, WimCmd 등을 생각해봤습니다만... ㅎ~
의견 감사합니다.^^
포럼99
- 2023.07.12
- 18:02:32
한가지 질문드립니다.
아래 배치파일 작성하고 pe.wim을 드래그앤드랍하면
"FINDSTR: /c 다음에 인수가 없습니다."라고 에러...... 뜨는 이유를 모르겠습니다.
@echo off & prompt $s & color 2f & setlocal & if {%1}=={} exit /b
net session >nul 2>&1 || (powershell start -verb runas '%0' '%1' & exit)
if {%2}=={} (set $w=%~1) else (set $w=%*)
wimlib-imagex dir "%$w%" | findstr /i /c:"%$path%" || set $path=%$path:2=2\boot%
echo. %$path%
pause
지후빠
- 2023.07.12
- 20:14:01
두번째 줄에 다음을 추가해 보십시오. 배치파일 폴더에 wimlib-image.exe libwim-15.dll 두 파일이 있어야 합니다.
pushd %~dp0
지후빠
- 2023.07.12
- 20:30:00
for /f "tokens=1*" %%a in ('%$b% /enum {current} ^| findstr "path locale"') do set $%%a=%%b
이것이 필요합니다. 여기서 %$path% 환경변수가 생성됩니다.
포럼99
- 2023.07.12
- 20:33:18
넵. 다시 시도해 보겠습니다.
%$path% 때문에 많이 헤맸습니다.
잘 작동합니다.^^
\Windows\system32\boot\winload.efi
포럼99
- 2023.07.12
- 20:52:35
set "$b=\\%computername%\c$\windows\system32\bcdedit.exe" & echo on & cls
for /f "tokens=1*" %%a in ('%$b% /enum {current} ^| findstr "path locale"') do set $%%a=%%b
네트워크 경로를 찾지 못했습니다. 에러ㅠㅠ
그래서 아래를 추가 해서 성공했습니다.
for /f "tokens=1*" %%a in ('bcdedit /enum {current} ^| findstr "path locale"') do set $%%a=%%b
포럼99
- 2023.07.12
- 23:32:12
왕초보만 보세요. 저도 왕초보ㅠㅠ
WimBootOnce.cmd 주석처리+변수수정 해봤습니다.
-------------------------------------------------------------
@echo off & prompt $s & color 2f & setlocal & if {%1}=={} exit /b
net session >nul 2>&1 || (powershell start -verb runas '%0' '%1' & exit)
if {%2}=={} (set $w=%~1) else (set $w=%*)
for %%a in ("%$w%") do set "$n=%%~na" & set $d=%%~da
set "$be=\\%computername%\c$\windows\system32\bcdedit.exe" & echo on & cls
for /f "tokens=2 delims=:" %%a in ('chcp') do if "%%a"==" 949" (set $t=1) else (set $t=3)
for /f "tokens=%$t%" %%a in ('%$be% /create /d "%$n%" /application osloader') do set $guid=%%a
for /f "tokens=1*" %%a in ('%$be% /enum {current} ^| findstr "path locale"') do set $%%a=%%b
rem 위 라인에서 %$path%, %$locale% 환경변수가 생성됨
wimlib-imagex dir "%$w%" | findstr /i /c:"%$path%" || set $path=%$path:2=2\boot%
%$be% /set %$guid% device ramdisk=[%$d%]"%$w:~2%,{ramdiskoptions}
%$be% /set %$guid% path %$path%
%$be% /set %$guid% locale %$locale%
%$be% /set %$guid% inherit {bootloadersettings}
%$be% /set %$guid% nointegritychecks Yes
%$be% /set %$guid% osdevice ramdisk=[%$d%]"%$w:~2%,{ramdiskoptions}
%$be% /set %$guid% systemroot \Windows
%$be% /set %$guid% detecthal Yes
%$be% /set %$guid% winpe Yes
%$be% /bootsequence %$guid%
@reg add HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce /v "*1" /d "bcdedit /delete %$guid%" /f
@endlocal&echo.&echo.3초 후 재부팅합니다.&pause&shutdown.exe /r /t 3&pecmd shut r
깜빡하고 TBWinPE.exe 첨부하지 않아서 WimBootOnce.vbs 테스트는 qnd님 게시물
https://windowsforum.kr/review/19629879 첨부파일로 테스트하시면 될 것 같습니다.
https://windowsforum.kr/gallery/19624548 댓글에 사용법 있습니다.