HOME >> Tips >> Microsoft.NET

アプリケーション起動時に管理者に昇格して実行する exe を作成する方法

2014/11/20
文書番号:20197




Windows Vista 以降の環境で UAC が有効な場合、実行したい処理によってはアプリケーション起動時に右クリックして「管理者として実行」を選択して起動しなければならないことがあります。

いつもどおりに起動すると管理者権限が必要な処理の実行時にエラーが発生したり、実行できていないのに何事もなかったかのように終了してしまうなど、処理や環境によって振る舞いがさまざまです。

エンドユーザーに右クリックから「管理者として実行」を周知することは難しく、インストール後にexeのプロパティを開いて「管理者として実行」にチェックを入れるのは手間がかかります。

そこで exe 自体に"管理者として起動する設定"を組み込んだものを作成し、起動時は自動で管理者として実行するための確認ダイアログを起動するようにする方法です。


【設定手順】


  1. プロジェクトのプロパティを起動します。
    「アプリケーション」タブ内の「Windows 設定の表示」をクリックします。

    クリックで拡大
  2. 「requestedPrivileges」タグ内の「requestedExecutionLevel」を設定します。

    クリックで拡大
  3. level="asInvoker" を "requireAdministrator" に変更します。

    クリックで拡大
  4. リビルドを実行すると盾のアイコンがついたexeができます。

    クリックで拡大
  5. exe をダブルクリックしただけでユーザーアカウント制御の承認ダイアログが表示されるようになります。

    クリックで拡大
【参考情報】
[DOBON.NET] UACが有効の時、アプリケーションを管理者に昇格させて起動する
http://dobon.net/vb/dotnet/system/asadmin.html