针对服务器运行以安装 msi;事件日志干净且一切成功;但 bin 目录中的密钥文件仍然很旧。后来尝试通过 RDP 双击直接安装到服务器;安装成功,bin 文件已更新。
-> 无需重新启动,且两种情况均不涉及重新启动。-> 为什么会发生这种情况?我在哪里可以找到更多日志?-> 服务器是 Windows 2008 R2
答案1
这最有可能的原因这是因为你运行了 MSI默默通过 WMI 和互动地登录服务器时(安装根本没有运行)。这是你实际做的吗?还有其他原因也可能导致同样的问题。我们需要查看更新命令文件以确保无误。
首先要处理静默与互动的问题:安装顺序每个 MSI 文件中都有,其中最重要的两个是:
- 用户界面序列- 显示 MSI 的用户界面,您可以输入数据并在屏幕之间导航以及中止设置。
- 安装执行序列- 这是当您单击用户界面序列中的最后一个按钮时启动的实际安装序列。
静默安装期间会发生的情况是跳过整个 UserInterfaceSequence。这通常没有问题,并且不会对正确编写的 MSI 包造成任何问题。但是,有时,或者实际上现在经常如此,安装程序开发人员没有将安装过程中需要运行的所有自定义操作或脚本插入到静默安装序列中,导致静默运行时安装不完整。虽然您报告的症状(文件未更新)是不是虽然这是此静默安装问题最典型的表现,但它仍可能是一个原因。其他原因可能包括命令行不正确,或者我不知道的 WMI 干扰。我从不使用 WMI 来安装 MSI 文件,因为运行 MSI 文件的许多其他方法。 这是另一个线程处理 msiexec.exe 的替代品部署(我猜在底层所有这些不同的方式都调用C 风格的 Windows 32 API)。
适当支持静默安装是一个MSI 的绝对要求- 它必须能够安静地运行,否则从定义上讲它就不是正确编写的。但总会有做错事的方法,而且仍然有许多软件包不符合要求。对于企业用途静默安装通常是 MSI 中唯一经常使用的功能。它是MSI 文件的主要优点。
在专业应用程序打包器我们会针对每种情况找到处理方法。通常需要大量修改 MSI 文件以确保所有需要运行的功能都能运行。例如服务器安装这通常不值得付出努力,因为以交互方式运行设置更容易。但是,公司现在使用越来越多的瘦客户端,因此有更多专用服务器来运行网络,在这些情况下,静默安装同样重要。更好的解决方案是将整个 MSI 发回给供应商并让他们修理它。查看我的临时列表供应商 MSI 文件的常见设计问题。在 MSI 被发回之前,您不需要太多这样的错误。