我需要一个我的.exe始终以管理员身份运行而不提示UAC。我的程序将安装设置,这将具有一次管理员权限,我需要在此设置中执行这样的步骤,我的exe将始终以管理员身份执行而无需UAC提示。
到目前为止,我找到了2个解决方案:
1。 使用自定义服务,这将为我提升程序。
2。 使用Task Scheduler。
还有其他解决方案吗?有些可能表现出来吗?
感谢。
答案 0 :(得分:27)
如果可以这样做,那么UAC将完全失效。无需用户同意即可提升自己的无法是UAC背后的基本原则。
除了已经启动它的升级过程(即服务或任务调度程序)之外,答案是否定的,无法完成。
答案 1 :(得分:8)
当然,如果您只想驱动UI,您应该做的就是在清单中使用UI访问标记(请参阅http://msdn.microsoft.com/en-us/library/ms742884.aspx)。如果您将应用程序安装在受信任的位置(例如system32)并且已签名(bleh!),那么当您运行应用程序时,它将被提升为高(对于管理员帐户)。
签名要求使它略显烦人,但至少它会略微减少攻击面,因为您的代码以高完整性运行但不使用管理员令牌。