UACを無効にすると、プログラムは管理者権限なしで実行されます

UACを無効にすると、プログラムは管理者権限なしで実行されます

管理者以外のアカウントで、UAC なしで管理者として C# コンソール アプリケーションを実行したいです。問題は、タスク スケジューラまたは Microsoft 互換性キットを使用して UAC を無効にすると、アプリが管理者以外の権限で実行されることです。管理者権限でアプリを実行できるのは、右クリックして [管理者として実行] を選択し、パスワードを入力するときだけです。しかし、これはしたくありません。管理者以外のアカウントで管理者権限を使用してアプリを実行したいのですが、どこに問題があるのか​​わかりません。正しいパスワードで管理者アカウントを使用して、"runas" でアプリケーションを実行しようとすると、アクセスが拒否されましたというメッセージが表示されます。問題がアプリケーションにあるか、他の場所にあるかわかりません。

ありがとう

答え1

アプリケーションマニフェストファイルを追加し、次のコードを入力します。

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

答え2

タスク スケジューラを使用して「最高の権限で実行する」プロセスは、UAC をバイパスする方法ではありません。

ログオンしたユーザーと対話して実行する必要があるアプリケーションがある場合、そのアプリケーションはユーザーの権限で実行されます。タスク スケジューラを使用して別のユーザーとしてタスクを実行することはできますが、その場合、ログオンしたユーザーとは対話しなくなります。ログインしたユーザーとしてタスクを実行すると、アプリケーションはユーザーが持つ最高の権限に制限されます。

アプリケーション互換性ツールキットを使用する他の手順でも、問題は解決されません。このツールキットでは、管理者パスワードを「要求」しているものの、実際には管理者権限を「必要としない」不正な動作をするアプリケーションを取り上げ、UAC / 管理者プロンプトなしで実行できるようにします。

アプリケーションに管理者権限が必要な場合、ユーザーはそのユーザーのユーザー名とパスワードを使用して、管理者権限を持つ別のユーザーとしてアプリケーションを実行する必要があります。そうしないと、アプリケーションは失敗します。

コンピューターで UAC を無効にすると、システムのセキュリティが大幅に低下するだけでなく、制限されたユーザー アカウントでアプリを実行するときに、管理者ユーザーの資格情報を使用して昇格するように要求されなくなり、管理者アクセスを必要とするアプリケーションは失敗します。

ここでの問題は、アプリが管理者権限を必要とすることです。これを修正する必要があります。管理者権限が必要なのはなぜですか? なぜですか? 管理者権限が不要なように再設計してください。そうしないと、管理者以外のユーザーが管理者権限でアプリケーションを実行できるようにする「安全な」方法はありません。標準ユーザーが使用するためにそのレベルの権限を必要とするアプリケーションを設計することは、もはや受け入れられる方法ではなく、何年も前から受け入れられていません。

標準ユーザーに管理者としてアプリケーションを実行させる必要がある場合は、「ru​​nas」コマンドまたはサードパーティの管理者ツールを使用して、ユーザーがアクセスを要求し、管理者がリモートで応答してアプリケーションを許可できるようにします。繰り返しますが、問題は OS ではなくアプリにあります。これを回避しようとすることは、そもそもユーザーが制限付きアカウントを使用する必要があるほとんどのユースケースでは受け入れられません。

関連情報