2

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

我想以当前用户的权限运行子进程。
有什么好办法吗?

4

3 回答 3

13

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

安全人员给出的答案是:你不能。创建提升的进程令牌时,对令牌所做的更改无法撤消。

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

于 2010-10-15T05:47:12.667 回答
0

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

于 2020-01-23T08:34:57.487 回答
-1

尽管这不是最佳实践(甚至不是良好实践),但可以从高级/管理员 IL 进程启动中级 IL 进程:

在 codeproject 上看到这篇文章

我可以确认此代码在启用和不启用 UAC 的 Vista 32 和 64 位上都有效。

于 2010-10-15T05:58:51.463 回答