다음은 Windows 7에서 Windows 10까지 사용한 간단한 방법입니다. 기본적으로 "IF EXIST"명령을 사용하여 Windows \ System32 \ WDI \ LogFiles 폴더를 확인합니다. WDI 폴더는 7 개 이상의 모든 Windows 설치에 존재하며 액세스하려면 관리자 권한이 필요합니다. WDI 폴더에는 항상 그 안에 LogFiles 폴더가 있습니다. 따라서 WDI \ LogFiles 폴더에서 "IF EXIST"를 실행하면 관리자로 실행하면 true를 반환하고 관리자로 실행하지 않으면 false를 반환합니다. 이것은 배치 파일에서 권한 수준을 확인하고 그 결과에 따라 원하는 명령으로 분기하는 데 사용할 수 있습니다.
다음은 예제 코드의 간단한 스 니펫입니다.
IF EXIST %SYSTEMROOT%\SYSTEM32\WDI\LOGFILES GOTO GOTADMIN
(Commands for running with normal privileges)
:GOTADMIN
(Commands for running with admin privileges)
이 방법은 WDI 폴더에서 기본 보안 권한이 수정되지 않았다고 가정합니다 (대부분의 상황에서 발생하지 않을 수 있지만 아래의주의 사항 # 2 참조). 이 경우에도 관리자 액세스가 필요한 다른 공통 파일 / 폴더를 확인하기 위해 코드를 수정하기 만하면됩니다 (System32 \ config \ SAM이 좋은 대체 후보가 될 수 있음). 또는이를 위해 특별히 직접 만들 수도 있습니다. 목적.
이 방법에는 두 가지주의 사항이 있습니다.
UAC를 비활성화하면 어쨌든 모든 것이 관리자로 실행된다는 단순한 사실을 깨뜨릴 수 있습니다.
Windows 탐색기에서 WDI 폴더를 열고 메시지가 표시 될 때 "계속"을 클릭하면 해당 사용자 계정에 대한 영구 액세스 권한이 추가되어 방법이 손상됩니다. 이 경우 WDI 폴더 보안 권한에서 사용자 계정을 제거하여 해결할 수 있습니다. 어떤 이유로 든 사용자가 Windows 탐색기를 사용하여 WDI 폴더에 액세스 할 수 있어야하는 경우 다른 폴더를 확인하도록 코드를 수정해야합니다 (위에서 언급했듯이이 목적을 위해 특별히 직접 생성하는 것이 좋습니다). .
따라서 내 방법은 망가질 수 있기 때문에 완벽하지는 않지만 구현하기 쉽고 모든 버전의 Windows 7, 8 및 10과 동일하게 호환되는 비교적 빠른 방법이며 언급 된주의 사항에 유의해야합니다. 나에게 100 % 효과적이었습니다.
echo > somefile
관리자 권한 이 필요한 디렉토리에 시도하고 수행 하는 것입니다. 부작용으로 파일을 생성하지만 충돌을 확인하고 해결 방법으로 고유 한 파일 이름을 만들 수 있습니다.