【发布时间】:2017-09-08 10:44:07
【问题描述】:
我们正在根据此处提供的说明将 IIS 网站填充到下拉列表中:Bind IIS local websites in dropdown list of wix installation?
当从管理员命令提示符启动 msi 时,自定义操作有效,但是在没有管理员权限的情况下启动 msi 时会失败。在 CA 中将 Impersonate 值设置为 no 不会提升具有管理员权限的自定义操作执行。
有没有办法以管理员权限启动 msi?如何在具有提升访问权限的 UI 序列中立即执行自定义操作?
谢谢。
【问题讨论】:
-
答案是您已经知道的答案 - MSI 本身必须通过提升启动,或者像您说的那样以管理员身份启动,或者使用提升然后调用 MsiInstallProduct 的程序或等效启动方法。
-
@PhilDW 如果在显示欢迎对话框之前没有以管理员权限启动 msi,是否有办法向用户显示警告消息?此外,当用户右键单击 msi 时,以管理员身份运行选项不可用。
-
为什么该自定义操作首先需要管理员权限?
-
如果 msi 没有以管理员权限启动,则向用户显示警告消息 -- 在
Fragment或Product元素下添加<Condition Message="Launch installer with admin rights!">Privileged</Condition>... see also. -
当用户右键单击 msi 时,以管理员身份运行选项不可用 -- 将 .msi 包装在具有
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>清单的 .exe 中。对于该 .exe,您可以使用 7zip 创建 SFX 或使用 WiX Burn 例如。
标签: wix