Windows Vistaで古いソフトを使うコツ、その2
「管理者ユーザーでログオンしていてもプロセスが制限ユーザーモードで動作する」ことで発生する様々な問題だが、コントロールパネルの「ユーザーアカウント」→「ユーザーアカウント制御の有効化または無効化」→「ユーザーアカウント制御(UAC)を使って云々...」のチェックを外す→「再起動」で丸ごと回避できる模様。
強力なセキュリティ機能であるUACを停止してしまうのでかなり勿体無い感じがするが、とにかく「許可ボタンを押すのがメンドウ」という場合にこの選択肢は良いかもしれない。まぁ、UACのおかげで「変なプロセスがスタートアップ登録されて勝手に立ち上がっている」という状況はかなりの確率で回避できると思われるので、せっかくVistaを使うなら有効にしておきたいところではある。
UACを有効にしたまま問題を回避するには「管理者として実行」すれば良いのだが、これが使えないパターンがある。ファイルの関連付けによってプロセスが起動され、なおかつWindowsの標準コンポーネントであることを理由にexeファイルのプロパティから「管理者として実行」オプションを有効にさせてもらえないもの、代表作は「Windows Installer」である。
Borland Developer Studio 2006のUpdate2が、Windows Installer用のmspファイル(アップデート用の差分msiと思ってよい)なのだが、これ適用しようとしてもWindows Installerが制限ユーザーモードで動いてしまいうまくいかない。しかし、Windows Installerの実行ファイル(X:\Windows\System32\msiexec.exe)のプロパティからは「管理者として実行」オプションを有効にできない。そこで、以下のようなバッチファイルを作ってみた。
msiexec.exe /update bds2006_jp_pro_upd2.msp
で、このバッチファイルを右クリックして「管理者として実行」すると...無事成功!ちなみにmsiファイルの場合には
msiexec.exe /install ほげ.msi
でオッケーと思われる。UACを一時的に無効にしても良いのだが、再起動が必要になるので大抵の場合はこのほうが手っ取り早いだろう。