Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Installation 如何以普通用户身份从UAC升级安装程序启动程序_Installation_Uac_Nsis - Fatal编程技术网

Installation 如何以普通用户身份从UAC升级安装程序启动程序

Installation 如何以普通用户身份从UAC升级安装程序启动程序,installation,uac,nsis,Installation,Uac,Nsis,我正在编写一个NSIS安装程序,安装程序会根据需要在Windows7/vista上提升“管理员身份”。 我需要在安装结束时运行已安装的程序,不希望以与安装程序相同的权限启动它 常规NSIS exec命令以与安装程序相同的权限运行子进程 NSIS有一个UAC插件,但是它的文档不是很好,而且看起来是v。新的;我不想使用那个插件 理想情况下,我正在寻找一个小的.exe,我可以包括它将启动无UAC提升的目标程序。这是否存在 还有其他建议吗 谢谢 您只有两个选择: 取消选中并删除运行复选框(在NT6+上

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

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

NSIS有一个UAC插件,但是它的文档不是很好,而且看起来是v。新的;我不想使用那个插件

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

还有其他建议吗


谢谢

您只有两个选择:

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

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

我发现以下内容,可以包装成一个简单的命令行实用程序:


我的项目只花了大约一个小时就可以让代码正常工作,到目前为止,它工作得完美无缺

选项1是我们所选择的,但这并不“理想”。微软是否已经使运行进程“去提升”变得不可能?没有用于此的API似乎很荒谬。我是NSIS的新手,对它不太了解,所以我“我不完全确定UAC将如何与MultiUser.nsh脚本交互。所以,这是我不想处理的另一个复杂问题。@KZ:是的,不可能从提升的进程启动一个未提升的进程。唯一的解决方法是从一个未提升的流程开始,让它启动您的提升流程,并让提升流程在您想要启动某些东西时与未提升的流程进行通信。这就是UAC插件所做的。我已经使用它好几个月了,没有任何问题。好吧,回到选项1和2。我想我会考虑在以后的构建中集成UAC插件。谢谢你的帮助!你是说你自己的插件很难使用?无论如何,我成功地使用了它,这样就可以使用了。嘿,那么
createprocessasurea
Win32
函数呢?我试着从Windows服务中使用它,它很有魅力。但是,我尝试从Windows Installer使用它,但它不起作用(异常代码:0xc06d007e,由您尝试以这种方式运行的任何可执行文件引发)。你知道原因吗?顺便说一句,当我使用VS中的“安装”选项(右键单击)时,它会工作。当双击MSI文件运行时,我会得到一个异常。如果运行安装程序的用户(RunAs/Secondary Logon)与登录用户/explorer shell不同?在所有情况下都有效的方法是根本没有办法回去的!为什么哦为什么微软没有给出一个直接的方法来做这件事?!奇怪的由于这将在典型情况下(最终用户以提升权限模式运行安装程序)起作用,因此它将对我们起作用。但是,唉。。。