질문과 답변
윈 도 우 관리자 권한에 admin.confirm
2016.07.09 09:16
@echo 관리자권한 확인용 >%windir%\admin.confirm || @(
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\admin.vbs"
echo UAC.ShellExecute "%~0", "", "", "runas", 1 >> "%temp%\admin.vbs"
wscript.exe "%temp%\admin.vbs" & del "%temp%\admin.vbs" & exit)
@del %windir%\admin.confirm
suk님 배치파일인데요.
1.두번째줄에 admin.confrm 는 무슨뜻이죠?
2.runas 1 은 관리자확인만 하는건가요? 아니면 레지스터에 계속 관리자권한으로 실행하라고 1 넣는가요?
윈7 사용하는데 %windir%\admin.confirm 파일이 안나오는데 admin.confirm을 만드는건지...
admin.vbs 만드는건 알겠ㅈ는데 admin.confim도 만드는건가요?
그 부분은 우클릭으로 관리자권한으로 실행을 하지 않고, 그냥 더블클릭으로도 관리자권한으로 실행되도록 하는 것입니다
스크립트를 해석하면...
@echo 관리자권한 확인용 >%windir%\admin.confirm || @(
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\admin.vbs"
echo UAC.ShellExecute "%~0", "", "", "runas", 1 >> "%temp%\admin.vbs"
wscript.exe "%temp%\admin.vbs" & del "%temp%\admin.vbs" & exit)
@del %windir%\admin.confirm
echo 관리자권한 확인용 >%windir%\admin.confirm
이 부분은 윈도 폴더에 임의로 admin.confirm 파일을 생성합니다. 이 파일 이름은 아무 의미 없습니다. 역할도 없고요
단지 윈도 폴더에 파일을 만들려면 관리자권한이 필요하죠. 그래서 현재 관리자권한으로 배치파일이 실행 중인지 확인하는 역할입니다
여기서 실패하면
@echo 관리자권한 확인용 >%windir%\admin.confirm || @(
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\admin.vbs"
echo UAC.ShellExecute "%~0", "", "", "runas", 1 >> "%temp%\admin.vbs"
wscript.exe "%temp%\admin.vbs" & del "%temp%\admin.vbs" & exit)
%temp% 임시폴더에 admin.vbs를 만드는 과정인데요
1회용입니다. admin.vbs 내용은 단지 배치파일을 다시 관리자권한으로 실행하라는 겁니다. 기존에 실행된 창은 닫힙니다
레지스트리와는 아무 관련이 없습니다. 숫자 1은 창크기를 의미입니다. 1은 일반적인 창크기로 실행하는 겁니다
3은 최대창으로 실행됩니다. 0은 창이 보이지 않습니다
배치파일이 재실행되면 당연히 관리자권한으로 실행되었기 때문에...
윈도 폴더에 admin.confirm을 만드는데 성공을 하지요. 그러면 위에서 실패한 경우는 생략되고요
마지막에 잠시 테스트용으로 만들어진 admin.confirm 을 삭제하는 것으로
지금까지 관리자권한으로 자동실행되는 부분이 끝이 납니다
처음부터 관리자권한이었다면..- 우클릭으로 관리자권한으로 실행 또는 관리자계정 또는 레지스트리 트윅 -
순간적으로 admin.confirm 파일이 생겼다가 삭제되는걸로 끝납니다.
관리자권한 테스트 방법은 다양한데요. 테스트만 하고는 관리자권한이 아닌 경우 메시지만 보여주는 배치파일도 많습니다
편의성 차원에서 관리자권한이 아닌 경우도 자동으로 관리자권한으로 재실행되도록 배치파일을 만든지 조금 오래 됐습니다.
잠시 생성된 admin.confirm과 admin.vbs 둘다 역할을 마치자마자 바로 삭제됩니다