使用 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 时的特权提升的主要内容,如果未能解决你的问题,请参考以下文章
如何在MSI Installshield重新启动管理器对话框中禁用“不关闭应用程序”选项
InstrallShield Basic MSI 卸载不显示带有完成按钮的对话框