使用服务配置

服务配置使Windows安装程序能够自定义计算机上的服务。 开发人员可以使用 ServiceControlServiceInstall 表以及 InstallServices、StopServicesDeleteServices 操作创作Windows安装程序包,以在安装期间安装、停止、启动和删除服务

从为 Windows Installer 5.0 编写的包开始,开发人员还可以使用 MsiConfigureServices 标准操作和 MsiServiceConfig 表来配置可用于 Windows 7 和 Windows Server 2008 R2 和 Windows Vista 和 Windows Server 2008 的扩展服务自定义选项。 仍可使用 Windows Installer 5.0 安装为不包含 MsiServiceConfig 表的 Windows 安装程序版本编写的现有安装包。 Windows安装程序的服务配置功能无法配置网络服务帐户、安装共享服务主机 (svchost) 进程,或重启在安装过程中停止的服务。

Windows XP 和 Windows Server 2003 或更低版本:不支持。 服务配置表和标准操作从 Windows Installer 5.0 开始在 Windows 7 上运行,Windows Server 2008 R2 和 Windows Installer 4.5 在 Windows Vista 和 Windows Server 2008 上运行。

必须在 InstallExecuteSequence 表中包括 MsiConfigureServices 操作,以请求在 MsiServiceConfig 表中指定的服务配置。 仅当 MsiConfigureServices 标准操作包含在序列表中时,Windows安装程序才使用 MsiServiceConfig 表中的信息。 MsiConfigureServices 标准操作还使用 ServiceControlServiceInstall 表中的信息。

若要请求系统仅向特定服务授予所需的权限,请在 MsiServiceConfig 表中指定服务和SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO配置选项。 从服务的进程令牌中删除不需要的权限。 此选项可用于配置在本地系统、LocalService 或 NetworkService 服务用户帐户的安全上下文中运行的服务。

若要请求系统在启动所有其他自动启动服务后将服务自动启动延迟一段时间,请在 MsiServiceConfig 表中指定服务和SERVICE_CONFIG_DELAYED_AUTO_START选项。 当前包必须安装延迟的服务,并在 ServiceInstall 表中指定的SERVICE_AUTO_START,或者服务必须已安装为自动启动服务。

若要请求系统保留资源以独占使用特定服务,请在 MsiServiceConfig 表中指定服务、服务 SID 类型和SERVICE_CONFIG_SERVICE_SID_INFO配置选项。 将服务的 SID 添加到资源的访问控制列表 (ACL) 。

若要请求 服务控制管理器 在将 SERVICE_CONTROL_PRESHUTDOWN 通知发送到服务后 (SCM) 等待,请执行以下操作。 指定服务、SCM 应等待的时间长度以及 MsiServiceConfig 表中的SERVICE_CONFIG_PRESHUTDOWN_INFO配置选项。

若要在服务失败后配置系统何时应运行操作,请在 MsiServiceConfig 表中指定服务和SERVICE_CONFIG_FAILURE_ACTIONS_FLAG选项。 将要运行的操作添加到 MsiServiceConfigFailureActions 表

有关 Windows Vista 和 Windows Server 2008 操作系统引入的扩展服务自定义功能的详细信息,请参阅 Windows Vista 的服务更改