VistaのUACとの戦いの果て。

とあるプロジェクトでインストーラーでのupdateはあきらめて、バッチでexeをコピーすることになりました。xpではすぐ簡単。ほいさっさ。

しかし。

Vistaではアクセスが拒否されます。色々と調べた結果、Windowsフォルダや、ProgramFilesフォルダは権限の昇格が必要なようです。しかし、PCが使えないユーザを想定しているので、

  1. UACのOFF
  2. 管理者権限での実行

は期待できません。


ネットで調べてみると、マニフェストファイルを作ってやると権限の設定ができるそう。とやってみたのですが、、、あれ?よくよく考えると、権限の昇格はインストーラーに対して行わなければならない。batに対してマニフェストを適応できないみたい。ちなみに書いたマニフェストさらしておきます。

update.bat.manifest



  
   
     
       
         
       
     
   

もうだめだ、、、、、、、、、と思っていたら。

IExpressで簡易インストーラをつくってやれば問題なし!
「この実行プロセスはインストールか?」が分かって、インストールの処理ならば権限がどうやら昇格するようです。IExpressでの実行は見事インストールプロセスと認識してくれたようです。良かった!!!