Freigeben über


ServiceAccount Enumeration

Definition

Legt den Sicherheitskontext eines Dienstes fest, der seinen Anmeldetyp definiert.

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

Felder

LocalService 0

Ein Konto, das sich wie ein Benutzer ohne besondere Berechtigungen auf dem lokalen Computer verhält und für Remoteserver anonyme Anmeldeinformationen verwendet.

LocalSystem 2

Ein vom Dienststeuerungs-Manager verwendetes Konto, das umfangreiche Berechtigungen auf dem lokalen Computer besitzt und als der Computer im Netzwerk agiert.

NetworkService 1

Ein Konto, das umfangreiche lokale Berechtigungen bereitstellt und für jeden Remoteserver die Anmeldeinformationen des Computers verwendet.

User 3

Ein Konto, das von einem bestimmten Benutzer im Netzwerk definiert wird. Das Angeben von User für das Account-Member führt dazu, dass das System zur Eingabe eines gültigen Benutzernamens und Kennworts auffordert, wenn der Dienst installiert wird, sofern Sie nicht für die Username-Eigenschaft und die Password-Eigenschaft der ServiceProcessInstaller-Instanz einen Wert festlegen.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die ServiceAccount Aufzählung verwenden, um neue Programme mithilfe des Sicherheitskontexts des Systemkontos zu installieren.

#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

Hinweise

Verwenden Sie die ServiceAccount Aufzählung, wenn Sie einen ServiceProcessInstaller Sicherheitskontext des von Ihnen installierten Diensts initialisieren. Der Sicherheitskontext gibt die Berechtigungen an, die ein Dienst auf dem System hat und wie die Dienste im Netzwerk handeln (z. B. ob der Dienst die Anmeldeinformationen oder anonymen Anmeldeinformationen des Computers auf Remoteservern darstellt). Die ServiceAccount Aufzählung bietet einen Bereich von Berechtigungen, damit Sie genau die Berechtigungen angeben können, die Sie für einen bestimmten Dienst benötigen.

Der Wert definiert ein hoch privilegiertes Konto, aber die LocalSystem meisten Dienste erfordern keine solche erhöhten Berechtigungsstufen. Die LocalService Elemente und NetworkService Aufzählungselemente stellen eine niedrigere Berechtigungsstufe für den Sicherheitskontext bereit.

Hinweis

Die Werte LocalService und NetworkService sind nur für Windows XP und Windows Server 2003-Familie verfügbar.

Gilt für

Siehe auch