관리자 권한으로 배치 파일 실행
배치 파일은 명령 프롬프트에서 실행되는 명령으로 구성됩니다. 이러한 명령 중 일부는 관리자 권한 없이 실행되지 않습니다. 따라서 Batch 파일을 관리자로 실행하는 것이 중요합니다.
수동으로 실행하려는 배치 파일을 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택하여 관리자 권한으로 배치 파일을 실행할 수 있습니다.
매번 수동으로 수행하는 대신 배치 파일 상단에 일부 코드를 추가하기만 하면 자동으로 관리자 권한으로 실행되도록 할 수도 있습니다.
또는 바로 가기를 만들고 속성 창에서 관리자 권한으로 실행되도록 설정할 수도 있습니다. Batch 파일을 두 번 클릭할 때마다 관리자 권한으로 실행됩니다.
Batch 파일을 관리자로 자동 실행하는 방법에는 여러 가지가 있습니다. 이 자습서에서는 배치 파일을 관리자로 실행하는 다양한 방법을 설명합니다.
관리자 권한으로 실행할 배치 파일 바로가기 만들기
관리 모드에서 Batch 파일을 실행하는 간단한 방법은 바로 가기를 만들고 항상 관리자로 실행되도록 설정하는 것입니다. 배치 파일을 마우스 오른쪽 버튼으로 클릭하고 바로 가기 만들기
를 클릭하여 바로 가기를 만듭니다.
바탕화면에 바로가기 파일이 생성됩니다. 바로 가기 파일을 마우스 오른쪽 버튼으로 클릭하여 속성 창으로 이동합니다.
바로 가기 탭에서 고급을 클릭하고 관리자 권한으로 실행 확인란을 선택합니다.
그게 다이고 바로 가기는 항상 관리자 모드에서 실행되도록 설정되었습니다. 바로 가기 파일을 두 번 클릭하면 확인을 위한 UAC 창이 표시됩니다.
위의 방법을 적용하면 Batch 파일의 현재 디렉토리가 변경됩니다. 이로 인해 오류가 발생하거나 파일이 실행되지 않을 수 있습니다. 이를 방지하려면 Batch 파일의 맨 위에 다음 줄을 추가하기만 하면 됩니다.
@setlocal enableextensions
@cd /d "%~dp0"
예:
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
::START OF THE PROGRAM::
echo "Check the system's energy efficiency"
powercfg-energy
위의 코드는 현재 디렉토리를 Batch 파일의 위치로 변경합니다.
출력:
관리자 권한으로 실행되도록 배치 파일 코딩
runas
명령을 사용하여 배치 파일을 관리자로 실행
Batch 파일에 관리 권한이 필요한 특정 행 또는 일련의 행이 포함된 경우 runas
명령을 사용하여 관리 모드에서 특정 행을 실행할 수 있습니다.
@echo off
echo "Check the system's energy efficiency"
runas /user:sid "cmd /k ipconfig"
출력:
또는
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
echo "Check the system's energy efficiency"
runas /user:sid "notepad C:\Users\sid\Desktop\testfile.bat"
위의 코드는 관리자 사용자로 Batch 파일을 실행합니다. 메시지가 표시되면 암호를 입력합니다.
또한 /savecred
를 사용하여 암호를 저장하고 다음에 Batch 파일을 실행할 때 사용할 수 있습니다. 비밀번호는 한 번만 입력하면 됩니다.
출력:
배치 파일을 관리자로 실행하기 위한 VBS 파일 생성
Batch 파일에 대한 바로 가기를 만들면 현재 작업 디렉터리도 변경되었습니다.
대신 Batch 파일 맨 위에 다음 코드를 추가할 수 있습니다. 이렇게 하면 관리자 모드에서 Batch 파일이 실행되고 동일한 디렉터리에 유지됩니다.
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\adminmode.vbs" del "%temp%\adminmode.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\adminmode.vbs" && "%temp%\adminmode.vbs" && exit /B )
예:
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\adminmode.vbs" del "%temp%\adminmode.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\adminmode.vbs" && "%temp%\adminmode.vbs" && exit /B )
echo "Check the system's energy efficiency"
powercfg -energy
위의 코드는 파일이 관리자 모드에서 실행 중인지 확인합니다. 그렇지 않은 경우 VBS 파일 adminmode.vbs
를 만든 다음 runas
매개 변수를 사용하여 관리자 모드에서 Batch 파일을 다시 실행합니다.
Batch 파일에 액세스하기 위해 cd /d "%~dp0"
을 사용했습니다.
d
- 드라이브 문자로 확장p
- 경로로 확장0
- 전체 경로로 확장
%~dp0
은 현재 디렉토리를 Batch 파일의 디렉토리로 변경합니다. 배치 파일을 실행하면 확인을 위한 UAC 프롬프트가 표시되어 관리자로 실행됩니다.
출력:
결론
그래서 관리자로서 Batch 파일을 실행하는 두 가지 방법에 대해 논의했습니다.
또한 elevate 유틸리티를 사용하거나 배치 파일을 .exe
로 변환하거나 sudo
명령을 설치하는 등 관리 모드에서 배치 파일을 실행하는 다른 방법이 있습니다. 그러나 위에서 언급한 방법은 초보자라도 쉽게 구현할 수 있습니다.