朝会発表テーマ

VB.NETで起動時に管理者権限を求めるダイアログを表示する方法

概要

Windows vista からProgramfiles下などにファイルを出力する時には管理者権限が必要になった
実行ファイルを右クリックして「管理者として実行」とするか、プロパティの互換性タブから「管理者としてこのプログラムを実行する」にチェックを入れると管理者権限を求めるダイアログを表示するようになるが、作成した実行ファイルが最初から管理者権限を求めるようにしたい。

方法

  1. 方法1 マニフェストファイルのUACマニフェストオプションを変更する
  2. 方法2 ProcessStartInfoのVerbにrunasを指定する

方法2ではvistaより前のOSで実行した時に、ユーザーとパスワードを入力させる画面が表示されてしまう。
方法1は、VisualStudio2005でVista以降用のオプションをつけたマニフェストを使用した
実行ファイルを作成し、WindowsXPのSP2で実行した場合、再起動やブルースクリーンになる問題があったが、VisualStudio2005SP1以降やWindowsXPのSP3以降では問題ないので、方法1を採用した。

実装

1.メニューのプロジェクトからプロジェクトのプロパティを開く
2.アプリケーションからWindows設定の表示ボタンをクリックする

3.requestedExecutionLevelタグのlevelをrequireAdministratorにする

※これで管理者権限を求めるダイアログが表示されるようになるが、スクリーンショットが撮れなかった

コメント