我需要从另一个应用程序启动一个应用程序。看起来我必须使用shell来执行它(因为我需要能够关闭启动器),但我也想降级给启动应用程序的权限。
这可能吗?启动器必须以管理员身份运行,但我希望以用户身份运行启动应用程序。
这就是我目前运行流程的方式:
Process process = new Process();
process.StartInfo = new ProcessStartInfo();
process.StartInfo.FileName = name;
process.Start();
原谅我,我忘了添加一些细节:
答案 0 :(得分:1)
以前似乎已经讨论过了,请查看:How do you de-elevate privileges for a child process
看起来UAC高程严格单向,所以解决方案有点粗糙,即代码注入资源管理器和类似的东西。
http://www.codeproject.com/Articles/18946/High-elevation-can-be-bad-for-your-application-How
答案 1 :(得分:0)
最终我决定创建一个可以以管理员身份运行启动器的引导程序,然后以普通用户身份运行该应用程序。启动器完成后,它将返回启动应用程序的引导程序可执行文件。