UAC が有効な場合に Windows サービスを管理するための権限を割り当てるにはどうすればよいでしょうか?

UAC が有効な場合に Windows サービスを管理するための権限を割り当てるにはどうすればよいでしょうか?

次のようなシナリオがあります:

  • 私はWindows 7 EnterpriseとUACが有効になっているコンピューターのローカル管理者です
  • コンピュータはドメインに属しておらず、グループ ポリシーにも属していません
  • 管理者として実行せずにプログラムを実行する
  • このプログラムは、ローカルにインストールされた Windows サービスを制御する必要がある場合があります (手動開始オプションを使用)
  • 初期プログラムを管理者として実行しない場合、または UAC を無効にしない場合、Windows サービスを制御するのは失敗します。

昇格した権限で実行したり、UAC を無効にしたりせずに、この特定のサービスを制御する権限を自分のアカウントに付与するにはどうすればよいですか?

答え1

サービスには、ほぼすべての Windows オブジェクトと同様に ACL が関連付けられており、これを変更してアクセスを許可することができます。

私の知る限り、サービス ACL を管理するための公式 UI は存在しないため、次の 2 つのオプションが残ります。

  1. ダウンロードプロセスエクスプローラーサービスを開始します (ProcExp は実行中のサービスのみを表示します)。ProcExp で、サービスのプロセスをダブルクリックします (または右クリックして [プロパティ] をクリックします)。[サービス] タブをクリックします。通常、プログラムは特定のユーザーによって実行されます - そのユーザーを追加します。[詳細] をクリックします。管理できる権限には、このサービスの停止/開始、およびカスタム定義のコマンドの送信が含まれます。

    プロセスハッカー同様ですが、停止したサービスも管理できます。

  2. sc sdshow、学ぶACE 構文そしてアクセス権セキュリティ記述子を編集し、 に返しますsc sdset

関連情報