[当安装程序(由Inno Setup构建)启动一个进程时,始终以管理员权限运行该进程。 -因为安装程序已以管理员身份运行。
我想以当前用户的特权运行子进程。有什么好方法吗?
尽管不被认为是最佳实践(甚至不是好的实践),但是可以从高/管理IL过程中启动中等IL过程:
我可以确认此代码在启用和不启用UAC的Vista 32和64位系统上都可以使用。
此问题每3或4个月就会在MSFT内部出现。
安全人员给出的答案是:您不能。创建提升的流程令牌后,会对令牌进行的更改无法撤消。
您最好的选择是拥有一个启动器应用程序,该应用程序运行提升的安装程序,然后在提升的安装程序完成后转身运行子进程。
作为启动器,您可以使用便携式Powershell应用程序部署套件(Link)。您可以编辑deploy-application.ps1并使用Execute-ProcessAsUser与当前用户一起运行应用程序/脚本,而不提示输入凭据。