Udostępnij za pośrednictwem


ServiceAccount Wyliczenie

Definicja

Określa kontekst zabezpieczeń usługi, który definiuje jego typ logowania.

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

Pola

LocalService 0

Konto, które działa jako użytkownik nieuprzywilejowany na komputerze lokalnym i przedstawia anonimowe poświadczenia do dowolnego serwera zdalnego.

LocalSystem 2

Konto używane przez menedżera kontroli usługi, które ma szerokie uprawnienia na komputerze lokalnym i działa jako komputer w sieci.

NetworkService 1

Konto, które zapewnia rozbudowane uprawnienia lokalne i przedstawia poświadczenia komputera do dowolnego serwera zdalnego.

User 3

Konto zdefiniowane przez określonego użytkownika w sieci. Określenie User elementu członkowskiego powoduje, że system wyświetli monit o prawidłową nazwę użytkownika i hasło podczas instalowania usługi, chyba że ustawiono wartości zarówno dla Username właściwości wystąpieniaServiceProcessInstaller, jak i Password Account .

Przykłady

Poniższy przykład kodu pokazuje, jak używać wyliczenia ServiceAccount do instalowania nowych programów przy użyciu kontekstu zabezpieczeń konta systemowego.

#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

Uwagi

Użyj wyliczenia ServiceAccount podczas inicjowania ServiceProcessInstaller elementu , aby określić kontekst zabezpieczeń instalowanej usługi. Kontekst zabezpieczeń wskazuje uprawnienia usługi w systemie i sposób działania usług w sieci (na przykład tego, czy usługa przedstawia poświadczenia komputera, czy anonimowe poświadczenia do serwerów zdalnych). Wyliczenie ServiceAccount zapewnia szereg uprawnień, dzięki czemu można określić dokładnie uprawnienia potrzebne dla dowolnej usługi.

Wartość LocalSystem definiuje wysoce uprzywilejowane konto, ale większość usług nie wymaga takiego poziomu uprawnień z podwyższonym poziomem uprawnień. Elementy LocalService członkowskie i NetworkService wyliczenia zapewniają niższy poziom uprawnień dla kontekstu zabezpieczeń.

Uwaga

Wartości LocalService i NetworkService są dostępne tylko dla rodziny Windows XP i Windows Server 2003.

Dotyczy

Zobacz też