質問

WPFアプリケーションを書きました。クライアントマシンにインストールされると、アプリケーションを使用する管理者の権限があるように、ユーザー名とパスワードを求められます。

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

管理者のユーザー名とパスワードを求められずにユーザーがアプリケーションを実行できるようにし、管理者のプライベートで実行するためにアプリケーションを昇格させることは可能ですか?

ありがとう

役に立ちましたか?

解決

アプリがインストールされると、管理者の権利が求められます インストール プログラムは、管理の実行にマークされています。通常、これは、プログラムファイルフォルダー階層内など、複数のユーザーが利用できる場所にインストールする場合にのみ必要です。 MSIはデフォルトでUACプロンプトを上げますが、簡単です UACプロンプトを上げないWIXを使用してMSIを作成します.

アプリが(管理者権利のないユーザーによって)実行されると、管理者の権利が要求されます アプリ それ自体は、管理の実行にマークされています。これは部分的にはあなたの管理下にありますが、クライアントマシンのユーザーがオーバーライドできます。

システムフォルダーをファイルするように書くアプリは、アプリを実行しているユーザーがそれらのフォルダーに許可を与える限り、管理者の権利を必要としません。通常、各ユーザーがアクセスできる場所に書き込むことで、この作業を行うことができます。

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

アプリが管理者の権利を実行する必要があり、プログラムの実行中にADMIN以外のユーザーがUACプロンプトを表示したくない場合は、アプリを2つの部分に分割することをお勧めします。

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

2番目の部分は、特権を与えないWPFプログラムです。このWPFプログラムを標高を必要としないとマークすると、エンドユーザーは実行中にUACプロンプトが表示されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top