7

管理者権限なしでウィンドウサービスを開始および停止する方法は?

アプリケーションを起動すると、サービスが閉じられると停止するのと同じ方法でサービスが開始されます。「サービスコントローラー」を使用してこれを行うことができます

管理者権限でサービスをインストールできますが、サービスを開始および停止するには、管理者権限を要求しないでください。

c#を使用してこれを達成する方法を誰か教えてもらえますか?

4

1 に答える 1

3

管理者以外のユーザーにサービスの開始/停止を許可する方法を発見しました。サービスのグループポリシーを提供できるため、管理者権限なしでこれを開始/停止できます。このタスクを達成するための2つのアプローチを見つけました。

アプローチ1:

  1. 「mmc.exe」からコンソールを作成します
  2. 空白のセキュリティテンプレートを作成しました
  3. ポリシー情報を保存するためのセキュリティデータベースを作成しました
  4. 権限を付与したいユーザーへのサービス権限を変更します
  5. 新しいセキュリティ許可を適用しました(私はこのブログを参照しました)

このアプローチは完全に機能します。1つの仮想マシンに2つの非管理者ユーザーアカウントを作成し、管理者アカウントからアクセス許可を設定しました。両方の非管理者ユーザーアカウントからサービスを開始および停止できました。ただし、このアプローチは問題の完全な解決策ではありませんでした。多くの手動手順が必要です。だから私はこのプロセスを自動化することを探し始めます。その結果、アプローチ2を見つけました

アプローチ2:「Subinacl.exe」を使用してアクセス許可を付与するSubInACLは、管理者がファイル、レジストリキー、およびサービスに関するセキュリティ情報を取得し、この情報をユーザー間、ローカルまたはグローバルグループから転送できるようにするコマンドラインツールです。グループに、そしてドメインからドメインに。

2つの非管理者ユーザーアカウントを作成し、コマンドSUBINACL / SERVICE \ DomainName \ MyService / GRANT = DomainName \ USERS = TOPを実行するという同じ例に従って、ユーザーにサービスの開始/停止を許可します。

于 2012-06-05T13:39:05.567 に答える