在自动化服务部署时,设置用户服务的最佳做法是什么?

时间:2011-09-19 18:20:11

标签: c++ windows deployment service automation

我们正在尝试自动部署我们创建的一些服务。我们不希望将用户名和密码硬编码到应用程序安装程序中。没有硬编码用户名和登录的问题在于它使发布的自动化成为问题。

如何在msi中打包Windows服务:

  1. 安装服务以在特定用户名下运行,具体取决于环境实例。即在生产中,它在DOMAIN_NAME \ ProductionServiceUser下运行,但如果我们将相同的服务部署到暂存,则服务在DOMAIN_NAME \ StagingServiceUser下运行。

  2. 如果您通过“添加删除程序”卸载服务,则会删除该服务。

1 个答案:

答案 0 :(得分:0)

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

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

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

服务只有在为其设置log on as a service policy时才能在自定义用户帐户下运行,即使它是管理员帐户也是如此。可以在安装期间使用ntrights.exe作为自定义操作设置此策略。