CMD 관리자 권한으로 실행 여부 체크하기
배치파일 작성 시 관리자 권한이 필요한 프로그램을 실행시켜야하는 경우가 있습니다.
해당 코드가 실행되기 전에 미리 관리자 권한으로 실행 되었는지 체크하여
관리자 권한으로 실행되지 않았다면 아에 배치파일이 동작하지 않도록 만드는게
정신 건강에 이롭더군요.
아래 코드는 관리자 권한으로 실행했는지 체크하고
관리자 권한이 아니면 프로그램을 메시지를 보여주고 배치파일을 종료 시키는 코드입니다.
@echo off
title 관리자 권한으로 배치파일 실행 했는지 확인하기
bcdedit >>nul
if %errorlevel% == 1 goto noadmin
echo ★ 관리자 권한으로 실행하였습니다.
pause
exit
:noadmin
cls
color 1F
echo.
echo.
echo.
echo.
echo ★ 관리자 권한이 아닙니다!
echo ★ 오른쪽 마우스 클릭해서 관리자 권한으로 실행해주세요.
pause
exit
위 코드에서 중요한 부분은
bcdedit >>nul
if %errorlevel% == 1 goto noadmin
이 부분이겠군요.
bcdedit 는 부트로더 관리 프로그램인데
이 프로그램은 부팅 관련을 건들기 때문에 관리자 권한이 필수입니다.
그래서 bcdedit 명령어를 치고 그 결과값을 nul로 표시하도록 처리하여
해당 명령어 실행 여부를 가지고 관리자 권한으로 배치파일이 실행되었는지 확인할 수 있습니다.
if 구문에서 %errorlevel%은 if 구문 바로 직전에 실행된 명령어의 실행 결과값을 0과 1로 표시해주는데요.
에러가 발생하면 1로 에러가 없이 정상적으로 명령어가 작동했으면 0으로 표시됩니다.
관리자 권한이 없어서 bcdedit가 실행되지 않았다면 당연히 에러가 발생한것이므로 1로 표시됩니다.
if구문에서는 errorlevel이 1이라면 goto noadmin 이라는 위치로 보내버립니다.
goto를 통해 :noadmin 다음줄 부터 구문이 시작되도록 명령 실행 위치가 바뀝니다.
그래서 결국 if 구문과 :noadmin 사이에 있는 echo ★ 관리자 권한 ~ exit 까지의 명령줄은 실행되지 않고
:noadmin 다음에 있는 cls 구문 부터 실행되는겁니다.
설명이 어려웠는데
대략적으로 코드 보시고 따라하시면 이해 되실거라 믿습니다.
'개발' 카테고리의 다른 글
톰캣 재기동 시 Spring Framework xsd 읽기 실패 에러 조치 방법 (2) | 2021.11.18 |
---|---|
윈도우10 작업표시줄 아이콘 기본 레이아웃 설정 xml 코드 (0) | 2021.07.29 |
파워쉘 AD User 테스트 계정 대량 생성 소스 코드 (0) | 2021.07.26 |
댓글
이 글 공유하기
다른 글
-
톰캣 재기동 시 Spring Framework xsd 읽기 실패 에러 조치 방법
톰캣 재기동 시 Spring Framework xsd 읽기 실패 에러 조치 방법
2021.11.18 -
윈도우10 작업표시줄 아이콘 기본 레이아웃 설정 xml 코드
윈도우10 작업표시줄 아이콘 기본 레이아웃 설정 xml 코드
2021.07.29 -
파워쉘 AD User 테스트 계정 대량 생성 소스 코드
파워쉘 AD User 테스트 계정 대량 생성 소스 코드
2021.07.26