使用服務組態

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

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

Windows XP 和 Windows Server 2003 或更早版本: 不支援。 服務組態表和標準動作可從 Windows 7 和 Windows Server 2008 R2 和 Windows Vista 和 Windows Server 2008 上執行的 Windows Installer 5.0 開始提供。

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

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

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

若要要求系統保留資源以獨佔使用特定服務,請在MsiServiceConfig 資料表中指定服務、服務 SID 類型和SERVICE_CONFIG_SERVICE_SID_INFO組態選項。 將服務的 SID 新增至資源的 存取控制 List (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 的服務變更