제목 : Runonce Boot PE를 VBS로만 작성을 하여 보았습니다.
왕초보강좌란에 레미클로님께서 소개하여 주신 Runonce Boot PE 관련입니다..
복구용 PE를 윈도우에서 부팅하는 방법에 대해서 VBS로 작성이 되어 있는 강좌입니다
일부는...cmd 파일을 만들어 활용을 하고 계십니다
컴퓨터 관련해서 결론은 1개이지만...그 결론에 도달하는 방법은..다양한 경우가 많이 있습니다...
소개를 하여 주신 VBS에 대해 피드백을 하고나서 때에 따라서는 cmd가 편한 경우도 있지만...이번의 경우에는 VBS 소스가 주이고..cmd가 없어도
VBS로만 모든것을 할수 있지 않을까하고...여러가지를 검색을 하여서 VBS로 구성을 하여 보았습니다
VBS에 대해서 관심이 있으신분들만 보아 주십시요...별 내용 없습니다
진행 방식은..사람마다 취향에 따라서 다를수 있을것입니다..
VBS에서 진행하는 과정도 강좌란에서는 wmi에서 BCD 제목들을 먼저 추출하고 나서 제목 선택후 bcdedit /enum OSLOADER에서 GUID 값을 얻는
방식으로 진행이 되어서 처음부터 bcdedit /enum OSLOADER 에서 나온 정보에서 필요한것을 추출해서 활용하는것으로 진행을 하였습니다
참고한 곳들입니다
1. bcdedit /enum OSLOADER 에서 추출한 값들을 배열에 저장후..inputbox에서 입력한 숫자값으로 배열에 있는 값을 가져와서 활용을
합니다 아래는 배열에 대해서 간단히 소개가 되어 있는 곳입니다
[VBS] 배열 선언
2. 여기에 있는 명령어 덕분에 bcdedit /enum OSLOADER 결과값을 txt로 저장하지 않고..바로 활용을 할수가 있었습니다
아래 소스를 활용하시면 앞으로 VBS에서 cmd 결과값을 얻기 위해서 txt로 저장하는 불편이 없을것 같습니다
WshShell.Run
https://starplaying.tistory.com/193
3. bcdedit /enum OSLOADER 결과값에서 필요한 값을 추출할때 필요한 문자열 관련 함수들입니다..자세히 설명이 되어 있습니다
VBScript 함수
https://qkrgns208.tistory.com/76
4. inputbox에 입력된 값이 잘못 되었을때 메세지를 보여주고 나서 다시 inputbox 내용을 보여주기 위해서 Do While 을 활용을 하였습니다
VBScript Loops: Do While, Do Until, While, For Each (Example)
https://www.guru99.com/vbscript-looping.html
VBS가 VB6과 비슷한 부분이 있고 이미 오토잇이나 cmd로 진행을 해보아서 좀더 쉽게 진행을 할수 있었던것 같습니다
위에 소개한 정보들 외에도..구글에서 검색을 하여보면 VBS에 관한 정보들이 많이 있습니다..
입니다님께서 소개하여 주신 MsgBox.Vbs 바이러스 걱정없이 백업,복원에 활용하고 있습니다..어떤것이든..내가 필요한것을 직접 구현을해서
활용할수 있다면 나름대로 편하고 좋은점들이 있습니다 VBS가 어려운 부분도 있지만..자료들이 많아서 쉽게 접근 하실수도 있으실것 같습니다
아래는 bcdedit /enum OSLOADER 로 나온 정보의 일부입니다
Windows 부팅 로더
-------------------
identifier {88263273-127c-46b3-a600-18210a5b6366}
device ramdisk=[boot]\00\BOOT.WIM,{ramdiskoptions}
path \Windows\system32\boot\winload.exe
description Recovery PE
locale en-US
osdevice ramdisk=[boot]\00\BOOT.WIM,{ramdiskoptions}
systemroot \Windows
detecthal Yes
winpe Yes
활용한 정보는 진한 부분 3가지 입니다..
2번 링크에서 배운 소스로 1줄씩 출력될때 마다 문자열 함수들을 이용해서..identifier description 값을 임시 변수에 저장해 놓았다가
winpe 가 있는 경우에만 배열에 저장하고 inputbox에 보여줄 변수에도 넣는 방식으로 하였습니다
복구용 PE 이기 때문에..BCD에서 wim 관련만 inputbox에서 보여주도록 한것입니다
진행하는 방법도 다양하고 변수나 배열을 활용하는 방법도 다양할 것입니다..전체 흐림은 이런 방식으로 하였습니다
Runonce Boot PE 관련해서 VBS 만으로도 구현이 가능하구나 하는 정도로만 참고하여 주십시요
1. BCD에 등록된 것들입니다...윈도우는 필요가 없죠...PE가 2개 등록이 되어 있습니다..
추가입니다
bcdedit /enum OSLOADER 명령어 대신에 bcdedit 명령어만 있는 경우 아래 bootice에서 보이는 메뉴만 나옵니다
Winre.wim 는 정보가 필요없으신 경우에는 간단하게 bcdedit 명령어를 활용하시는것이 한줄이라도 검색을 덜 할것 같습니다
bcdedit /enum 명령어도 bcdedit 명령어와 결과는 같은것 같습니다...bcdedit 명령어에 대해서 저도 정확히 알지 못하여서 어떤것이 좋은지는
확실하지 않습니다..참고만 하여 주십시요
bcdedit 명령어를 사용한 경우 입니다 bootice에 있는 메뉴중에서 pe만 보여주고 있습니다
2. bcdedit /enum OSLOADER 으로 얻은 결과만 활용하기 때문에 txt에 저장할일도 없고 우클릭 메뉴를 등록해주는 복구용PE.reg 파일의 경우
RegConvert 프로그램으로 VBS로 변환후 통채로 넣어 버렸습니다..그래서 파일이 아래 VBS 1개만 있습니다..
bcdedit /enum OSLOADER 결과 에서 문자열을 추출한것을 inputbox 에서 보여주고 있습니다..GUID 값은 그냥 넣어 보았습니다
Winre.wim 도 BCD에 등록이 되어 있어서..아래처럼 표시가 되었습니다
우클릭 메뉴 삭제하는 경우를 위해서 0 번 메뉴가 있습니다..
3. VBS의 inputbox를 이용해서 백업,복원 프로그램을 오래전에 만든적이 있습니다...inputbox에 값을 넣은것에 대해서..여러가지 경우의 수를 생각해야
해서 inputbox 는 조금 복잡한 면이 있습니다
inputbox 에서 보여주고 있는 숫자는 0~3 사이입니다..다른 숫자나 문자가 들어가면 이 부분에 대해서 조치가 있어야 합니다
그리고 취소 버튼을 클릭시에는 VBS를 종료해야 합니다..아무것도 입력하지 않고 확인을 클릭했을때에 대한 조치도 있어야 합니다
inputbox 입력값에 대한 조치중에서 제가 아는것은 이정도 입니다..다른 경우가 있을수도 있습니다.
0~3 이외의 숫자가 입력이 되었을 경우 입니다. 이렇게 다른값을 입력이 된경우 메세지를 보여주고 확인을 하면 다시..inputbox를 보여줍니다
4. 숫자가 아닌 문자가 입력된 경우 입니다.
5. 아무것도 입력하지 않고 확인버튼을 클릭한 경우입니다
6. 우클릭 메뉴를 삭제하기 위해서 0번을 입력한 경우입니다..레지를 삭제합니다
7. 1~3 번을 입력하면 나오는 메세지입니다.. 예를 해야...우클릭에 등록이 되고 PE_Booting.vbs 파일을 무조건 새로 만듭니다
8. 우클릭에 등록이 된 모습입니다
9. 작성된 PE_Booting.vbs 파일 내용입니다.. 우클릭에서 실행하면 메세지가 나오도록 하여 보았습니다
inputbox 에 보이던 GUID 값이 잘 작용이 되었습니다
10. PE_Booting.vbs 실행 모습입니다 작업중이던것을 저장하라고 안내를 하고 있습니다.
11. pe로 부팅까지 하여 보았습니다...
12. 마무리
강좌란에 있는 Runonce Boot PE VBS에 cmd 파일들이 활용이 되고 있어서..VBS로만 구성을 하여 본것입니다.
VBS에서 bcdedit /enum OSLOADER 결과값을 txt로 저장하지 않고 바로 활용할수도 있고..cmd보다 문자열을 추출할수 있는 다양한 함수가 있어서
문자열을 추출하기 위해서 cmd에서 for문을 활용하는것보다는 좀더 쉬울것 같습니다
inputbox에서 입력값에 따라서 다양한 조치를 해야해야 하는것에 대해서 진행을 해보다가..여기까지 와 버렸습니다
실제..VBS 파일 하나로 다 진행이 되네요... 참고만 하여 주십시요
새로온 한주가 시작되었습니다
좋은일만 있으시길 바랍니다
댓글 [22]
왕초보
- 2020.02.17
- 10:47:17
혼자 고생을 하고 계신것 같아서 피트백을 하고나서 VBS로 작업하실때 도움이 될수 있는 링크들이 있어서 댓글에 링크 주소만 달랑 적는것
보다는..실제 가능한것인지..확인을 하기 위해서 저도 적용을 하여 본것입니다..
그리고 작업하시는데 도움이 될수 있을것 같아서..사용기에 정리를 한것입니다..
이 사용기는 실제..레마클로님께서 참고가 되셨으면 하는 마음에 쓴것입니다...모른척 하고 그냥 나혼자만 알고 있어도 되는 일입니다
저는 이미..오토잇이나 cmd로 자동 등록이 되는데 VBS로 따로 진행할 이유가 없기도 합니다.
강좌란에 강좌를 해주셨을때에도..그냥 테트스해보고 모른척하는것이 제일 좋은 방법인데 망설이다..피트백을 한 이유도 작은 도움이라도
될수 있을까 하는 마음에서 입니다..
링크에 소개되어 있는 글들이 아무런 도움이 되지 않는다면 이 사용기를 쓴 진짜 목적이 없어지네요..
VBS에 관심이 있으신분들 또한 링크에 있는 정보들이 좋은 정보여서..VBS를 활용하시는데 참고가 되었으면 하는 바램도 있었습니다
피드백 할때처럼..간단히 VBS 링크 주소만 적어 드리면 될것인데..제가 너무 관심이 많았나 봅니다
앞으로는...이런일이 없도록 하겠습니다..
진행과정이나 함수 활용등은..사람마다 각자 자기 나름대로의 방식이 있을것입니다..
윈포에는 고수님들이 많으신곳이어서 공개할 정도는 되지 못합니다..
양해를 하여 주십시요...
레마클로
- 2020.02.17
- 12:54:06
제가 강좌와 팁란에 올린 글들은 강좌가 아니고 팁 수준입니다.
아이디어제공 정도죠. 깊은 지식도 없어 이리저리 삽질하는 수준입니다.
아이디어가 떠오르면 만들어 공개 합니다.
세사기시절, 한참 컴퓨터가게를 운영할때는
투박한 배치파일과 일본 상용프로그램 알메자(?)로 자동 프로그램설치도 만들어보고 실전에서 사용도 했었고 세사기에 공개도 했었습니다.
사실 여기 고수님들 많이 계시지만 윈도우나 리눅스 만드실 수준 되시는 프로그래머분 계신가요?
이것 저것 배우고 필요한 것 찾고자 오시는 분들이 대부분일겁니다.
물론 재능 기부 역할을 자처하시는 분 들도 계시지만요.
포럼의 역할은 아마추어분들의 지식공유의 장이어야 한다고 봅니다.
부족해서 오는 곳이어야 합니다.
그리고 얻어 갈수 있는 곳이어야 합니다.
이유야 어찌됐든 고수님들이 떠나가는 그런 포럼이 되어선 안됩니다.
따로 무자료 사용설치기, 무자료 스크린샷, 무자료 강좌란이 만들어 지면 열어보는 분들이 거의 없지않을까????
컴퓨터에 관심있는 분들이 방문을 해서 지식을 즐기는 마당이 되기를 기대 해 봅니다.
왕초보
- 2020.02.17
- 14:09:00
윈포에는 다양한 분들이 있습니다..
좋은 작품을 만들어서 베풀어 주시는분, 고수님들의 작품에 대해서 피트백을 열심히 해주시는분, 좋은 자료를 찾아서 소개하여주시는분,
바쁜일정으로 눈팅만 하시는분들 각가 자기 기준에 맞추어서 활용을 하고 계십니다
가끔...고수님들께서...새로운 시도를 하신것을 소개도 하여 주시기도 합니다..자료가 있는 경우도 있고 없는 경우도 있습니다
자료가 없지만..이런것이 가능하다는 이정표가 되어 주기 때문에...고수님의 작품은 그 자체로도 귀한 정보가 됩니다.
어떤 분들은..사용기나 작품을 소개를 하신분들께 힘이 되시라고감사의 댓글을 남겨주시기도 합니다.
이렇게...각자 자기 기준에 맞추어서 다양한 사람이 활동하는 곳이 윈포입니다..
저의 기준에는 강좌란에 글을 써주셨을때 작은 도움이라도 될수 있을것 같아서 테스트해가면서 피드백을 을 한것이고..사용기에 관련 정보들을
모아서 소개하여 드린것도 이런 정보들이 VBS로 작업하실때 도움이 될수 있을것 같아서 정리를 한것입니다.
강좌란에...VBS 고수님께서 소스관련해서 지후빠님께서 소스를 수정하여 주셨습니다..
지후빠님 기준에는..소스를 수정해 드리는것이 기준이시라면 이미 VBS에 대해서 하실줄 아시는 분이라서 아래처럼 링크를 해드리는것이
저의 기준일것입니다
사용기에 소개해 드린 링크들이 아무런 도움이 되지 않는다면...저로써는 쓸데없는 짓을 한것이 될것 같습니다.
강좌란의 댓글에 에러나시는 부분이 있는것으로 알고 있습니다...
제가 소개하여 드린 아래 링크에 배열 선언에 대한 내용이 있습니다. 한번 읽어 보셨다면..해결이 되실것 같습니다.
저도 아래 링크에 있는것을 보고 그대로 사용을 했으니까요
[VBS] 배열 선언
윈도우에서 복구 PE로 부팅하는것 관련해서는 히이이잌님 Windows_PE_설치_스크립트_ V5.30 작품에 이미 전자동으로 구현이 되어 있습니다
하이이잌님께서 댓글로 소개하여 주신 내용도 전해드린적이 있습니다..실제 도움이 되지 못한것 같습니다
cmd 관련해서 하이이잌님께 작품을 참고하시면...해결하고 싶었던 부분들에 대해서 해결이 가능하실것 같습니다
강좌란에...좋은 강좌를 해주셨습니다...
그런데..내가 조금 더 안다고 새로 만들어서 공개를 해버리면...강좌란에서 진행하시는것이 무슨 의미가 있을까요..
cmd 결과값을 txt에 저장하지 않고 하는 방법은..저도 이번에 처음 배워서 적용을 해본것이어서 링크 주소를 소개할때..VBS를 많이 활용을
하고 계셔서 진짜 좋아하실줄 알았습니다...
나름대로..좋은 정보를 소개해 드린다고 생각을 했었는데...열심히 찾은 정보에 대해서는..아무런 말씀이 없으시네요.
제가 소개하여 드린 링크들에 있는 정보가 그만한 가치가 없나 봅니다..저는 도움이 될수 있는 정보들이라고 생각을 했었는데요..
결과물을 공개하지 않아서 불편하시다면..강좌란에 글을 보고..테스트 해서 피트백도 하고 자료를 찾아서..실제 구현해보고 정보들을 정리해서
소개해 드린 저 또한 서운한 마음이 있습니다..
만들어진 결과물은 지식이고...새로운 것을 소개하여 드리는 링크는 지식이 아닌가 봅니다..저는..cmd 결과를 txt로 저장하지 않고 할수 있는
방법을 알게되어서 귀한것을 배웠다고 좋아했는데요
소개하여 드린 링크들은 앞으로도 VBS를 하실때 도움이 될수 있는것이라고 생각했는데..쓸데없는 생각이었나 봅니다.
윈포에서 여러가지 일들로 자료를 공개하지 않는것을 이미 알고 계실것입니다..
%카리스마*%님이 언급을 하시기도 했고요...
공개하지 않는것을 아시면서도 공개를 해달라고 하신다고해서...공개할수 있었다면 이미 사용기에 공개를 하였을것입니다
사용기를 쓰면서 누구나 아는것들이지만..공개할수 있는것들은 공개를 하였습니다.
각자의 사정이 있을것입니다...그런 부분은..나와 다르다고해서..강요할수 없는 부분들일것입니다..그 사람 나름대로..고충이 있지 않을까요
원하시는 결과를 얻으실수 있으시길 바랍니다.
__sZ
- 2020.02.17
- 09:51:34
윈포에 눈을 두고 살다시피 하는 분이..
원작자가 나서서 공개해 달라고 해도...!
혹시
이 댓글 때문에 눈치 보여서 공개할런지도
공개하던가 말던가 관심도 없지만요..
왕초보
- 2020.02.17
- 10:53:18
강좌란에 공개된 자료에 대해서 피드백을 하고 다른 방식으로 진행을 할수가 있어서 관련 자료를 찾아서 소개한것입니다
관련 자료가..실제 적용이 가능한지 확인하기 위해서 테스트 하여 본것입니다
강좌란에 있는것하고는 다른 방식이어서..강좌해 주신 내용과는 진행방법이 다릅니다.
강좌란에 강좌를 해주신 내용을 가지고 다른 작품에 활용을 하면 그 작품의 원제작자는 강좌를 해주신분이 되나 보네요..
공개할수 있는것이면...사용기에 관련 정보들을 항상 공개를 합니다..
고수님들이 많으신 윈포여서 공개할정도는 되지 못합니다..
이어도
- 2020.02.17
- 10:14:08
윈도우 부팅이 안되는 상황일때도 PE는 부팅이 되나요?
된다면 대박이네요..... 다양한 환경에서 테스트가 되도록
작품 공개를 정중히 요청드립니다^^
왕초보
- 2020.02.17
- 10:23:00
BCD에 PE가 등록이 된것이어서 윈도우 자체가 부팅이 되지 않은다면..PE로 부팅이 되지 않을것 같습니다
윈도우로 부팅이 되지 않을때를 위해서 Grub나 Grub2로 구성을 하는것이 좋은 방법인것 같습니다
이미 윈도우에 복구용 PE 관련해서는 다른 고수님들께 쓰신 사용기들이 있습니다..참고하시면 도움이 되실것 같습니다
왕초보
- 2020.02.17
- 18:56:53
사용기에 소개해 드린 링크에 있는것들을 조합을 한것 뿐입니다
진짜 중요한것은..링크에 있는 정보들입니다...
엑셀등 항상 어려운 부분들에 대해서 자세히 강좌를 하여 주셔서 감사합니다
편안하신 시간 되시길 바랍니다..
성공하셨네요.
수고하셨구요. ^^ 파일도 공개해 주세요.
유용하게 사용될겁니다...