如何使用ProcessStartInfo以最低执行级别运行

时间:2011-05-10 15:22:46

标签: vb.net .net-4.0 process uac manifest

我有一个使用AsInvoker清单运行的应用程序,它使用ProcessStartInfo运行另一个使用HighestAvailable清单的应用程序(在我的情况下,它以Admin身份运行,我得到UAC提示)然后第一个应用程序退出。

第二个应用程序然后使用ProcessStartInfo再次运行第一个应用程序,这次它以管理员身份运行(没有UAC提示)我想这是正确的,因为它是AsInvoker并且它正在从以管理员身份运行的应用程序,但实际上我希望它在没有管理员权限的情况下运行 - 或者更准确地以尽可能低的执行级别运行它

我知道你可以使用ProcessStartInfo.Verb = "runas"提升,但是你可以下降吗?

2 个答案:

答案 0 :(得分:0)

不,你不能“回头”(这个网站上有几个答案和外部教程声称不然,但在某些情况下它们都有问题,来自MS员工的this answer确认这是情况下)

您唯一真正的选择是使用可以启动非高效进程的AsInvoker bootstrapper /父进程。 (如果引导程序启动升级,即使这样也会失败,但在这种情况下,用户手动选择以管理员身份运行)

答案 1 :(得分:0)