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

当一个安装程序(像Inno Setup一样构build)确实启动一个进程时,该进程总是以pipe理员权限运行。 – 因为安装程序已经作为pipe理员运行。

我想以当前用户的权限运行subprocess。
有一个好方法吗?

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

在codeproject上看到这篇文章

我可以确认这个代码可以在启用和不启用UAC的情况下在Vista 32和64位上运行。

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

安全人士给出的答案是:你不能。 升级的进程令牌创建后,会对令牌进行更改,但无法撤消。

你最好的办法是有一个运行你的升级安装程序的启动程序,然后当升级的安装程序完成后,转过身来运行你的子进程。