[C#] .NETアプリケーションを強制的に管理者として実行するにはどうすればよいですか?


Answers

requestedExecutionLevel要素をマニフェストに追加するrequestedExecutionLevelは、戦闘の半分にすぎません。 UACをオフにできることを覚えておく必要があります。 そうであれば、古い学校の方法をチェックし、ユーザーが管理者でない場合はエラーダイアログを表示する必要があります
(スレッドのCurrentPrincipal IsInRole(WindowsBuiltInRole.Administrator)を呼び出します)。

Question

私のプログラムがクライアントマシンにインストールされたら、私のプログラムをWindows 7上で管理者として実行するにはどうすればいいですか?




ClickOnceセキュリティ設定を使用してマニフェストを作成し、無効にすることができます。

Right click on the Project -> Properties -> Security -> Enable ClickOnce Security Settings

これをクリックすると、 app.manifestという名前のプロジェクトのプロパティフォルダにファイルが作成されます。このフォルダが作成されると、 Enable ClickOnce Security Settingsオプションをオフにすることができます

そのファイルを開き、次の行を変更してください:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

に:

 <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

これにより、プログラムに管理者権限が必要になります。




Visual Studio 2008で作業しているときに、 Project -> Add New Itemを右クリックし、 Application Manifest File選択しApplication Manifest File

マニフェストファイルには、 requestedExecutionLevelというタグrequestedExecutionLevel 、そのレベルを3つの値に設定できます。

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

または

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

または

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

管理者として実行するようにアプリケーションを設定するには、中間のものを選択する必要があります。




毎時

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

アプリケーションマニフェストをまだ持っていない場合、または追加する方法がわからない場合は、アプリケーションマニフェストを追加することをお勧めします。 一部のプロジェクトでは、別のマニフェストファイルが自動的に追加されないため、まずプロジェクトのプロパティに移動し、[ アプリケーション ]タブに移動して、プロジェクトがタップの下部にあるマニフェストを除外していないことを確認します。

  • 次に、プロジェクトを右クリックします。
  • 新しいアイテムを追加
  • 最後に、アプリケーションマニフェストファイルを見つけてクリックします。






Links