2013-07-17 63 views
0

我有一个使用Install Shield Limited Edition创建的MSI安装程序,我可以通过直接运行它来正常安装它。如果使用/ QUIET参数抑制UI,MSIEXEC不安装MSI安装程序

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

背后的原因是什么?当我直接运行MSI时,它会提示您输入许可协议,这是否会成为未安装在静默模式下的原因?

+0

您是否曾尝试从提升的cmd提示符运行该命令? –

+0

正如克里斯托弗提到的最可能的问题是命令提示符没有提升,所以UAC停止安装。如果你要创建一个详细的日志,你应该在日志文件中看到这个。 –

回答

0

这里的问题是不同的 - 在系统重新启动之后,它以无提示权限打开命令提示符也被悄悄安装。

1

您是否记录了安装?

通常,许可证协议页面不会阻止安装,尽管您可以这样编写。

1

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

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

最可能的原因是某些属性是必需的,并且在某个窗口中获得,并且您需要使用命令行中的参数“注入”它。在属性表中查看属性全部大写(这是你可以使用的)。

0

我有这个相同的问题。我知道原来的问题已经回答,但我想我会在这里发布其他人寻找像我这样的答案。要进行无提示安装,您必须拥有管理员权限。以管理员身份运行命令提示符,它工作。

2

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

/quiet =安静模式,无用户交互。这意味着默认行为是考虑到当安装程序请求UAC权价(即NO)

/被动 =无人参与模式 - 仅显示进度条 所以,当你设置/ QN,这意味着进度条没有用户界面。几乎相同的东西,但以另一种方式:)