方法: サービスのセキュリティ コンテキストを指定する

Note

この記事は、.NET のホステッド サービスには適用されません。 Microsoft.Extensions.Hosting.BackgroundService を使用した Windows サービスの最新のコンテンツと Worker サービス テンプレートについては、次を参照してください:

既定では、サービスはログインしているユーザーのセキュリティ コンテキストとは異なるセキュリティ コンテキストで実行します。 サービスは LocalSystem という名前の既定のシステム アカウントのコンテキストで実行し、このコンテキストはサービスに対してユーザーとは異なるシステム リソースへのアクセス特権を付与します。 この動作を変更し、サービスの実行が異なるユーザー アカウントで行われるように指定することができます。

サービスが実行しているプロセスの Account プロパティを操作することで、セキュリティ コンテキストを設定します。 このプロパティでは、次の 4 種類のアカウントのいずれかに、サービスを設定できます。

  • User: システムは、サービスのインストール時に有効なユーザー名とパスワードの指定を要求し、ネットワーク上の 1 人のユーザーによって指定されたアカウントのコンテキストで実行します。

  • LocalService: ローカル コンピューター上で非特権ユーザーとして機能し、リモート サーバーに匿名の資格情報を提示するアカウントのコンテキストで実行します。

  • LocalSystem: 広範なローカル特権を提供し、リモート サーバーにコンピューターの資格情報を提示するアカウントのコンテキストで実行します。

  • NetworkService: ローカル コンピューター上で非特権ユーザーとして機能し、リモート サーバーにコンピューターの資格情報を提示するアカウントのコンテキストで実行します。

詳細については、ServiceAccount 列挙型のページをご覧ください。

サービスのセキュリティ コンテキストを指定するには

  1. サービスの作成後、必要なインストーラーを追加します。 詳細については、サービス アプリケーションにインストーラーを追加する」を参照してください。

  2. デザイナーで、ProjectInstaller クラスにアクセスし、対象となるサービスのサービス プロセス インストーラーをクリックします。

    Note

    すべてのサービス アプリケーションについて、ProjectInstaller クラスには少なくとも 2 つのインストール コンポーネントがあります。プロジェクト内のすべてのサービスに対するプロセスをインストールするものと、アプリケーションに含まれるサービスごとに 1 つのインストーラーです。 このインスタンスでは、ServiceProcessInstaller を選びます。

  3. [プロパティ] ウィンドウで、Account を適切な値に設定します。

関連項目