1

我们有一个使用 WiX 3.11.1 构建的设置,如果该 exe 没有以提升的权限启动(又名“以管理员身份运行”),那么我们将尝试以编程方式触发一个新进程,其中动词为“runas”,文件名为位置主 exe 的启动位置 (C:\Users\loggedin_username\AppData\Local\Temp{GUID}.cr\setup_name.exe)

但是通过在临时目录中创建带有以下消息的新日志文件,新触发的进程突然退出:

  • 错误 0x80070006:无法寻找文件的开头。
  • 错误 0x80070006:无法初始化引擎部分。
  • 错误 0x80070006:无法初始化引擎状态。

如果我们对 WiX 3.10.2 做同样的事情(以编程方式触发具有提升权限的新进程),那么它会创建一个新进程并且工作正常。

我想,从 WiX 3.11.1 开始,我们无法使用提升的权限启动相同的 exe。不确定 WiX 团队是否对安全性进行了任何重大更改。这是 WiX 3.11.1 中的已知问题吗?

我想要实现的只是在 HKLM\Microsoft\Windows\CurrentVersion\Uninstall 路径中添加/修改已安装设置注册表项的键值。在 Windows 10 及更高版本上,只有管理员可以完全访问 HKLM 路径。

如果使用“以管理员身份运行”选项启动 WiX 设置,一切正常,但如果用户没有使用该选项启动,我想以提升权限以访问 HKLM 路径但使用 WiX 3.11.1 以编程方式启动它失败。

关于如何实现的任何建议?任何帮助,将不胜感激。

谢谢

4

1 回答 1

0

Burn 不支持提升的引导程序应用程序。要写入每台机器的位置,如HKLM,请在包中执行此操作。

于 2018-06-06T20:46:53.050 回答