You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wix打包的MSI安装包执行修改操作时如何要求管理员权限?

方案1:拦截无权限修改操作(实现成本最低,稳定性最高)

你当前配置的权限校验仅作用于InstallExecuteSequence,但修改操作会优先执行InstallUISequence逻辑,还未到执行序列阶段就会读写系统级的注册表、安装目录资源,进而引发损坏。只需将相同的权限校验规则同步添加到UI序列即可:

<InstallUISequence>
    <Custom Action='IsPrivileged' Before='AppSearch'>Not Privileged</Custom>
</InstallUISequence>

配置完成后,无论从「程序和功能」触发修改、还是直接运行安装包进入维护模式,只要当前运行上下文没有管理员权限,会直接弹出你预设的错误提示并终止操作,完全避免损坏现有安装内容。

方案2:实现修改操作自动触发UAC提权

如果需要修改操作自动弹出UAC提升提示,需要补充以下配置:

  1. 显式声明全局属性,强制MSI始终运行在每机器安装上下文:
<Property Id="ALLUSERS" Value="1" Secure="yes" />
<Property Id="MSIINSTALLPERUSER" Value="0" Secure="yes" />
  1. 在Package节点中添加ElevateInstallPrivileges="yes"属性,明确要求所有安装相关操作(包含修改、修复)都需要提升权限:
<Package Id="*" InstallerVersion="405" Compressed="yes" InstallScope="perMachine" 
         InstallPrivileges="elevated" ElevateInstallPrivileges="yes"
         Manufacturer="$(var.Publisher)"
         Description="$(var.ProductName) $(var.Version) Setup"  />

以上配置完成后重新打包安装,触发修改操作时会自动弹出UAC提权提示,通过后才会执行后续逻辑。测试时请先卸载旧版本再安装新包,避免旧版本的ARP缓存影响验证结果。


内容的提问来源于stack exchange,提问作者Joseph Willcoxson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:24:04