기타2010. 3. 22. 11:05

    Windows Vista에서는 관리자 권한에서 실행해야 하는 부분들이 존재한다.

     

    Vista에서는 내가 Administrators 그룹이라 할지라도 UAC라는 기능때문에 설치 또는 관리적인 작업이 필요시는 권한상승을 묻거나, 사용자 계정/ 패스워드를 넣어야만 진행이 가능하다.

     

    그리하여 일반적인 Application 개발시는 그 점을 유의해야 한다.

    Manifest 파일을 어떻게 추가 있는지 방법을 알아 보겠다

     

    C#으로 Win Form Application 간단히 만든다고 생각하자

  1. 정상적으로 빌드되어 vistakms.exe 파일 생겼다고 하자
  2. 메모장 또는 VS2005에서 vistakms.exe.manifest 파일을 생성한다.
  3. 생성된 vistakms.exe.menifest 아래와 같은 코드를 붙여 넣기한다

     


  4. 가장 가운데 3줄의 소스가 중요하다.

    옵션을 선택 가능한데, 옵션은 아래와 같이 3가지이다.

    asInvoker어플리케이션이 부모 프로세스와 동일한 토큰으로 실행됩니다.

    highestAvailable어플리케이션이 현재 사용자가 사용할 수 있는 최고 권한으로 실행됩니다.

    requireAdministrator어플리케이션이 관리자에 대해서만 실행되므로 관리자의 전체 토큰으로 어플리케이션을 시작해야 합니다.

     

  5. vistakms.exe.menifest 파일을 abc.exe 파일과 동일한 폴더에 위치 시킨다. 작업하기 편하게 하기 위해
  6. 명령창을 띄우고, mt.exe 파일이 여부를 확인하고, 없다면, 다운로드 받아 설치 한다.
  7. 명령 프롬프트 창에서 다음과 같이 명령어를 입력한다.

    mt -manifest vistakms.exe.manifest -outputresource:vistakms.exe;#1

     

     

8. 완료 폴더에 가보게 되면

 

 

 

9.방패모양이 나타난것을 있다. 위의 방패 모양이 나타난다는 것은 실행파일 vistakms.exe 파일을 실행시 권한 여부를 묻게되고 실행을 하면 관리자 권한으로 상승되어 설치되는 것을 있다.

Posted by 쿵캉켕