ServiceAccount 枚举

定义

指定服务的安全上下文,安全上下文定义其登录类型。Specifies a service's security context, which defines its logon type.

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

字段

LocalService 0

充当本地计算机上非特权用户的帐户,该帐户将匿名凭据提供给所有远程服务器。An account that acts as a non-privileged user on the local computer, and presents anonymous credentials to any remote server.

LocalSystem 2

服务控制管理员使用的帐户,它具有本地计算机上的许多权限并作为网络上的计算机。An account, used by the service control manager, that has extensive privileges on the local computer and acts as the computer on the network.

NetworkService 1

提供广泛的本地特权的帐户,该帐户将计算机的凭据提供给所有远程服务器。An account that provides extensive local privileges, and presents the computer's credentials to any remote server.

User 3

由网络上特定的用户定义的帐户。An account defined by a specific user on the network. 如果为 Account 成员指定 User,则会使系统在安装服务时提示输入有效的用户名和密码,除非您为 Username 实例的 PasswordServiceProcessInstaller 这两个属性设置值。Specifying User for the Account member causes the system to prompt for a valid user name and password when the service is installed, unless you set values for both the Username and Password properties of your ServiceProcessInstaller instance.

示例

下面的代码示例演示如何通过使用系统ServiceAccount帐户的安全上下文, 使用枚举来安装新的程序。The following code example demonstrates how to use the ServiceAccount enumeration to install new programs by using the system account's security context.

#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的安全上下文。Use the ServiceAccount enumeration when you initialize a ServiceProcessInstaller to specify the security context of the service you are installing. 安全上下文指示服务在系统上的权限, 以及服务在网络上的作用 (例如, 服务是向远程服务器提供计算机的凭据还是向远程服务器提供匿名凭据)。The security context indicates the privileges a service has on the system and how the services act on the network (for example, whether the service presents the computer's credentials or anonymous credentials to remote servers). ServiceAccount枚举提供了一系列权限, 以便您可以指定任何特定服务所需的完全权限。The ServiceAccount enumeration provides a range of privileges so that you can specify exactly the privileges you need for any particular service.

LocalSystem值定义了一个具有高特权的帐户, 但大多数服务不需要此类提升的权限级别。The LocalSystem value defines a highly privileged account, but most services do not require such an elevated privilege level. LocalServiceNetworkService枚举成员为安全上下文提供较低的权限级别。The LocalService and NetworkService enumeration members provide a lower privilege level for the security context.

备注

LocalServiceNetworkService仅适用于 windows XP 和 windows Server 2003 家族。The values LocalService and NetworkService are available only on Windows XP and Windows Server 2003 family.

适用于

另请参阅