使用服務組態

服務組態可讓Windows安裝程式自訂電腦上的服務。 開發人員可以使用ServiceControlServiceInstall資料表和InstallServicesStopServicesDeleteServices動作,撰寫Windows安裝程式套件,在安裝期間安裝、停止、啟動和刪除服務。

從針對 Windows Installer 5.0 撰寫的套件開始,開發人員也可以使用MsiConfigureServices標準動作和MsiServiceConfig 資料表來設定 Windows 7 和 Windows Server 2008 R2 和 Windows Vista 和 Windows Server 2008 可用的擴充服務自訂選項。 針對未包含 MsiServiceConfig 資料表之Windows安裝程式版本所撰寫的現有安裝套件,仍然可以使用 Windows Installer 5.0 來安裝。 Windows安裝程式的服務組態功能無法設定網路服務帳戶、安裝共用服務主機 (svchost) 進程,或重新開機在安裝過程中停止的服務。

Windows XP 和 Windows Server 2003 或更早版本:不支援。 服務組態資料表和標準動作可從 Windows Installer 5.0 開始于 Windows 7 和 Windows Server 2008 R2 上執行,以及 Windows Windows Vista 和 Windows Server 2008 上執行的安裝程式 4.5 開始。

您必須在InstallExecuteSequence資料表中包含MsiConfigureServices巨集指令,以要求您在MsiServiceConfig 資料表中指定的服務組態。 只有當 MsiConfigureServices 標準動作包含在序列資料表中時,Windows安裝程式才會使用 MsiServiceConfig 資料表中的資訊。 MsiConfigureServices 標準動作也會使用 ServiceControlServiceInstall 資料表中的資訊。

若要要求系統只提供特定服務的必要許可權,請在MsiServiceConfig 資料表中指定服務和SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO組態選項。 從服務的進程權杖中移除不必要的許可權。 此選項可用來設定服務在 LocalSystem、LocalService 或 NetworkService 服務使用者帳戶的安全性內容中執行。

若要要求系統在啟動所有其他自動啟動服務之後延遲服務自動啟動,請在MsiServiceConfig 資料表中指定服務和SERVICE_CONFIG_DELAYED_AUTO_START選項。 目前套件必須安裝延遲的服務,且在 ServiceInstall 資料表中指定的SERVICE_AUTO_START,否則服務必須已經安裝為自動啟動服務。

若要要求系統保留資源供特定服務獨佔使用,請指定服務、服務 SID 類型,以及MsiServiceConfig 資料表中的SERVICE_CONFIG_SERVICE_SID_INFO組態選項。 將服務的 SID 新增至資源的存取控制清單 (ACL) 。

若要要求 服務控制管理員 (SCM) 傳送 SERVICE_CONTROL_PRESHUTDOWN 通知至服務之後等候,請執行下列動作。 指定服務、SCM 應該等候的時間長度,以及MsiServiceConfig 資料表中的SERVICE_CONFIG_PRESHUTDOWN_INFO組態選項。

若要在服務失敗後設定系統應該執行動作的時機,請在MsiServiceConfig 資料表中指定服務和SERVICE_CONFIG_FAILURE_ACTIONS_FLAG選項。 將要執行的動作新增至 MsiServiceConfigFailureActions 資料表

如需 Windows Vista 和 Windows Server 2008 作業系統引進的擴充服務自訂功能的詳細資訊,請參閱Windows Vista 的服務變更