關於服務登入帳戶

當 Win32 型服務啟動時,它會登入本機電腦。 它可以以:

  • 本機或網域用戶帳戶。
  • LocalSystem 帳戶。

登入帳戶會決定服務在運行時間的安全性身分識別,也就是服務的主要安全性內容。 安全性內容決定了服務存取本機和網路資源的能力。 例如,在本機用戶帳戶的安全性內容中執行的服務無法存取網路資源。 相反地,在 Windows 2000 域控制器 (DC) 上 LocalSystem 帳戶的安全性內容中執行的服務將不受限制地存取 DC。 如需詳細資訊,以及用戶帳戶與 LocalSystem 之間優點和限制的討論,請參閱安全性內容和 Active Directory 網域服務

最後,安裝服務之系統上的系統管理員可控制服務的登入帳戶。 基於安全性考慮,某些系統管理員可能無法在LocalSystem帳戶下安裝您的服務。 您的服務必須能夠在網域用戶帳戶下執行。 身為程式設計人員,您可以對服務的登入帳戶執行一些控制。 您的服務安裝程式會在呼叫 CreateService 函式以在主電腦上安裝服務時,指定服務的登入帳戶。 您的安裝程式可以建議預設的登入帳戶,但應該允許系統管理員指定實際的帳戶。

您的安裝程式也可以執行與服務登入帳號相關的下列工作:

  • 安裝。 如果安裝您的服務以在用戶帳戶下執行,您必須先存在帳戶,才能呼叫 CreateService 您可以使用現有的帳戶,或建立一個作為主計算機安裝程式的一部分。 如需詳細資訊,請參閱 設定服務的用戶帳戶
  • 驗證。 如果您想要用戶端使用 Kerberos 相互驗證,請在服務的登入帳戶上註冊 SPN。 如果服務在 LocalSystem 帳戶下執行,則服務的登入帳戶是主電腦的電腦帳戶。 如需詳細資訊,請參閱 服務主體名稱
  • 授與存取權。 請確定服務在運行時間具有執行其工作所需的訪問許可權和許可權。 這可能需要在各種資源的安全性描述元中設定訪問控制專案,也就是目錄對象、檔案共用等,以允許使用者或計算機帳戶的必要訪問許可權。 如需詳細資訊,請參閱 將訪問許可權授與服務登入帳戶
  • 設定許可權。 將許可權指派給指定的登入帳戶,例如以服務身分登入主計算機的許可權。 如需詳細資訊,請參閱 授與主計算機上的登入即服務許可權。

安裝服務之後,有與服務登入帳戶相關的維護工作。 如需詳細資訊,請參閱 登入帳戶維護工作

  • 密碼維護。 對於在使用者帳戶下執行的服務,您必須定期變更密碼,並讓密碼與一或多個本機服務控制管理員用來啟動服務的密碼保持同步。
  • SPN 維護。 如果服務登入賬戶變更,請移除在舊帳戶上註冊的SPN,並在新帳戶上註冊它們。 請注意,安裝服務時,網域管理員可以變更服務執行所在的帳戶;使用 Win32 函式或電腦管理工具的使用者介面。
  • ACE 維護。 如果服務登入賬戶變更,您必須更新 ACE 和群組成員資格,以確保服務仍然可以存取必要的資源。