如何从管理进程作为当前用户权限运行进程

时间:2010-10-15 05:35:06

标签: windows winapi windows-vista manifest windows-security

当安装程序(由Inno Setup构建)启动进程时,该进程始终以管理员权限运行。 - 因为安装程序已作为管理员运行。

我希望将子进程作为当前用户的权限运行 有好办法吗?

3 个答案:

答案 0 :(得分:13)

这个问题在MSFT内部每3或4个月出现一次。

安全人员给出的答案是:你做不到。创建提升的流程令牌后,会对令牌进行无法撤消的更改。

您最好的办法是拥有一个运行升级安装程序的启动器应用程序,然后在升级安装程序完成后,转身并运行您的子进程。

答案 1 :(得分:0)

虽然它不被认为是最佳实践(甚至是良好实践),但可以从高/管理员IL流程启动中等IL流程:

See this post on codeproject

我可以确认此代码适用于启用和未启用UAC的Vista 32和64位。

答案 2 :(得分:0)

作为启动器,您可以使用便携式Powershell应用程序部署套件(Link)。您可以编辑deploy-application.ps1并使用Execute-ProcessAsUser以当前用户身份运行应用程序/脚本,即使您以admin启动powershell应用程序部署工具包