避免 MsiExec 卸载中的确认框

Posted

技术标签:

【中文标题】避免 MsiExec 卸载中的确认框【英文标题】:Avoid confirmation box in MsiExec uninstall 【发布时间】:2011-09-15 09:39:14 【问题描述】:

我需要从我的代码中运行 msiexec 卸载:

MsiExec.exe /IA52EEC0E-D0B7-4345-A0FF-574804C7B78A

但这是要求确认(是/否)。我怎样才能避免这种情况?

【问题讨论】:

【参考方案1】:

msiexec /quiet 将避免用户交互

【讨论】:

【参考方案2】:

您可以使用/passive 开关来执行此操作。

MsiExec.exe /IA52EEC0E-D0B7-4345-A0FF-574804C7B78A /passive

如果您想完全隐藏 UI,请使用 /quiet 开关而不是 /passive

【讨论】:

【参考方案3】:

尝试将/qn 标志添加到您的命令行。 /q 是安静模式,n/q 的标志,它禁止所有用户界面。

添加这些标志后,完整的命令将是:

MsiExec.exe /qn /IA52EEC0E-D0B7-4345-A0FF-574804C7B78A

【讨论】:

不完全正确。是的,“/qn”是这里可能的参数之一。在这里为所有答案提供完整的故事:/qn 和 /q 是等价的 - 并且 /quiet 也是一样的。这是沉默的变体。第二个无人值守的变体(有进度条,但没有询问或其他模态框)是 /qb 或等效的 /passive。所有参数都解决了上述问题。 当然还有更多像 /qb+ /qn+ 或带有 ("!") 的变体,它在进程中隐藏取消按钮 (/qb+!/qb-!)。

以上是关于避免 MsiExec 卸载中的确认框的主要内容,如果未能解决你的问题,请参考以下文章

从命令行卸载 MSI 文件而不使用 msiexec

MsiExec.exe产品ID卸载[重复]

从 C++ 运行 MsiExec.exe?视窗

使用Powershell实现自动化安装/卸载程序

自动化测试 ——自动卸载软件

MSIEXEC -Embedding