Win C#:在没有UAC提示的情况下以管理员身份运行app

时间:2010-03-21 20:41:58

标签: c# .net windows uac

我需要一个我的.exe始终以管理员身份运行而不提示UAC。我的程序将安装设置,这将具有一次管理员权限,我需要在此设置中执行这样的步骤,我的exe将始终以管理员身份执行而无需UAC提示。

到目前为止,我找到了2个解决方案:

1。 使用自定义服务,这将为我提升程序。

2。 使用Task Scheduler

还有其他解决方案吗?有些可能表现出来吗?

感谢。

2 个答案:

答案 0 :(得分:27)

如果可以这样做,那么UAC将完全失效。无需用户同意即可提升自己的无法是UAC背后的基本原则。

除了已经启动它的升级过程(即服务或任务调度程序)之外,答案是否定的,无法完成。

答案 1 :(得分:8)

当然,如果您只想驱动UI,您应该做的就是在清单中使用UI访问标记(请参阅http://msdn.microsoft.com/en-us/library/ms742884.aspx)。如果您将应用程序安装在受信任的位置(例如system32)并且已签名(bleh!),那么当您运行应用程序时,它将被提升为高(对于管理员帐户)。

签名要求使它略显烦人,但至少它会略微减少攻击面,因为您的代码以高完整性运行但不使用管理员令牌。