与常规 setup.exe 文件相比,使用 .msi 文件有哪些优势?
我的印象是在用户权限很少的机器上部署更容易,但不确定细节。
msiexec.exe 有哪些功能使部署比使用 setup.exe 方案更容易?
部署 .msi 应用程序时有什么提示或技巧吗?
如何找到 MSI 包的 GUID?我想使用以下脚本在大量桌面上删除程序:
msiexec.exe /x产品代码
为什么这对“添加/删除程序”中列出的任何应用程序不起作用?
安装和卸载Windows Installer 程序包或 MSI 文件时,安装进度似乎比使用其他安装程序包要慢得多。
为什么会这样,我可以做些什么来加快速度?
某处某些软件安装一定已经死了。现在,当我尝试安装软件时,我从 Windows 安装程序中收到弹出消息,提示“正在安装另一个程序。请等待安装完成,然后再次尝试安装此软件。”。
在 serverfault 上搜索会显示 Microsoft 已停止支持的“Windows Installer Cleanup Tool”。另一个搜索让我找到了 WiseFixer,它要 50 美元来修理我的电脑。
我不介意花钱修理我的电脑,但我不再相信我通过大多数产品评论网站或网络搜索找到的东西。
我一直想知道为什么 Windows Installer 一次只允许您安装一个程序。无法启动多个安装是非常令人沮丧的,尤其是在设置新的 Windows 安装时。这是什么原因?
推出新软件包后,我发现机器上的 CPU 使用率很高。一个看起来非常活跃的进程是 msiexec,它真的不应该运行。我在进程资源管理器中观看它,时不时我可以看到它启动新进程,我可以看出与新软件有关……但进程很快结束。
有什么方法可以了解有关 Windows Installer 当前正在做什么的一些细节?
我们在大量机器上部署了一个 Java 安装程序,但在其中大约一半机器上它冻结了。现在,由于以下消息,后续部署失败:
用户“SYSTEM”之前已启动产品“Java 7 Update 10”的安装。该用户需要再次运行该安装才能使用该产品。您当前的安装现在将继续。
其次是:
错误 1704。Java 7 Update 10 的安装当前已暂停。您必须撤消该安装所做的更改才能继续。您要撤消这些更改吗?
如果您以交互方式运行安装,这很好。您只需单击“确定”,然后单击“是”,它就会继续运行。但是,如果您运行命令行安装,它会停止。我们如何从命令行取消挂起的安装?
我有一台 Linux 服务器,我在其中配置了只读 NFS 共享。我目前使用的客户端是一台安装了 NFS 功能的 Windows Server 2008 R2 机器。我能够打开和执行除任何 MSI 文件之外的所有文件。出于某种原因,除非我将驱动器映射到驱动器号,否则我无法通过此共享执行 MSI 安装程序(安装程序在本地复制时工作,但如果可能的话,我试图避免这种情况)。当我尝试直接从 UNC 路径执行它时出现以下错误:

什么可能导致这种情况?映射共享使其工作的原因是什么?
编辑 - 以下是使用带有详细日志记录的 msiexec 调用 MSI 时的结果:
=== Verbose logging started: 1/30/2014 10:12:29 Build type: SHIP UNICODE 5.00.7601.00 Calling process: C:\Windows\system32\msiexec.exe ===
MSI (c) (80:F0) [10:12:29:228]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
MSI (c) (80:F0) [10:12:29:228]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
MSI (c) (80:34) [10:12:29:237]: Resetting cached policy …Run Code Online (Sandbox Code Playgroud) 我一直在使用特定的 .msi ( AppleApplicationSupport.msi)。我已经安装了两种不同的方式,我认为这两种方式是等效的。然而,结果不同如下。
使用psexec -i -s cmd命令提示符安装并运行msiexec /i AppleApplicationSupport.msi会产生我想要的结果:
创建 MSI 部署类型并使用 SCCM 客户端安装它会产生以下结果:
gwmi -Class Win32_Product,但是,运行$app.Uninstall()不会卸载它。我认为,安装了一个系统的MSI部署类型等同于运行msiexec从一个psexec -i -s cmd命令行。显然,它们并不相同。
SCCM 客户端在为系统安装 MSI 技术部署类型时究竟在做什么?我可以在没有 SCCM 参与的情况下复制该操作吗?
SCCM 客户端执行脚本安装程序部署类型的安装程序真的等同于调用msiexecfrompsexec -i -s cmd吗?换句话说,对于脚本安装程序部署类型,我应该期待msiexecSCCM 客户端msiexec运行和从 运行之间的奇偶校验 …
我特别希望在一台机器上安装两次 msi。双重安装的目的是首先安装在 pre-production 文件夹下,在部署到生产文件夹之前在安全的环境中运行部署。
我们通常使用不同的机器来表示这些不同的环境,但在这种情况下,我需要使用同一个盒子。
我得到的两个场景如下:
第一种情况还不错,因为我们可以在生产文件夹下明智地卸载和重新安装,但第二种情况很痛苦,因为我们不想卸载实时生产部署。
我可以给 msiexec 一个设置来允许这样做吗?
我可以使用更合适的不同方法吗?
msi ×8
windows ×3
deployment ×1
installation ×1
logging ×1
nfs ×1
patch ×1
sccm ×1
sccm-2012-r2 ×1
scripting ×1
uninstall ×1