指定服務的安全上下文,安全上下文定義其登入類型。
命名空間: System.ServiceProcess
程式集: System.ServiceProcess(在 System.ServiceProcess.dll 中)
成員名稱 | 說明 |
---|---|
LocalService | 充當本地計算機上非特權使用者的帳戶,該帳戶将匿名憑據提供給所有遠端伺服器。 |
LocalSystem | 服務控制管理者使用的帳戶,它具有本地計算機上的許多權限并作為網絡上的計算機。 |
NetworkService | 提供廣泛的本地特權的帳戶,該帳戶将計算機的憑據提供給所有遠端伺服器。 |
User | 由網絡上特定的使用者定義的帳戶。 如果為 ServiceProcessInstaller.Account 成員指定 User,則會使系統在安裝服務時提示輸入有效的使用者名和密碼,除非您為ServiceProcessInstaller 執行個體的 Username 和 Password 這兩個屬性設定值。 |
備注
當初始化 ServiceProcessInstaller 以指定要安裝的服務的安全上下文時,請使用 ServiceAccount 枚舉。 安全上下文訓示服務在系統上的特權并訓示服務在網絡上如何操作(例如,服務是否将計算機的憑據或匿名憑據提供給遠端伺服器)。 該ServiceAccount 枚舉提供一系列特權,以便您可以為任何特定的服務指定正好需要的特權。
LocalSystem 值定義具有高度特權的帳戶,但大多數服務不需要這種提高的特權級别。 LocalService 和 NetworkService枚舉成員為安全上下文提供較低的特權級别。
示例
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]");
}
}