ServiceAccount Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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 |
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.