Windows Installer 会话的缓慢主要是由于它的回滚功能。首先,它会在安装或卸载之前创建一个还原点(前提是系统还原未被禁用)。然后它将在卸载和安装过程中备份所有受影响的文件和注册表项,以确保系统在发生错误时可以恢复到其原始状态。更高版本的 Windows Installer 提供了一些方法来禁用这种复杂性并加快速度。请参阅下面的技术信息。
在撰写本文时,Windows Installer 的最新更新Windows Installer 5(适用于 Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7)具有一个新属性MSIFASTINSTALL,可用于加快安装一个大的 MSI 包。有关有效值,请参见上面的链接。我建议3没有还原点,只有FileCosting(确定磁盘空间要求的过程)。或7以减少进度消息的频率。
正常的“成本核算”具有大量功能、组件、磁盘和注册表比较以及系统上存在的内容与正在安装的内容之间的计算。在我看来,其中大部分是很少必要的(客户端 PC 上的磁盘空间通常很充足——而在 2018 年的现实中,由于 SD 磁盘较小,空间问题可能已经重新浮出水面......),但让完整的磁盘空间显然更安全成本核算。
快速总结
3
或7
)背景资料
Windows Installer 会话的缓慢主要是由于它的回滚功能。首先,它会在安装或卸载之前创建一个还原点(前提是系统还原未被禁用)。然后它将在卸载和安装过程中备份所有受影响的文件和注册表项,以确保系统在发生错误时可以恢复到其原始状态。更高版本的 Windows Installer 提供了一些方法来禁用这种复杂性并加快速度。请参阅下面的技术信息。
另一个速度因素是MSI 中的所有组件和功能都将在注册表中注册。这涉及相当多的开销,但对于实现重要的公司部署和系统管理优势是必要的。没有其他部署技术具有这种级别的控制。
带有嵌入式源文件的大型 MSI 文件可能需要大量时间才能将其安装程序文件提取到临时文件夹。这有时可能是最大的瓶颈。建议运行管理员安装以从此类包中提取源文件,以便它们与 MSI 文件本身并排显示,从而无需在每台计算机上本地提取文件,从而节省部署时间。这是另一篇简单描述从 MSI 包中提取文件的文章。
技术信息
更新(2018 年 2 月):您可以在非常特殊的情况下设置名为FASTOEM的属性(请参阅链接内容)以加快部署速度。我从未尝试过,但值得一读。我怀疑你会成功有效地使用它,但它可能值得一试。
在撰写本文时,Windows Installer 的最新更新Windows Installer 5(适用于 Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7)具有一个新属性MSIFASTINSTALL,可用于加快安装一个大的 MSI 包。有关有效值,请参见上面的链接。我建议3没有还原点,只有FileCosting(确定磁盘空间要求的过程)。或7以减少进度消息的频率。
正常的“成本核算”具有大量功能、组件、磁盘和注册表比较以及系统上存在的内容与正在安装的内容之间的计算。在我看来,其中大部分是很少必要的(客户端 PC 上的磁盘空间通常很充足——而在 2018 年的现实中,由于 SD 磁盘较小,空间问题可能已经重新浮出水面......),但让完整的磁盘空间显然更安全成本核算。
也可以设置DISABLEROLLBACK属性以禁用 MSI 安装程序中的回滚支持。我强烈建议您不要使用它,除非您准备新的 PC。这是一种特殊情况,如果出现故障,您可以重新开始。对于实际使用的计算机,我不建议启用此属性。
具有讽刺意味的是,如果您正在运行替换大量文件的大型更新包或任何大型卸载(因为卸载会将所有已删除的文件移动到回滚区域),禁用回滚将加快速度。它可能非常重要,但不安全。您只需在命令行中设置此属性: msiexec.exe /I "D:\winzip112.msi" /QN MSIFASTINSTALL=3 DISABLEROLLBACK=1
行政安装
最后,如上面在背景信息中所述,运行 MSI 文件的管理安装以提取文件,以便提取不会在每台计算机上本地进行。这假设您在一个相当快的网络上,并且文件复制发生时没有太多延迟。我想高延迟的无线网络可能会使提取的小文件变得更慢,这些文件必须一个一个地复制。您只需将 /a 传递给安装文件即可运行管理员安装:
或者
然后,您需要按照提示选择文件的提取位置。有关讨论此功能的线程,请参见superuser.com。
一些链接:
速度: