当安装程序(由Inno Setup构建)启动进程时,该进程始终以管理员权限运行。 - 因为安装程序已作为管理员运行。
我希望将子进程作为当前用户的权限运行 有好办法吗?
答案 0 :(得分:13)
这个问题在MSFT内部每3或4个月出现一次。
安全人员给出的答案是:你做不到。创建提升的流程令牌后,会对令牌进行无法撤消的更改。
您最好的办法是拥有一个运行升级安装程序的启动器应用程序,然后在升级安装程序完成后,转身并运行您的子进程。
答案 1 :(得分:0)
虽然它不被认为是最佳实践(甚至是良好实践),但可以从高/管理员IL流程启动中等IL流程:
我可以确认此代码适用于启用和未启用UAC的Vista 32和64位。
答案 2 :(得分:0)
作为启动器,您可以使用便携式Powershell应用程序部署套件(Link)。您可以编辑deploy-application.ps1并使用Execute-ProcessAsUser以当前用户身份运行应用程序/脚本,即使您以admin启动powershell应用程序部署工具包