使用 Installshield 和用户对话框卸载 MSI 时的特权提升

Posted

技术标签:

【中文标题】使用 Installshield 和用户对话框卸载 MSI 时的特权提升【英文标题】:Privilege elevation on MSI uninstall with Installshield and user dialog 【发布时间】:2010-09-24 04:20:08 【问题描述】:

我需要实现以下目标: MSI 的卸载应显示一个用户对话框,根据该对话框,Windows Installer 知道如何准确删除软件(在这种情况下:用户必须同时选择是否删除数据库)。

在运行时,卸载过程也会触发自定义操作。所有这些操作都需要管理权限。

所以我需要让“程序和功能”在“删除”上显示完整的 UI,或者在点击“更改”然后删除时显示管理权限验证对话框。

我该怎么做?

【问题讨论】:

【参考方案1】:

供参考:

添加和删除程序 (ARP),分别。程序和功能(在 Vista+ 上),仅在删除时显示基本 UI。显示对话框需要完整的 UI。结果:此处无法进行用户交互。

解决方案:

如果除了在删除时显示对话框之外别无他法,则需要禁用删除,并且必须通过显示完整 UI 的更改选项触发删除过程。

其他信息:

如果涉及需要提升权限的自定义操作,则需要在系统上下文中将它们配置为延迟。这将使安装程序在进入执行序列时提升权限,从而显示需要管理权限的 UAC 对话框。

【讨论】:

您是如何获得基本 UI 以显示的?您在使用 Wise Installation Studio 吗?

以上是关于使用 Installshield 和用户对话框卸载 MSI 时的特权提升的主要内容,如果未能解决你的问题,请参考以下文章

使用 installshield 从命令行卸载

如何在MSI Installshield重新启动管理器对话框中禁用“不关闭应用程序”选项

InstallShield 执行卸载自定义动作

InstrallShield Basic MSI 卸载不显示带有完成按钮的对话框

安装 Installshield 2010 前需要卸载无关的应用程序

如何让 InstallShield LE 自动卸载现有安装?