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 고도 대화 상자가 표시됩니다.
사용자가 계속 승인을 클릭하면 주 스크립트가 관리자로 시작됩니다.
관련 : 배치 파일을 관리자 권한으로 실행하기 위해 자동으로 배치 파일을 올리는 방법은 무엇입니까?