4

我有一个使用 Install Shield Limited Edition 创建的 MSI 安装程序,我可以通过直接运行它来正常安装它。

如果我不使用 /QUIET 参数,我也可以使用 MSIEXEC 安装它,但如果我使用 /QUIET 参数,则不会安装应用程序。

背后的原因是什么?当我直接运行MSI时,它会提示许可协议,这可能是它没有以静默模式安装的原因吗?

4

5 回答 5

8

我有同样的问题。我知道最初的问题已得到解答,但我想我会在这里发帖,让其他人像我一样寻找答案。要进行静默安装,您必须具有管理员权限。以管理员身份运行命令提示符,它可以工作。

于 2016-09-21T17:36:28.640 回答
6

解决方案是使用/passive /qn而不是/quiet

/quiet = 安静模式,无用户交互。这意味着安装程序请求 UAC 权限时会考虑默认操作(即否)

/passive = 无人值守模式 - 只有进度条,当您设置 /qn 时,这意味着没有 UI 的进度条。几乎相同的东西,但以另一种方式:)

于 2016-12-22T13:27:21.523 回答
2

使用 Instedit 等编辑器打开 MSI 文件并打开 InstallUISequence 表。您将看到在安装的图形部分期间执行的所有操作。InstallExecuteSequence 表保存您按下安装按钮或执行静默安装后执行的所有操作。

如果您发现仅在 InstallUISequence 中执行的一项操作,请尝试查找它是否正在对系统进行一些更改。这违反了最佳实践,但许多 msi 都这样做了。

最可能的原因是某些属性是必需的并在某些窗口中获得,您需要使用命令行中的参数“注入”它。请参阅表属性中所有大写的属性(这是您可以使用的属性)。

于 2013-07-26T20:18:14.667 回答
1

Have you logged your installation?

Typically the license agreement page doesn't prevent install, though you could author it that way.

于 2013-07-17T13:10:54.640 回答
0

The problem here was something different - after a restart of the system, it got installed silently also without opening the command prompt with elevated permissions.

于 2013-07-30T09:40:36.077 回答