visual studio 6으로 컴파일 된 exe를 windows 7에서 사용하려고 하는데
관리자 권한을 획득 후 실행되어야 하는 경우
visual studio 2005나 2008로 변환 후 재컴파일 하지 않고
manifest 파일과 mt.exe 를 이용하여 관리자 권한을 획득할 수 있다.
준비물
foo.exe
foo.exe.manifest
mt.exe
foo.exe.manifest 파일의 내용은 다음과 같다. (권한 획득 내용만 들어있음)
관리자 권한을 획득 후 실행되어야 하는 경우
visual studio 2005나 2008로 변환 후 재컴파일 하지 않고
manifest 파일과 mt.exe 를 이용하여 관리자 권한을 획득할 수 있다.
준비물
foo.exe
foo.exe.manifest
mt.exe
foo.exe.manifest 파일의 내용은 다음과 같다. (권한 획득 내용만 들어있음)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
requireAdministrator 부분을 asInvoker, highestAvailable 등으로 변경하면 된다.
그리고 관리자 권한으로 실행 된 명령 프롬프트 창에서
mt.exe -manifest "foo.exe.manifest" -outputresource:"foo.exe";#1
을 입력하면
exe에 권한 획득을 위한 방패 모양이 표시되면서 실행 시 manifest에 적혀있는 권한을 획득한다.
requireAdministrator 부분을 asInvoker, highestAvailable 등으로 변경하면 된다.
그리고 관리자 권한으로 실행 된 명령 프롬프트 창에서
mt.exe -manifest "foo.exe.manifest" -outputresource:"foo.exe";#1
을 입력하면
exe에 권한 획득을 위한 방패 모양이 표시되면서 실행 시 manifest에 적혀있는 권한을 획득한다.