ServiceAccount Enum

Definition

Anger en tjänsts säkerhetskontext, som definierar dess inloggningstyp.

public enum class ServiceAccount
public enum ServiceAccount
type ServiceAccount = 
Public Enum ServiceAccount
Arv
ServiceAccount

Fält

Name Värde Description
LocalService 0

Ett konto som fungerar som en icke-privilegierad användare på den lokala datorn och som presenterar anonyma autentiseringsuppgifter för alla fjärrservrar.

NetworkService 1

Ett konto som ger omfattande lokala privilegier och visar datorns autentiseringsuppgifter för alla fjärrservrar.

LocalSystem 2

Ett konto som används av tjänstkontrollhanteraren och som har omfattande behörigheter på den lokala datorn och fungerar som datorn i nätverket.

User 3

Ett konto som definieras av en specifik användare i nätverket. Om du anger User för Account medlemmen uppmanas systemet att ange ett giltigt användarnamn och lösenord när tjänsten installeras, såvida du inte anger värden för både instansens Username egenskaper och Password egenskaper ServiceProcessInstaller .

Exempel

Följande kodexempel visar hur du använder ServiceAccount uppräkningen för att installera nya program med hjälp av systemkontots säkerhetskontext.

#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

Kommentarer

ServiceAccount Använd uppräkningen när du initierar en ServiceProcessInstaller för att ange säkerhetskontexten för den tjänst som du installerar. Säkerhetskontexten anger vilka privilegier en tjänst har i systemet och hur tjänsterna fungerar i nätverket (till exempel om tjänsten presenterar datorns autentiseringsuppgifter eller anonyma autentiseringsuppgifter för fjärrservrar). Uppräkningen ServiceAccount ger ett antal privilegier så att du kan ange exakt de behörigheter som du behöver för en viss tjänst.

Värdet LocalSystem definierar ett konto med hög behörighet, men de flesta tjänster kräver inte en sådan förhöjd behörighetsnivå. Medlemmarna LocalService och NetworkService uppräkning ger en lägre behörighetsnivå för säkerhetskontexten.

Note

Värdena LocalService och NetworkService är endast tillgängliga i Windows XP och Windows Server 2003-serien.

Gäller för

Se även