AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 594660
Accepted
Stein Åsmul
Stein Åsmul
Asked: 2014-05-13 15:55:26 +0800 CST2014-05-13 15:55:26 +0800 CST 2014-05-13 15:55:26 +0800 CST

如何加快 MSI 软件包的安装和卸载速度?

  • 772

安装和卸载Windows Installer 包或称为 MSI 文件时,安装进度似乎比其他安装包慢得多。

为什么会这样,我该怎么做才能加快速度?

installation
  • 1 1 个回答
  • 9321 Views

1 个回答

  • Voted
  1. Best Answer
    Stein Åsmul
    2014-05-13T15:55:26+08:002014-05-13T15:55:26+08:00

    快速总结

    • 需要调整的速度属性:
      • MSIFASTINSTALL(试试看,也许是3或7)
      • FASTOEM(三思而后行,必须阅读文档)
      • DISABLEROLLBACK(理解它的意思,可能会导致 MSI 包中的自定义操作无法运行!这取决于 MSI 设计 - 查找提交和回滚自定义操作)
    • 可以暂停安全软件以加快安装速度。
      • 尝试在安装时禁用 - 在vi​​rustotal.com上扫描您的安装程序。
    • 尝试从管理映像(替代信息)运行(无需文件提取)。
      • 从本地管理映像运行将是最快的。
      • 如果您使用网络管理映像,高延迟网络可能会减慢安装速度?
        • 每个文件(小文件)的潜在开销很高。
        • 下载单个 CAB 可能会更快(病毒检查可能需要很长时间)?
    • 可以在机器上全局禁用系统还原(不仅仅是通过 MSIFASTINSTALL)。

    背景资料

    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 磁盘较小,空间问题可能已经重新浮出水面......),但让完整的磁盘空间显然更安全成本核算。

    msiexec.exe /I "D:\winzip112.msi" /QN MSIFASTINSTALL=3

    也可以设置DISABLEROLLBACK属性以禁用 MSI 安装程序中的回滚支持。我强烈建议您不要使用它,除非您准备新的 PC。这是一种特殊情况,如果出现故障,您可以重新开始。对于实际使用的计算机,我不建议启用此属性。

    具有讽刺意味的是,如果您正在运行替换大量文件的大型更新包或任何大型卸载(因为卸载会将所有已删除的文件移动到回滚区域),禁用回滚将加快速度。它可能非常重要,但不安全。您只需在命令行中设置此属性: msiexec.exe /I "D:\winzip112.msi" /QN MSIFASTINSTALL=3 DISABLEROLLBACK=1

    行政安装

    最后,如上面在背景信息中所述,运行 MSI 文件的管理安装以提取文件,以便提取不会在每台计算机上本地进行。这假设您在一个相当快的网络上,并且文件复制发生时没有太多延迟。我想高延迟的无线网络可能会使提取的小文件变得更慢,这些文件必须一个一个地复制。您只需将 /a 传递给安装文件即可运行管理员安装:

    安装程序.exe /a

    或者

    msiexec /a "D:\winzip112.msi"

    然后,您需要按照提示选择文件的提取位置。有关讨论此功能的线程,请参见superuser.com。


    一些链接:

    • https://www.symantec.com/connect/blogs/reduce-installation-time-msi-packages-ver-5-vs-earlier-versions
    • https://stackoverflow.com/questions/27612759/how-can-i-disable-rollback-in-my-wix-installer
    • https://superuser.com/questions/263823/prevent-system-restore-point-from-being-created-during-install
    • 如何消除 C:\Windows\Installer 中巨大的缓存 MSI 文件?

    速度:

    • 加快安装速度。
    • 加快 WiX 构建过程(它的开发结束)
    • 行政设施。
    • 16

相关问题

  • 如何在没有 CDROM 驱动器的笔记本电脑上安装 Windows?

  • 您认为 Linux 服务器上的 Java 是个问题吗?[关闭]

  • Mac OS X 的无人值守安装

  • Firefox 打包以包含用于网络安装的插件

  • PHP 作为 CGI 还是 Apache 模块?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve