본문 바로가기

윈도우 일반

VBS 파일에 관리자 권한 실행 메뉴 추가하기 + 기본 관리자 권한으로 실행하기


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 키) 먼저 등록이 되어야 합니다.

 

 

  • 멋진하루 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]

  • 멋진하루 2013.04.21 16:11

    직접 실행은 안되나보군요. ㅜㅜ
    vbscript가 깔끔하게 창을 감춰주는 역할을 수행해서 이용하려고 했거든요.
    vbs파일을 exe로 만들어 주는 vbstoexe.exe를 사용하면 동일한 효과가 나타나긴 하는데,
    직접적으로 실행하는 것보다 약간의 딜레이가 있어서 바로 실행할 수 있는지 여쭤 보았어요.
    말씀 감사히 잘 들었습니다.......좋은 주말 오후 되세요!^^

    P.S 캐플님께서도 contextmenu에서 vbs파일을 실행하실 때
    vbstoexe.exe를 이용해서 한번 해 보세요.( 창 감추기를 할 때 )

  • BlogIcon 할짜쿵 2014.12.29 14:27 신고

    유용한 정보 감사합니다