如何从UAC提升的安装程序中作为普通用户启动程序

时间:2010-03-10 06:41:54

标签: installer uac nsis

我正在编写NSIS安装程序,安装程序会根据需要在Windows 7 / vista上“以管理员身份”升级。 我需要在安装结束时运行已安装的程序,并且不希望以与安装程序相同的权限启动它。

常规NSIS exec命令使用与安装程序相同的权限运行子进程。

NSIS有一个UAC插件,但它的文档不是很好,似乎是新的;我不想使用那个插件。

理想情况下,我正在寻找一个小的.exe我可以包括在没有UAC提升的情况下启动目标程序。这是否存在?

还有其他建议吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

您只有两个选择:

  • 取消选中并删除运行复选框(在NT6 +上运行时)
  • 使用UAC插件(这不是新的,但 很难使用,所以我建议您选择第一个选项)

没有可以使用的外部程序,因为无法从升级过程返回到原始用户(您可以尝试,并且非常接近,但在每种情况下都无法获得正确的用户)

答案 1 :(得分:0)

我找到了以下内容,可以将其包含在一个简单的命令行实用程序中:

http://brandonlive.com/2008/04/27/getting-the-shell-to-run-an-application-for-you-part-2-how/

只需要大约一个小时的时间就可以让代码适用于我的项目,到目前为止它完美无瑕。 ;)