使用服務設定
服務組態可讓 Windows Installer 自定義電腦上的 服務。 開發人員可以使用 ServiceControl 和 ServiceInstall 數據表和 InstallServices、StopServices 和 DeleteServices 動作來撰寫 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 Installer 5.0 以及 Windows Vista 和 Windows Server 2008 上執行的 Windows Installer 4.5 開始,即可使用服務組態表和標準動作。
您必須在 InstallExecuteSequence 表中包含 MsiConfigureServices 動作,以設置您在 MsiServiceConfig 表中指定的服務配置。 只有當 MsiConfigureServices 標準動作包含在序列數據表中時,Windows Installer 才會使用 MsiServiceConfig 數據表中的資訊。 MsiConfigureServices 標準動作也會使用 ServiceControl 和 ServiceInstall 數據表中的資訊。
若要要求系統只提供特定服務的必要許可權,請在 MsiServiceConfig 資料表中指定服務和 SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 組態選項,。 從服務的進程令牌中移除不必要的許可權。 此選項可用來設定在 LocalSystem、LocalService 或 NetworkService 服務使用者帳戶的安全性內容中執行的服務,。
若要要求系統在啟動所有其他自動啟動服務之後,將服務自動啟動延遲一段時間,請在 MsiServiceConfig 資料表中指定服務與 SERVICE_CONFIG_DELAYED_AUTO_START 選項,。 延遲的服務必須由目前套件安裝,且SERVICE_AUTO_START在 ServiceInstall 數據表中指定,否則服務必須已經安裝為自動啟動服務。
若要要求系統保留資源供特定服務獨佔使用,請指定服務、服務 SID 類型,以及 MsiServiceConfig 資料表中的 SERVICE_CONFIG_SERVICE_SID_INFO 組態選項,。 將服務的 SID 新增至資源的存取控制清單 (ACL)。
若要請求 服務控制管理員 (SCM) 在傳送 SERVICE_CONTROL_PRESHUTDOWN 通知至服務後等候,請按以下步驟操作。 指定服務、SCM 應等候的時間長度,以及 SERVICE_CONFIG_PRESHUTDOWN_INFO 組態選項在 MsiServiceConfig 資料表中的位置。
若要設定系統在服務失敗後應該執行動作的時機,請在 MsiServiceConfig 資料表中指定服務與 SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 選項,。 將要執行的動作新增至 MsiServiceConfigFailureActions 資料表。
如需了解 Windows Vista 和 Windows Server 2008 作業系統引入的擴展服務自訂功能的更多資訊,請參閱 Windows Vista 的服務變更。