윈 도 우 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 | - | - | - |
3630 | 소프트웨어| 텍스트를 음성으로 읽기 VBScript [25] | 지후빠 | 1657 | 10 | 03-11 |
3629 | 윈 도 우| 카조님의 PrincePE_V36 버전을 USB에 마무리 하는 방법입... [36] | 하늘은높고 | 3880 | 36 | 03-10 |
3628 | 윈 도 우| 카리스마조님 마지막 PrincePE USB만들기 입니다. [27] | 하늘은높고 | 3416 | 33 | 03-10 |
3627 | 윈 도 우| Win10XPE 시스템 속성 컴퓨터 이름 [12] |
|
2478 | 16 | 03-07 |
3626 | 윈 도 우| PrincePE_V22 [53] |
|
6605 | 59 | 03-06 |
3625 | 윈 도 우| 카리스마조님 PrincePE V21 실행 방법입니다. [19] | 하늘은높고 | 2715 | 19 | 03-06 |
3624 | 윈 도 우| PrincePE_V21 [30] |
|
2449 | 45 | 03-06 |
3623 | 윈 도 우| 카리스마조님 PE Win10XPE34 의 내용설명 비교 [7] | 하늘은높고 | 2255 | 12 | 03-05 |
3622 | 윈 도 우| PrincePE_V20 [52] |
|
2835 | 72 | 03-05 |
3621 | 윈 도 우| 카조님 PE에 파일 넣는 방법입니다. [12] | 하늘은높고 | 2032 | 10 | 03-04 |
3620 | 윈 도 우| 작업표시줄 + 바탕화면 ON/OFF ( CTRL+SHIFT+Z ) [20] |
|
1595 | 4 | 03-04 |
3619 | 윈 도 우| 카리스마조님 Win10XPE34 를 USB에 구워넣기 [11] | 하늘은높고 | 2010 | 5 | 03-04 |
3618 | 윈 도 우| vbs_Merge Lines(Drag-n-drop) [12] |
|
545 | 4 | 03-03 |
3617 | 기 타| 구글에 올라가 있는 내사진 지우는 방법 [1] | 하늘은높고 | 2101 | 4 | 03-03 |
3616 | 모 바 일| 유투브에 내가 올린 동영상 삭제 방법 | 하늘은높고 | 949 | 4 | 03-02 |
3615 | 기 타| PE DPI 조절 스크립트 V1.06ALL [5] | 히이이잌 | 1265 | 14 | 03-02 |
3614 | 윈 도 우| nircmd 활용 2개 [1] |
|
628 | 3 | 03-02 |
3613 | 윈 도 우| 파일/폴더 작업 표시줄에 고정 Pin to Taskbar [17] | 지후빠 | 1394 | 6 | 03-02 |
3612 | 소프트웨어| NirCmd v2.86 명령들 |
|
1170 | 5 | 02-29 |
3611 | 윈 도 우| 가장간단한 ToggleTaskbar(수정) [7] |
|
1181 | 5 | 02-29 |
수고 많으셨습니다. 감사합니다.