-
[Batch] 배치 파일 실행 시 관리자 권한 얻어오는 방법개발 도구/배치 | 터미널 (CMD) 2022. 5. 17. 18:23
작성한 배치 코드 상단에 다음 코드를 추가한다.
:checkPrivileges NET FILE 1>NUL 2>NUL if '%errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges) :getPrivileges echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" echo For Each strArg in WScript.Arguments >> "%temp%\getadmin.vbs" echo If strArg = WScript.Arguments.Item^(0^) Then d = Left^(strArg, InStrRev^(strArg,"\"^) - 1^) >> "%temp%\getadmin.vbs" echo args = args ^& " " ^& strArg >> "%temp%\getadmin.vbs" echo Next >> "%temp%\getadmin.vbs" echo UAC.ShellExecute "cmd.exe", ^("/c start /D """ ^& d ^& """ /B" ^& args ^& " ^& exit"^), , "runas", 4 >> "%temp%\getadmin.vbs" cscript "%temp%\getadmin.vbs" ""%~s0"" %* del /q "%temp%\getadmin.vbs" exit /b :gotPrivileges
※ 배치 파일에 파라미터가 있는 경우 exit /b 뒤에 %1 %2 와 같이 개수에 맞게 전달하면 된다.