windows - 调用 msiexec 的 Windows 服务不会更新服务
问题描述
语境:
我们正在开发一个作为本地系统帐户运行的 Windows 服务。它的功能之一是检测新版本并通过启动来执行自我更新msiexec.exe /i file.msi /qn
。
我们预计该服务将更新并使用新版本重新启动。但是,我们观察到安装以“MainEngineThread 正在返回 1603”结束。
我们已经阅读了https://docs.microsoft.com/en-us/troubleshoot/windows-server/application-management/msi-installation-error-1603,在分析了可能的原因后,我们得出结论:
- Windows Installer 正在尝试安装您的 PC 上已安装的应用程序。但是,这是一个新版本。所以,应该没有问题。
- 您尝试安装 Windows Installer 程序包的文件夹未加密。
- 包含您尝试安装 Windows Installer 程序包的文件夹的驱动器不会作为替代驱动器访问。
- SYSTEM 帐户对您尝试将 Windows Installer 程序包安装到的文件夹具有完全控制权限。您注意到错误消息是因为 Windows Installer 服务使用 SYSTEM 帐户安装软件。
问题:
msiexec.exe
当前通过从服务或子进程调用来自我更新Windows服务的解决方案可能吗?我们缺少什么?- 如果当前的解决方案不可行,Windows 服务执行自我更新的解决方案是什么?
解决方案
推荐阅读
- javascript - 使用 Google 增强型电子商务,在添加/从购物车中删除时,数量值应该代表什么?
- kubernetes - pod.containers.spec.resources 不起作用(限制和请求)Kubernetes
- python - 使用字符串和 python 列表参数从终端运行 shell 脚本
- python - Flask 身份验证和蓝图
- cakephp-3.0 - 在 Web 应用程序中使用 httpClient 会导致错误(cakephp3 App On GCE)
- java - 比较两个列表的内容,Java,Selenium
- sql - SQL - 查找列日期是否至少部分包含日期范围
- qt - QML:没有调用 Rectangle 的 MouseArea 上的 onClicked 方法
- gruntjs - 无法使用 'in' 运算符搜索 'src' Grunt
- artifactory - 无法收集对本地 Artifactory Pypi 存储库的补丁依赖项