출처 : http://blog.powerumc.kr/article/2008/03/09/MSI-Deploy-Vista.aspx
Orca Tool 로 MSI 프로젝트 내부를 한번이라도 보셨다면 저 희한한 문장이 무엇을 의미 하는지는 아실 것 같습니다.
Written By 엄준일(땡초) |
비스타에서 설치 프로젝트 권한상승 하기
비스타가 출시되면서 화려해진 인터페이스 만큼 수많은 부분에서 이슈가 생겼습니다. 게임/시스템/개발 등의 대체로 전반적인 부분에서 사용자들의 따가운 질타를 받아왔습니다.
그 중에서 배포 프로젝트와 관련하여 알아보았던 설치 프로젝트의 권한 상승 문제는 Visual Studio 2008 의 설치 프로젝트의 권한 상승 기능을 이용하여 해결할 수 있었습니다. 하지만 Windows Installer 에 의한 MSI 설치 파일을 약간 다른 방법으로 해결해야 합니다.
Windows Installer 에 의한 MSI 설치 파일 권한 상승 방법
Windows Installer 는 msiexec 에 의해 설치파일(.MSI) 설치 환경을 제공해 줍니다. 때문에 근본적으로 MSI 설치 파일의 관리자 권한을 획득하기 위해서는…
1. 비스타의 UAC 기능을 제거하는 방법입니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 의 EnableLUA 키값을 변경하여 UAC 기능을 허용/제거 할 수 있습니다. ( 1은 UAC On/ 0은 UAC Off)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 의 EnableLUA 키값을 변경하여 UAC 기능을 허용/제거 할 수 있습니다. ( 1은 UAC On/ 0은 UAC Off)
2. Msiexec.exe 를 관리자 권한으로 실행하는 것이 가장 손쉽게 관리자 권한을 얻는 방법일 것입니다. Msiexec.exe 에 의해 MSI 설치 파일이 호스팅 된다는 것을 생각해 본다면 아마도 당연한 방법일 것입니다.
3. 지난번에 말씀드렸던 Orca Tool 을 이용하여 MSI 파일의 스크립트를 조작하는 방법입니다. 하지만, 빌드 후에 매번 Orca Tool 로 스크립트를 조작하기엔 너무나도 번거롭고 불편합니다.
하지만, 이 툴을 이용하여 빌드 단계를 거치지 않고, 설치 프로젝트의 제목이나 설치 경로 등의 스크립트를 조작할 수 있기 때문에, 가끔씩 매우 유용하게 사용할 수 있습니다.
하지만, 이 툴을 이용하여 빌드 단계를 거치지 않고, 설치 프로젝트의 제목이나 설치 경로 등의 스크립트를 조작할 수 있기 때문에, 가끔씩 매우 유용하게 사용할 수 있습니다.
하지만, 강제로 사용자의 UAC 기능을 제거하는 방법은 그다지 좋은 방법이 아니고. 또한, 나머지 방법들도 효율적이지 않습니다.
빌드 이벤트를 이용한 MSI 설치 파일 권한 상승 하기
우선 Windows Installer Development Kit 을 다운로드 받도록 합니다. 제법 용량이 크고, 설치도 오래 걸립니다. 이 Kit 의 WiRunSql.vbs 파일이 필요한데, 이 파일만 구할 수 있다면 굳이 Windows Installer Development Kit 전체를 받을 필요는 없을 것 같네요.
1. WiRunSql.vbs 파일을 설치 프로젝트 폴더에 복사합니다.
cscript //nologo "$(ProjectDir)WiRunSql.vbs" "$(BuiltOuputPath)" "UPDATE CustomAction SET CustomAction.Type=3073 WHERE CustomAction.Type=1025 AND CustomAction.Source='InstallUtil' AND CustomAction.Target='ManagedInstall'"
cscript //nologo "$(ProjectDir)WiRunSql.vbs" "$(BuiltOuputPath)" "UPDATE CustomAction SET CustomAction.Type=3585 WHERE CustomAction.Type=1537 AND CustomAction.Source='InstallUtil' AND CustomAction.Target='ManagedInstall'" |
Orca Tool 로 MSI 프로젝트 내부를 한번이라도 보셨다면 저 희한한 문장이 무엇을 의미 하는지는 아실 것 같습니다.
위와 같이 간단하게 Windows Installer Development Kit 의 vbs 스크립트를 이용하여 MSI 설치 파일의 비스타 권한 상승 효과를 얻을 수 있습니다. 단, MSI 설치 파일 실행 시 관리자 권한 상승 창이 뜨는 것은 아니고, 실제 설치 중 ProgressBar 가 나타나게 되면, 권한 상승 창이 뜨게 됩니다.
너무 쉬었네… ㅠ.ㅠ
그 동안 너무 쉬었던 탓에, 블로그 글 쓰는 것이 너무너무 버겁습니다;; 이거 써놓고, 또 한 달을 띵가띵가 쉴 지 모르죠 ㅋ;;; 아무튼 이번 달에 Silverlight 2.0 Beta 출시를 시작으로 많은 MS 의 신제품이 출시가 되네요. 정말 기대가 많습니다.