语境:
我们正在开发一个作为本地系统帐户运行的 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 服务执行自我更新的解决方案是什么?