4

通常のユーザーが実行できる必要があるアプリがありますが、実際に機能するには管理者権限が必要です。

ユーザーが「管理者として実行」で実行するショートカットを作成しようとしましたが、アプリを実行しようとするたびに UAC プロンプトが表示されます。

ユーザーが UAC プロンプトを通過したり、管理者パスワードを知らなくても、プログラムで特権を昇格させる方法はありますか? セキュリティの観点から、ほとんどのアプリケーションがこれを許可されるべきではないことを理解しているので、有効なユーザー名/パスワードのペアなどを提供できれば、それを行う方法があることを願っています.

アプリは C# で記述されているため、完全に管理されたソリューションが優先されますが、 UAC を完全に無効にするよりも、 p/Invoke Black Magic (または、私たちが話していない MC++ ラッパーを記述する) の方が受け入れられます。

4

3 に答える 3

8

通常、この問題は、SYSTEM または管理者アカウントとして実行される Windows サービスをインストールすることで解決されます。その後、アプリケーションはこのサービスから特権アクションを要求できます。

明らかに、セキュリティ上の脅威を引き起こさないために、サービスが任意のコードや、すべてのユーザーを特権エスカレーション攻撃に対して脆弱にする可能性のある何かを実行できないようにします。

Winpcap およびその他のスニッフィング アプリケーションのほとんどは、同様の設計を使用して、権限のないユーザーにスニッフィング アクセスを許可します。

于 2009-05-12T13:51:18.610 に答える
1

実際、昇格された権限でアプリを実行するタスク スケジュールを作成してみませんか? 昇格下でタスクをセットアップする限り、再起動中またはトリガーが何であれ、タスクが自動実行されるときにUACを要求することはありません。

マニフェスト ファイルで level=requireElevation を設定していることを確認してください。タスク スケジューラは、ユーザーに管理者権限を要求することなく、管理者権限でアプリを実行します。これは、管理者権限でタスクをセットアップしたときに既に確立されているためです。

于 2014-08-21T08:14:01.633 に答える
0

不可能です。UAC プロンプトを抑制することはできません。

あなたは自問する必要があります:

Windows XP ではどうなりますか?

ユーザーは Windows XP の標準ユーザーであり、アプリケーションは管理者として実行する必要があります。あなたは:

  • 実行を拒否するつもりですか?
  • 起動時にクラッシュしますか?
  • ユーザーアクセス拒否エラーメッセージを表示しますか?

ユーザーが Windows XP で標準ユーザーとしてアプリケーションを実行することを単に許可されていない場合、UAC はあなたの味方です。UAC は、管理者でなければならないことをユーザーに伝えます。

さらに、(一時的に) 管理者特権を取得できるようにすることもできます。

しかし、次のように自問する必要があります。

Windows Vista ではどうなりますか?

昇格させるには、IT 部門の誰かが 3 つの建物から歩いて行き、「肩越しに」資格情報を入力できるようにする必要があります。おそらく、ユーザーの生活を楽にすることができます。アプリケーションの 99.9% を実行させ、その 0.01% を「管理」モジュールに分割します。

于 2012-05-04T03:36:05.543 に答える