Wix 设置自定义事件不提示管理员权限

Posted

技术标签:

【中文标题】Wix 设置自定义事件不提示管理员权限【英文标题】:Wix setup custom event not prompt for admin rights 【发布时间】:2017-02-28 10:00:04 【问题描述】:

我正在尝试使用 WIX 设置自定义操作注册端口。检查下面的代码,

<CustomAction Id="addPort" Directory="INSTALLFOLDER" Execute="commit" Impersonate="no" ExeCommand="[SystemFolder]netsh.exe http add urlacl http://*:1919/ user=Everyone" Return="check">
</CustomAction>
<InstallExecuteSequence>
  <Custom Action="addPort" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>

现在的问题是,当我开始执行 .msi 文件时,它会提示我输入管理员凭据以开始安装,但是当使用自定义操作注册端口时,命令窗口打开但端口未获取注册,它给出了有关受限访问的错误。

【问题讨论】:

当您从常规命令提示符(在具有受限访问消息的机器上)运行命令时,它会注册端口吗?也许那台机器上的管理员凭据还不够,并且有一些组策略阻止注册...... 【参考方案1】:

首先我要提到,如果禁用回滚,提交阶段将不会触发。其次,我会使用 WiX Quiet Execute 自定义操作,这样您就可以记录输出和许多其他原因。您想使用下面的“延迟执行”示例。

http://wixtoolset.org/documentation/manual/v3/customactions/qtexec.html

【讨论】:

以上是关于Wix 设置自定义事件不提示管理员权限的主要内容,如果未能解决你的问题,请参考以下文章

wix 自定义操作,管理员组

使用管理员权限在 Wix msi 中运行 .exe

如何让 WiX 安装程序请求管理权限?

winform 权限

Wix 安装程序:验证您是不是有足够的权限来启动系统服务

v-has自定义指令实现按钮权限判断