【问题标题】:Running an *.exe file as administrator in NSIS script在 NSIS 脚本中以管理员身份运行 *.exe 文件
【发布时间】:2017-09-22 17:54:54
【问题描述】:

我正在尝试运行一个 exe 应用程序作为我的 NSIS 安装程序脚本的一部分。我正在使用 EXEC 命令来运行应用程序。应用程序运行但不是以管理员身份运行。我的应用程序正在更改一些注册表值,因此它必须以管理员身份运行。操作系统为Win 7及以上。

执行 '"$INSTDIR\bin\UserPasswordUtility.exe" $R0 $R1'

我将用户名($R0) 和密码($R1) 作为用户输入

我已请求管理员的执行级别 RequestExecutionLevel 管理员

我在网上搜索。我找不到任何答案。

谢谢

【问题讨论】:

  • UAC 开启了吗?运行安装程序时 UAC 是否请求提升?
  • 是的 UAC 已开启。
  • 叹息,当你运行安装程序时,UAC 是否请求提升?
  • 不,我没有在我的脚本中完成 UAC 请求提升
  • 如果您的 .nsi 中有“RequestExecutionLevel admin”,那么您正在请求提升!

标签: nsis


【解决方案1】:

如果您的自定义应用程序总是需要 UAC 提升,那么您应该在其清单中添加一个 RequestedExecutionLevel 节点。在 NSIS 中你必须使用 ExecShell 来执行需要提升的应用程序,Exec 不能提升。

如果您的应用程序通常不需要提升,但您需要请求一次,您可以使用 runas 动词:

ExecShell "runas" "$sysdir\calc.exe"

如果您的安装程序总是需要执行提升的应用程序,那么您可能应该在脚本中使用RequestExecutionLevel admin 为您的安装程序请求提升。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多