次の方法で共有


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

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

既定では、サービスはログイン ユーザーとは異なるセキュリティ コンテキストで実行されます。 サービスは、 LocalSystemと呼ばれる既定のシステム アカウントのコンテキストで実行され、ユーザーとは異なるアクセス権限をシステム リソースに付与します。 この動作を変更して、サービスを実行する別のユーザー アカウントを指定できます。

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

  • Userサービスがインストールされ、ネットワーク上の単一のユーザーによって指定されたアカウントのコンテキストで実行されるときに、システムが有効なユーザー名とパスワードを求めるメッセージを表示します。

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

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

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

詳細については、ServiceAccount 列挙型をご確認ください。

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

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

  2. デザイナーで、 ProjectInstaller クラスにアクセスし、使用しているサービスのサービス プロセス インストーラーをクリックします。

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

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

こちらも参照ください