상승 모드에서 Vbscript를 시작하는 방법 (관리자 권한으로 실행)

2015-07-26 17:23:48
메인·마이크로 소프트·상승 모드에서 Vbscript를 시작하는 방법 (관리자 권한으로 실행)

Windows Vista에 UAC (사용자 계정 컨트롤)가 도입되면 일반적으로 관리자 권한이 필요한 배치 파일과 스크립트를 실행하기 위해 관리자 권한 명령 프롬프트를 엽니 다. 응용 프로그램은 매니페스트 파일 ( RequireAdministrator 플래그 사용)을 사용하여 상승 된 권한 을 자동으로 실행할 수 있습니다.

스크립트의 경우이 기사에서는 ShellExecute“runas”매개 변수를 사용하여 자동으로 상승시킬 수있는 약간의 유용한 트릭을 제공합니다.

다른 자동 상승 방법은 배치 파일을 자동으로 올리는 방법을 참조 하여 관리자로 실행 하시겠습니까?를 참조하십시오 .

Vbscript 상승 시작

Shell.Application 객체의 ShellExecute 메서드에서 runas 인수 사용에 대해 설명해 주신 Jim Barry에게 감사드립니다. Jim의 제안을 사용하여 원본 스크립트는 크게 압축되었습니다. 이러한 방법 중 하나를 사용하여 VBScript를 상승시킵니다.

방법 1

다음은 스크립트에 명령 행 인수가 전달되지 않은 경우 runas 매개 변수를 사용하여 관리자 (상승)로 다시 시작하는 샘플 스크립트입니다. 스크립트를 관리자로 다시 시작하는 경우 스크립트가 순환 루프에서 실행되지 않도록 가짜 인수를 전달하십시오.

 WScript.Arguments.length = 0 인 경우 objShell = CreateObject ( "Shell.Application") '가짜 인수를 전달하고 [uac] objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 다른 '코드를 여기에 추가하십시오 

방법 2

이 방법은 runas 동사를 사용하여 기본 VBScript를 실행하는 실행기 스크립트를 사용합니다.

Set objShell = CreateObject("Shell.Application") Set FSO = CreateObject("Scripting.FileSystemObject") strPath = FSO.GetParentFolderName (WScript.ScriptFullName) If FSO.FileExists(strPath & "\MAIN.VBS") Then objShell.ShellExecute "wscript.exe", _ Chr(34) & strPath & "\MAIN.VBS" & Chr(34), "", "runas", 1 Else MsgBox "Script file MAIN.VBS not found" End If 

UAC 고도 대화 상자가 표시됩니다.

사용자가 계속 승인을 클릭하면 주 스크립트가 관리자로 시작됩니다.

관련 : 배치 파일을 관리자 권한으로 실행하기 위해 자동으로 배치 파일을 올리는 방법은 무엇입니까?

에디터의 선택