从“正常”非高架一号发射与提升权限的EXE?(Launch an EXE with elevated

2019-07-17 19:04发布

我有正常的权限运行的EXE,但也有(使用VSS /卷影复制为例),我需要管理员权限(如果我没有记错的话)的情况下

我们的想法是把在一个单独的EXE需要额外的特权码,并根据需要启动它。

这件事情,我很少需要,但我还是需要把它作为一个不得已的选择(这是说,我很少需要调用它,也许一次/两次,平均日)

我的问题是:我怎么能说从一个普通的EXE管理员升高的过程吗?

Answer 1:

在Vista和更高版本启用UAC,最好的选择是提供一个UAC清单第二EXE(最好是作为资源嵌入,但也可以使用外部.manifest的文件中完成),设置requestedExecutionLevelrequireAdministrator 。 然后,你可以CreateProcess()的EXE文件正常。 如果提供清单是不是一种选择,或者如果你需要支持XP和/或非UAC设置,那么你可以使用ShellExecute/Ex()指定"runas"动词来代替。 在这些设置中,操作系统会提示许可和帐户凭据用户,然后根据需要采用适当的安全权限的新的进程。

另一种选择是第三方CreateProcess...Elevated()ShellExecute...Elevated()实施本条规定:

Vista的UAC:权威指南



文章来源: Launch an EXE with elevated privileges from a “normal” non-elevated one?