ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 와 같이 개수에 맞게 전달하면 된다.


     

    댓글

Designed by Tistory.