윈 도 우 RunOnceBoot VBScript Only
2020.02.20 12:39
안녕하세요? 이전글을 읽으면서 정리 겸 코드를 좀 단순화 시키려다, (이해하는데 한참 걸렸습니다.^^)
제가 BCD 관련 CMD 명령을 잘몰라서 VBS로만 정리해 보았습니다. RunOnceBoot.vbs
레마클로님 글; https://windowsforum.kr/lecture/12852317
왕초보님 글; https://windowsforum.kr/gallery/12857714
저는 PE가 등록되어 있지 않아서 테스트를 못하였습니다. 이상 있으면 알려주십시오.
글을 순차적으로 자세히 읽지 못해서 의도에 부합하는지는 모르겠습니다.
- 부팅항목 중 선택한 Entry로 1회성 부팅하려는 목적이라 이해하였습니다.
단순한 용도라서 다양한 에러 처리 루틴 등은 무시하였습니다.
원하시면 수정하여 활용해 보실길 바랍니다. 개선된 것은 공유해주시면 열심히 배우겠습니다. ^^;
BcdStore class는 아래 링크를 참고하였는데 잘 모르겠습니다. 레마클로님 스크립트를 보다 필요한 것만 건졌습니다.^^
- https://docs.microsoft.com/en-us/previous-versions/windows/desktop/bcd/bcdstore
제 부팅 항목이 좀 엉망인듯 합니다. ^^ 점심시간 잠깐씩 컴터(해찰)하는 거라 방치되는 것이 늘어나는 듯...
댓글 [20]
-
cungice 2020.02.20 13:11
-
레마클로 2020.02.20 13:30 감사합니다.^^
-
레마클로 2020.02.20 14:02 점심 먹고 테스트 했습니다.
잘 작동합니다. 고맙습니다.^^
-
지후빠 2020.02.20 14:12
덕분에 또 배웠습니다. ^^ 혹시 스샷 한장 올려주실수 있을까요? 실행 창 좀 확인해보려구요.
제 것은 너무 단순해서요. ㅈㅅ
-
지니제스트 2020.02.20 14:20
제것도 단순하지만... 잘 작동합니다. 2번항목 등록해서 해봤습니다.
-
지후빠 2020.02.20 19:43
감사합니다.^^ 많은 수가 등록되신 분에게 어떻게 나올까 궁금해서요.
-
레마클로 2020.02.20 14:49 -
지후빠 2020.02.20 20:06
감사합니다.^^ 항목이 좀 많은 경우 어떨까 궁금합니다. ㅎ_ㅎ
-
현토리 2020.02.20 14:10
좋네요. vb도 공부좀 하고 싶은데 머리가 ...
감사합니다.
-
미래윈도우 2020.02.20 14:32 누구와는 다르게 대인배 이십니다. 이렇게 자료도 공유 해주시고. 감사합니다.
-
레마클로 2020.02.20 14:46 제가 진행하던게 있는데 한번 봐주세요. 투박하다고 흉보지마시고...
창피하지만 점검 해 주세요.^^
bootmgr의 displayorder list를 이용한 방법입니다.
Const BootMgrId = "{9dea862c-5cdd-4e70-acc1-f32b344d4795}"
Const DisplayOrderType = &h24000001
Const BcdLibraryString_Description = &h12000004
Const WindowsImages = &h10200003
set BcdStoreClass = GetObject("winmgmts:{impersonationlevel=impersonate,(Backup,Restore)}!" & "root/wmi:BcdStore")
BcdStoreClass.OpenStore"",BcdStore
BcdStore.OpenObject BootMgrId, BootMgr
Dim Descrplist(9)
BcdStore.EnumerateObjects WindowsImages, colObjects
For Each objObject in colObjects
objObject.GetElement BcdLibraryString_Description, objElement
i = i + 1
Descrplist(i) = objElement.String
strMsg = strMsg & i & ". " & Descrplist(i) & Chr(13) & Chr(13) & Chr(13)
Next
Dim BootList(9)
BootMgr.GetElement DisplayOrderType, BootOrderList
For each OSIdentifier in BootOrderList.Ids
j = j + 1
BootList(j)= OSIdentifier
strMsg = strMsg & Chr(9) & BootList(j) & Chr(13)
Next
x = inputbox(strMsg, "복구용 PE 선택" , " 키보드로 숫자 입력 후 엔터 ")
If IsNumeric(x) Then x = CByte(x)
If x <= i Then
strTXT = BootList(x)
WScript.Echo strTXT
End If
-
지후빠 2020.02.20 20:23
문제 없어 보입니다. 다만 각 PC 마다 BootMgrId가 달라서 다른 PC에서 사용할때 수작업이 조금 필요할 것 같습니다. ^&^
-
레마클로 2020.02.20 20:49 감사합니다.
BootMgrId는 ...
BCDEdit.exe 에서 사용되는 잘 알려진 식별자를 정리한 표입니다.
잘 알려진 식별자 - GUID 식별자
{bootmgr} {9dea862c-5cdd-4e70-acc1-f32b344d4795}
Windows 부팅 관리자 항목을 지정합니다.
{fwbootmgr} {a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}
특별히 EFI(Extensible Firmware Interface) 사양을 구현하는 시스템에서 펌웨어 부팅 관리자 항목을 지정합니다.
{memdiag} {b2721d73-1db4-4c62-bf78-c548a880142d}
메모리 진단 응용 프로그램 항목을 지정합니다.
{ntldr} or {legacy} {466f5a88-0af2-4f76-9038-095b170dc21c}
Windows Vista 이전의 운영 체제를 시작하는 데 사용할 수 있는 OS 로더(Ntldr)를 지정합니다.
{current} * {fa926493-6f1c-4193-a414-58f0b2456d1e}
현재 실행 중인 운영 체제에 대한 운영 체제 부팅 항목에 해당하는 가상 식별자를 지정합니다.
{default} * {1cae1eb7-a0df-4d4d-9851-4860e34ef535}
부팅 관리자 기본 응용 프로그램 항목에 해당하는 가상 식별자를 지정합니다.
{ramdiskoptions} {ae5534e0-a924-466c-b836-758539a3ee3a}
RAM 디스크 장치를 위한 부팅 관리자에 필요한 추가 옵션이 들어 있습니다.
{dbgsettings} {4636856e-540f-4170-a130-a84776f4c654}
부팅 응용 프로그램 항목에서 상속할 수 있는 전역 디버거 설정이 들어 있습니다.
{emssettings} {0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}
부팅 응용 프로그램 항목에서 상속할 수 있는 전역 응급 관리 서비스 설정이 들어 있습니다.
{badmemory} {5189b25c-5558-4bf2-bca4-289b11bd29e2}
부팅 응용 프로그램 항목에서 상속할 수 있는 전역 RAM 결함 목록이 들어 있습니다.
{globalsettings} {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
모든 부팅 응용 프로그램 항목에서 상속해야 하는 전역 설정 모음이 들어 있습니다.
{bootloadersettings} {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
모든 Windows 부팅 로더 응용 프로그램 항목에서 상속해야 하는 전역 설정 모음이 들어 있습니다.
{resumeloadersettings} {1afa9c49-16ab-4a5c-901b-212802da9460}
최대 절전 모드 응용 프로그램 항목의 모든 Windows 다시 시작에서 상속해야 하는 전역 설정 모음이 들어 있습니다.
{hypervisorsettings} {7ff607e0-4395-11db-b0de-0800200c9a66}
모든 OS 로더 항목에서 상속할 수 있는 하이퍼바이저 설정이 들어 있습니다.
* {current} 와 {default} 의 GUID 식별자는 가상 식별자로 BCDEdit.exe 에서 해당 GUID 식별자는 작동하지 않습니다.
-
레마클로 2020.02.20 20:52 input박스에 아래처럼 나오게는 안되는 건가요?
1.os명
guid
2.os명
guid
3.os명
guid
-
레마클로 2020.02.20 21:01 os 하나 더 추가후 스샷입니다.
-
지후빠 2020.02.21 10:27
레마클로님 guid-test2.vbs 수정하여 보았습니다. guid-test2-edited.vbs
저의 경우는 Descrplist와 BootList의 갯수 같게 나오지 않는 문제가 있는 것 같습니다.
논리상 Descrplist와 BootList 매치가 문제 없다면, 다음 처럼 메시지가 나오도록 수정하여 보았습니다.
1.os명
guid
2.os명
guid
3.os명
guid
-
레마클로 2020.02.21 11:27 감사합니다^^
-
왕초보 2020.02.21 10:28
BcdStore class라는것도 있었네요...
새로운것을 알게 되었습니다
감사합니다.
-
레마클로 2020.02.21 11:34 제가 식당 일 때문에 시간이 많질않아 좀 가르쳐달라는 표현이었는데 딱잘라 안된다(?..^^) 하시니
아주 조~~~오금 서운했었습니다.
항상 날카로운 분석력을 더욱 더 발휘 해 주시기 바랍니다.
-
지후빠 2020.02.21 13:22
소 뒷 걸음질 치다 쥐 잡기식 입니다.^^
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
3583 | 윈 도 우| 모든 파일 또는 폴더를 작업 표시줄에 고정 [3] |
|
1526 | 8 | 02-29 |
3582 | 기 타| [부팅영역] FAT12, FAT16, FAT32, exFAT 호환성 비교표 [2] | 흘러가듯이 | 1340 | 8 | 02-28 |
3581 | 윈 도 우| 작업표시줄자동숨김 on/off [10] |
|
1634 | 5 | 02-27 |
3580 | 윈 도 우| 컴퓨터 비번 입력 없이 부팅하기 [9] | 하늘은높고 | 3972 | 3 | 02-27 |
3579 | 기 타| LinuxMint LMDE 4 “Debbie” 미리보기 [5] | VenusGirl | 1884 | 11 | 02-26 |
3578 | 윈 도 우| %카리스마조%님 PE를 UEFI 부팅 USB만들기 [12] | 하늘은높고 | 3526 | 8 | 02-24 |
3577 | 소프트웨어| Total Commander에서 클라우드 접속하기 [4] | VenusGirl | 1953 | 10 | 02-22 |
3576 | 윈 도 우| rsimagex,gimagex에서 vmware map한 드라이브 안보일때 [4] | 봉냐 | 687 | 3 | 02-21 |
3575 | 윈 도 우| WIM파일로 PE 실행 해보기 [8] | 하늘은높고 | 2533 | 19 | 02-20 |
» | 윈 도 우| RunOnceBoot VBScript Only [20] | 지후빠 | 1324 | 11 | 02-20 |
3573 | 윈 도 우| EasyBCD를 사용한 PE부팅 방법 [10] | 하늘은높고 | 2189 | 14 | 02-20 |
3572 | 윈 도 우| 왕초보가 PE만들기 도전 [10] | 하늘은높고 | 2600 | 15 | 02-19 |
3571 | 소프트웨어| Win10XPE27 파일을 USB에 넣는 과정입니다. [43] | 하늘은높고 | 5257 | 39 | 02-16 |
3570 | 소프트웨어| 크롬 깔끔하지만 복잡한 설치 | 누군가 | 2294 | 6 | 02-16 |
3569 | 윈 도 우| PrincePE_V19 [53] |
|
5145 | 65 | 02-15 |
3568 | 윈 도 우| 윈도우 10 작업표시줄 날짜 모양 바꿔보기 [11] | 하늘은높고 | 2907 | 9 | 02-14 |
3567 | 소프트웨어| [Tip] 종류별 유용한 윈도우 프로그램 총정리 [34] | Drivel | 4737 | 34 | 02-13 |
3566 | 윈 도 우| 탐색기창.익스.크롬창 등등... 원하는자리 배치 [2] | 메인보드 | 1735 | 12 | 02-13 |
3565 | 윈 도 우| PE 드라이버 통합하기 V1.03 [41] | 히이이잌 | 5378 | 53 | 02-09 |
3564 | 모 바 일| [Tip] QR 코드로 와이파이 SSID와 비번 입력하기 [5] | asklee | 1892 | 8 | 02-09 |
수고 많으셨습니다. 감사합니다.