使用Windows服务更新软件包会重置服务的帐户和密码

 宝贝娜娜121_562 发布于 2022-12-10 19:31

我正在使用WiX处理MSI安装程序.我试图尽可能简化开发:这是一个内部产品,我的用户就是我们的IT人员.

该产品包括一个Windows服务,必须配置为在每台计算机的不同帐户下运行.

我为我的用户规划的工作流程(首次安装)如下:

    运行安装程序(安装程序在默认帐户下设置服务)

    通过sc或本地服务小程序停止服务

    更新服务属性以在正确的计算机专用帐户下运行.(每台计算机的帐户不同,只有IT人员才能访问密码.)

    重启服务

后续更新将包括从更新的MSI文件安装.

测试"小"更新时,我惊讶地发现安装程序将服务重置为在默认帐户下运行.这对我来说是一个主要问题,因为它使我的用户很难更新他们的服务器.每次有更新时,他们都必须在每台机器上重新输入帐户信息.我预计会发生"重大"更新,但不是"小"更新.

    有没有办法配置安装程序,以便它不会在"小"或"次要"更新期间更改服务的现有帐户/密码配置?

    这也会在"修复"过程中发生(我还没试过)?

这是我的组件在.wxs文件中的样子:


  
  
    
  
  

Remove="uninstall"如果没有任何变化,我原本预计会保留服务.显然不是.(如果在"主要"更新中发生这种情况,我不会太担心).

我还注意到ServiceConfig元素的属性(OnReinstall)似乎符合条件,但基于蜡烛错误消息,很明显,它OnReinstall只是为了影响元素的配置成员(PreShutdownDelay等等)而不是服务安装.整个.

我调查过这些:

让用户指定服务运行的帐户

WiX MajorUpgrade of Windows Service,保留.config,并避免重启

如何在wix中进行重大升级时停止并且不卸载Windows服务?

奇怪的是,这个答案表明这只是"主要"升级的问题.那不是我的经历.我的经历是侥幸吗?

如何在WiX中创建用户输入的自定义对话框?

在安装过程中提示输入帐户和密码会很好,但是在这种情况下将密码存储在注册表或其他地方并不是一个真正的选择,并且必须在每次更新时重新输入凭据就像必须重新配置一样具有破坏性.手工服务.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有