VBScript 의 실행 파일인 .VBS 파일은 위에서 보시는 것과 같이 자체적으로 실행될 때는 오직 일반 권한으로만 실행됩니다. 즉, 특별히 관리자 권한으로 실행된 프로그램이나 배치 파일, 작업 스케줄러에서 호출하지 않는 이상 단독으로 실행될 때는 무조건 일반 권한으로만 실행할 수 있다는 의미입니다.

그래서 VBS 파일에서 배치 파일을 호출하는데 해당 배치 파일의 실행에는 관리자 권한이 필요할 때라면 조금 난감하죠. 그래서 이러한 VBS 파일을 관리자 권한으로 실행할 수 있는 컨텍스트 메뉴를 추가하는 것은 물론, 이와 함께 무조건 관리자 권한으로 실행하도록 만들 수도 있습니다.

이는 아래의 배치 파일을 다운로드 받으셔서 관리자 권한으로 실행하신 후 원하는 작업을 선택하시면 됩니다. [* 참고로 이 배치 파일은 윈도우 비스타 이후의 윈도우들에 적용할 수 있습니다.]




해당 배치 파일을 통해 관리자 권한 실행 메뉴를 등록하면 아래와 같이 .VBS 파일에 관리자 권한으로 실행 메뉴가 추가됩니다.

기본 관리자 권한 실행 설정기본 일반 권한 실행 설정


간단하죠? 잘 사용하시고요. 아래는 배치 파일에서 처리하는 해당 레지스트리에 대한 설명입니다.

※ 관리자 권한으로 실행 메뉴 등록

이것은 아래와 같은 레지스트리를 통해 구성하게 됩니다.

[HKEY_CLASSES_ROOT\VBSFile\Shell\Runas]
@="관리자 권한으로 실행"
[HKEY_CLASSES_ROOT\VBSFile\Shell\Runas\Command]
@=hex(2):22,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,57,00,\
  73,00,63,00,72,00,69,00,70,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,\
  00,25,00,31,00,22,00,20,00,25,00,2a,00,00,00

이 때 Command 키의 (기본값) 값은 레지스트리 등록 파일 .reg 에서는 위와 같이 헥스 값으로 표현이 됩니다. 하지만 이는 원래 REG_EXPAND_SZ 형식으로 내용은 "%SystemRoot%\System32\WScript.exe" "%1" %* 입니다. [이러한 내용을 헥스 값으로 표현하면 위의 내용이 되는 겁니다.] 배치 파일에서 reg add 명령으로 처리할 땐 이렇게 원래의 형식으로 처리를 해야 합니다.



※ 관리자 권한으로 실행을 기본으로 지정

이것은 아래와 같은 레지스트리를 통해 구성하게 됩니다.

[HKEY_CLASSES_ROOT\VBSFile\Shell]
@="Runas"

기본 값은 실행인 Open 이며 이를 Runas 로 바꿔주기 위해선 위의 관리자 권한으로 실행 메뉴가(Runas 키) 먼저 등록이 되어야 합니다.

 

 

신고
캐플 블로그에 공개된 글은 반드시 원본 글의 링크를 포함시키는 조건으로 자유롭게 이용하실 수 있습니다.
하지만 블로그의 발전을 위하여 되도록이면 링크로 글을 소개해주시길 부탁드립니다. ^^

- 상업적인 용도의 사이트는 대상에서 제외됩니다. -
- 글에는 오류가 있을 수 있고, 추후 수정 또는 재발행될 수 있습니다. -
  1. 멋진하루 2013.04.21 04:09 신고  댓글주소  수정/삭제  댓글쓰기
    vbscript실행 파일을 contextmenu 에 등록하여 실행시킬 방법이 있나요?
    윈7 64bit-관리자계정 에선 " 은(는) 올바른 Win32응용 프로그램이 아닙니다. "
    윈8 64bit-사용자계정 에선 " 현재 PC에서는 이 앱을 실행할 수 없습니다. "
    이런 창이 뜨네요.........달리 방도가 있는지요?

    예 )
    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\Directory\background\shell\test]
    @="test"

    [HKEY_CLASSES_ROOT\Directory\background\shell\test\command]
    @="F:\\test.vbs"
    • BlogIcon CApple 2013.04.21 14:27 신고  댓글주소  수정/삭제
      VBS 파일을 직접 실행하지 마시고 배치 파일을 먼저 실행시키고 그곳에서 VBS 파일을 실행하는 방식을 사용하세요. 대충 아래와 같이 말이죠.

      [box-g][HKEY_CLASSES_ROOT\Directory\background\shell\test]
      @="test"

      [HKEY_CLASSES_ROOT\Directory\background\shell\test\command]
      @="F:\\test.cmd"[/box-g]
      [box-b]@echo off
      start F:\test.vbs
      exit[/box-b]
  2. 멋진하루 2013.04.21 16:11 신고  댓글주소  수정/삭제  댓글쓰기
    직접 실행은 안되나보군요. ㅜㅜ
    vbscript가 깔끔하게 창을 감춰주는 역할을 수행해서 이용하려고 했거든요.
    vbs파일을 exe로 만들어 주는 vbstoexe.exe를 사용하면 동일한 효과가 나타나긴 하는데,
    직접적으로 실행하는 것보다 약간의 딜레이가 있어서 바로 실행할 수 있는지 여쭤 보았어요.
    말씀 감사히 잘 들었습니다.......좋은 주말 오후 되세요!^^

    P.S 캐플님께서도 contextmenu에서 vbs파일을 실행하실 때
    vbstoexe.exe를 이용해서 한번 해 보세요.( 창 감추기를 할 때 )
  3. BlogIcon 할짜쿵 2014.12.29 14:27 신고  댓글주소  수정/삭제  댓글쓰기
    유용한 정보 감사합니다

댓글을 달아 주세요

- 댓글에선 예의를 지켜주시기 바라며, 블로그지기는 댓글에서 따로 활동하지 않습니다.

* 티스토리 사용자는 여기를 클릭하시면 로그인 됩니다.

BBCode 안내   굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드-Imgur.com