관리자 권한 명령 프롬프트에서 시작된 경우 배치 파일을 체크인하는 것이 유용한 경우가 있습니다. 이 작업을 수행하는 데 사용하는 트릭을 여러분과 공유하고 싶습니다. 내 트릭의 주요 아이디어는 대부분의 콘솔 앱 및 명령에 대한 종료 코드를 저장하는 특수 환경 변수 % errorlevel %의 값을 기반으로합니다. 이것이 실제로 작동하는지 봅시다.
광고
일부 콘솔 앱이 작업을 제대로 완료하면 % errrorlevel % 변수는 값으로 0을 저장합니다.
새 명령 프롬프트 인스턴스를 엽니 다. 'dir'명령을 실행하십시오. 그 후 'echo'명령을 사용하여 % errorlevel % 값을 인쇄합니다.
dir echo % errorlevel %
출력으로 0을 생성합니다.
이제 권한이 상승하지 않은 일반 명령 프롬프트 창에서 권한 상승이 필요한 명령을 실행 해 보겠습니다. 예를 들어, 열린 파일 관리자 권한이 필요한 명령.
% errorlevel % 값을 인쇄하면 openfiles 명령이 관리자 권한없이 열린 파일을 표시하지 못하므로 0이 아닙니다.
그러나 관리자 권한 명령 프롬프트에서 실행하는 경우 ( 다음은 관리자 cmd 프롬프트를 여는 방법입니다. ), 열린 파일을 표시하고 예상대로 0을 반환합니다.
이 기능을 사용하면 배치 파일에서 간단한 검사를 구현할 수 있습니다.
@echo off openfiles> NUL 2> & 1 if NOT % ERRORLEVEL % EQU 0 goto NotAdmin echo 관리자 권한 명령 프롬프트에서 Hello로 이동 끝 : NotAdmin echo이 명령 프롬프트는 해제되지 않았습니다. : End
출력 리디렉션을 사용하여 openfiles 명령의 출력을 억제합니다. '> NUL 2> & 1 부분'에서 명령의 기본 출력은 nowhere (NUL)로 리디렉션되고 오류 출력은 표준 출력, 즉 NUL로 리디렉션됩니다.
openfiles 명령 대신 권한 상승이 필요한 모든 명령을 사용할 수 있습니다 (예 : 넷 세션 명령.
그게 다야.