我有一个使用AsInvoker
清单运行的应用程序,它使用ProcessStartInfo
运行另一个使用HighestAvailable
清单的应用程序(在我的情况下,它以Admin身份运行,我得到UAC提示)然后第一个应用程序退出。
第二个应用程序然后使用ProcessStartInfo
再次运行第一个应用程序,这次它以管理员身份运行(没有UAC提示)我想这是正确的,因为它是AsInvoker
并且它正在从以管理员身份运行的应用程序,但实际上我希望它在没有管理员权限的情况下运行 - 或者更准确地以尽可能低的执行级别运行它
我知道你可以使用ProcessStartInfo.Verb = "runas"
提升,但是你可以下降吗?
答案 0 :(得分:0)
不,你不能“回头”(这个网站上有几个答案和外部教程声称不然,但在某些情况下它们都有问题,来自MS员工的this answer确认这是情况下)
您唯一真正的选择是使用可以启动非高效进程的AsInvoker bootstrapper /父进程。 (如果引导程序启动升级,即使这样也会失败,但在这种情况下,用户手动选择以管理员身份运行)
答案 1 :(得分:0)