在自动化服务部署时设置用户服务运行的最佳实践是什么?

What is the best practice for setting user service runs under when automating service deployment?

本文关键字:最佳 是什么 运行 用户服务 服务 自动化 服务部 部署 设置      更新时间:2023-10-16

我们正在尝试自动化我们创建的一些服务的部署。我们不想将用户名和密码硬编码到应用程序安装程序中。不硬编码用户名和登录名的问题是,它使发布的自动化出现问题。

如何将windows服务打包到msi中,以便:

  1. 服务被安装为在特定的用户名下运行,这取决于环境实例。例如,在生产环境中,它运行在DOMAIN_NAMEProductionServiceUser下,但如果我们将相同的服务部署到登台环境中,服务运行在DOMAIN_NAMEStagingServiceUser下。

  2. 如果您通过"添加删除程序"卸载服务,该服务将被删除。

要自动安装和卸载服务,您可以使用Windows安装程序支持:

  • http://msdn.microsoft.com/en-us/library/windows/desktop/aa371637 (v = vs.85) . aspx
  • http://msdn.microsoft.com/en-us/library/windows/desktop/aa371634 (v = VS.85) . aspx

Visual Studio安装项目不支持服务表。因此,如果您正在使用它,则需要编写管理服务的安装和卸载自定义操作。其他设置创建工具提供对服务的直接支持。

要动态设置服务帐户,可以使用自定义安装程序属性,例如SERVICE_ACCOUNT。在安装过程中,您可以将此属性设置为所需的帐户。这可以通过多种方式实现:自定义动作,对话框控件,命令行等。

服务只能在为其设置了作为服务登录策略的情况下在自定义用户帐户下运行,即使它是管理员帐户。此策略可以在安装期间通过使用ntrights.exe作为自定义操作来设置。

相关文章: