배치 파일을 수동으로 높이려면 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택하십시오. 다음은 상승 된 권한이 필요한 배치 파일을 자동으로 상승시키는 방법입니다. 배치 파일을 마우스 오른쪽 버튼으로 클릭하여 "관리자 권한으로 실행"을 선택하는 것과 같습니다. 두 경우 모두 UAC 프롬프트가 계속 나타납니다.
배치 파일 자동 상승
:::::::::::::::::::::::::::::::::::::::::::: :: Automatically check & get admin rights V2 :::::::::::::::::::::::::::::::::::::::::::: @echo off CLS ECHO. ECHO ============================= ECHO Running Admin shell ECHO ============================= :init setlocal DisableDelayedExpansion set "batchPath=%~0" for %%k in (%0) do set batchName=%%~nk set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion :checkPrivileges NET FILE 1>NUL 2>NUL if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) :getPrivileges if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges) ECHO. ECHO ************************************** ECHO Invoking UAC for Privilege Escalation ECHO ************************************** ECHO Set UAC = CreateObject^("Shell.Application"^)>"%vbsGetPrivileges%" ECHO args = "ELEV ">>"%vbsGetPrivileges%" ECHO For Each strArg in WScript.Arguments>>"%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " ">>"%vbsGetPrivileges%" ECHO Next>>"%vbsGetPrivileges%" ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1>>"%vbsGetPrivileges%" "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* exit /B :gotPrivileges setlocal & pushd . cd /d %~dp0 if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) :::::::::::::::::::::::::::: ::START :::::::::::::::::::::::::::: REM Run shell as admin (example) - put here code as you like ECHO %batchName% Arguments: %1 %2 %3 %4 %5 %6 %7 %8 %9 cmd /k
“START”레이블 아래이 .bat 파일에 지침을 추가하십시오.
이 배치 파일은 Vbscript 파일을 생성 한 다음 파일을 높이는 데 필요한 "runas"매개 변수를 사용하여 배치 파일을 관리자로 다시 시작합니다 (관리자 권한으로 아직 실행되지 않은 경우). Vbscript &“runas”방법은 Windows Vista 이상의 이전 Vbscripts 및 UAC 상승에서 다루었습니다.
이 방법에 대한 스택 오버플로에서 Matt의 크레디트. windows – 배치 파일을 자동으로 상승시켜 필요한 경우 UAC 관리자 권한을 요청하려면 어떻게해야합니까?
기본적으로 배치 파일 실행
위의 자동 승격 방법 외에도 클라이언트 측에서 레지스트리를 조정하여 배치 파일이 항상 상승하여 UAC 프롬프트를 표시 할 수 있습니다. 레지스트리에서 기본 두 번 클릭 동작을 "open"에서 "runas"로 변경하면됩니다. 다음 단계를 사용하십시오.
Regedit.exe를 시작하고 다음 위치로 이동하십시오.
HKEY_CLASSES_ROOT \ batfile \ shell
두 번 클릭 (기본값)하고 값 데이터를 runas 로 설정
레지스트리 편집기를 종료하십시오.
이 변경 후 배치 파일은 두 번 클릭 할 때 항상 상승 된 상태로 실행됩니다. 관리자로 실행은 .bat 파일을 마우스 오른쪽 단추로 클릭 할 때 표시되는 기본 옵션입니다.