ServiceAccount 列挙型

定義

ログオンの種類を定義するサービスのセキュリティ コンテキストを指定します。

public enum class ServiceAccount
public enum ServiceAccount
type ServiceAccount = 
Public Enum ServiceAccount
継承
ServiceAccount

フィールド

名前 説明
LocalService 0

ローカル コンピューターで特権のないユーザーとして機能し、リモート サーバーに匿名の資格情報を提示するアカウント。

NetworkService 1

広範なローカル特権を提供し、コンピューターの資格情報を任意のリモート サーバーに提示するアカウント。

LocalSystem 2

ローカル コンピューターに対する広範な特権を持ち、ネットワーク上のコンピューターとして機能する、サービス コントロール マネージャーによって使用されるアカウント。

User 3

ネットワーク上の特定のユーザーによって定義されたアカウント。 User メンバーにAccountを指定すると、Username インスタンスの Password プロパティと ServiceProcessInstaller プロパティの両方の値を設定しない限り、サービスのインストール時にシステムで有効なユーザー名とパスワードの入力を求められます。

次のコード例では、 ServiceAccount 列挙体を使用して、システム アカウントのセキュリティ コンテキストを使用して新しいプログラムをインストールする方法を示します。

#using <System.dll>
#using <System.ServiceProcess.dll>
#using <System.Configuration.Install.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Configuration::Install;
using namespace System::ServiceProcess;
using namespace System::ComponentModel;

[RunInstaller(true)]
public ref class MyProjectInstaller : public Installer
{
private:
    ServiceInstaller^ serviceInstaller1;
    ServiceInstaller^ serviceInstaller2;
    ServiceProcessInstaller^ processInstaller;

public:
    MyProjectInstaller()
    {
        // Instantiate installers for process and services.
        processInstaller = gcnew ServiceProcessInstaller;
        serviceInstaller1 = gcnew ServiceInstaller;
        serviceInstaller2 = gcnew ServiceInstaller;

        // The services run under the system account.
        processInstaller->Account = ServiceAccount::LocalSystem;

        // The services are started manually.
        serviceInstaller1->StartType = ServiceStartMode::Manual;
        serviceInstaller2->StartType = ServiceStartMode::Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller1->ServiceName = "Hello-World Service 1";
        serviceInstaller2->ServiceName = "Hello-World Service 2";

        // Add installers to collection. Order is not important.
        Installers->Add( serviceInstaller1 );
        Installers->Add( serviceInstaller2 );
        Installers->Add( processInstaller );
    }

    static void Main()
    {
        Console::WriteLine("Usage: InstallUtil.exe [<service>.exe]");
    }
};

int main()
{
    MyProjectInstaller::Main();
}
using System;
using System.Collections;
using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;

[RunInstaller(true)]
public class MyProjectInstaller : Installer
{
    private ServiceInstaller serviceInstaller1;
    private ServiceInstaller serviceInstaller2;
    private ServiceProcessInstaller processInstaller;

    public MyProjectInstaller()
    {
        // Instantiate installers for process and services.
        processInstaller = new ServiceProcessInstaller();
        serviceInstaller1 = new ServiceInstaller();
        serviceInstaller2 = new ServiceInstaller();

        // The services run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem;

        // The services are started manually.
        serviceInstaller1.StartType = ServiceStartMode.Manual;
        serviceInstaller2.StartType = ServiceStartMode.Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller1.ServiceName = "Hello-World Service 1";
        serviceInstaller2.ServiceName = "Hello-World Service 2";

        // Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller1);
        Installers.Add(serviceInstaller2);
        Installers.Add(processInstaller);
    }

    public static void Main()
    {
        Console.WriteLine("Usage: InstallUtil.exe [<service>.exe]");
    }
}
Imports System.Collections
Imports System.Configuration.Install
Imports System.ServiceProcess
Imports System.ComponentModel

<RunInstallerAttribute(True)> _
Public Class MyProjectInstaller
    Inherits Installer
    Private serviceInstaller1 As ServiceInstaller
    Private serviceInstaller2 As ServiceInstaller
    Private processInstaller As ServiceProcessInstaller    
    
    Public Sub New()
        ' Instantiate installers for process and services.
        processInstaller = New ServiceProcessInstaller()
        serviceInstaller1 = New ServiceInstaller()
        serviceInstaller2 = New ServiceInstaller()
        
        ' The services will run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem
        
        ' The services will be started manually.
        serviceInstaller1.StartType = ServiceStartMode.Manual
        serviceInstaller2.StartType = ServiceStartMode.Manual
        
        ' ServiceName must equal those on ServiceBase derived classes.            
        serviceInstaller1.ServiceName = "Hello-World Service 1"
        serviceInstaller2.ServiceName = "Hello-World Service 2"
        
        ' Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller1)
        Installers.Add(serviceInstaller2)
        Installers.Add(processInstaller)
    End Sub

    Public Shared Sub Main()
        Console.WriteLine("Usage: InstallUtil.exe [<service>.exe]")
    End Sub
End Class

注釈

ServiceAccountを初期化して、インストールするサービスのセキュリティ コンテキストを指定する場合は、ServiceProcessInstaller列挙体を使用します。 セキュリティ コンテキストは、サービスがシステムに対して持つ特権と、サービスがネットワーク上でどのように動作するかを示します (たとえば、サービスがコンピューターの資格情報または匿名の資格情報をリモート サーバーに提示するかどうかなど)。 ServiceAccount列挙は、特定のサービスに必要な特権を正確に指定できるように、さまざまな特権を提供します。

LocalSystem値は高い特権を持つアカウントを定義しますが、ほとんどのサービスでは、このような昇格された特権レベルは必要ありません。 LocalServiceおよびNetworkService列挙メンバーは、セキュリティ コンテキストの特権レベルを低くします。

Note

LocalServiceNetworkService は、Windows XP および Windows Server 2003 ファミリでのみ使用できます。

適用対象

こちらもご覧ください