2011-09-09 31 views
2

私はWPFアプリケーションを作成しました。 クライアントマシンにインストールすると、アプリケーションを使用する管理者権限を持つように、ユーザー名とパスワードの入力が求められます。管理者権限でWPFアプリケーションを実行するWIX

私のアプリケーションはポートを開いてファイルシステムにファイルを書き込むため、管理者権限が必要です。

管理者のユーザー名とパスワードの入力を求めるプロンプトが表示されずにアプリケーションを実行し、管理者の権限で実行されるようにアプリケーションを昇格させることはできますか?

おかげ

答えて

0

アプリがインストールされている場合はインストールプログラムは、管理、実行のためにマークされている場合、それは管理者の権利のために要求されます。これは、通常、Program Filesフォルダ階層内など、複数のユーザーが使用できる場所にインストールする場合にのみ必要です。 MSIはデフォルトでUACプロンプトを表示しますが、簡単にmake an MSI with WIX that doesn't raise a UAC promptになります。

アプリが管理者権限でマークされている場合、管理者権限のないユーザーがアプリを実行すると、管理者権限が要求されます。これは部分的にあなたのコントロール下にありますが、クライアントマシン上のユーザーによって上書きされる可能性があります。

ファイルシステムフォルダに書き込むアプリケーションには、アプリケーションを実行しているユーザーがそれらのフォルダに対するアクセス権を持っている限り、管理者権限は必要ありません。一般に、各ユーザーがアクセスできる場所に書き込むことで、この作業を行うことができます。

しかし、統計情報を照会する以上のことをアプリが実行している場合、ポートを開くには管理者権限が必要と考えています。

実行するには管理者権限が必要で、管理者以外のユーザーにプログラム実行中にUACプロンプトが表示されないようにするには、アプリを2つに分割することをおすすめします。

最初の部分は、LocalSystemなどの特権ユーザーで実行され、デスクトッププログラムとやりとりするように構成されたWindowsサービスです。このサービスは、すべての管理関連タスクを実行し、管理者権限を要求するインストーラによってセットアップする必要があります。

2番目の部分は、特権を何もしないWPFプログラムです。このWPFプログラムを高度を必要としないものとしてマークすると、実行中のすべての特権作業が常に実行されているサービスによって実行されているため、エンドユーザはUACプロンプトを表示することはありません。私は管理者の実行のためにマークされていないインストールプログラムを作るにはどうすればよい

+0

...私は を設定app.manifestを持っている<のrequestedExecutionLevelレベル=「requireAdministrator」uiAccess =「偽」/> それは何かがなければわかりません – TheWommies

+0

@Allen、あなたのコメントに答えるリンクを含めるように答えを更新しました。 – RoadWarrior

関連する問題