高程中清单中“highestAvailable”和“requireAdministrator”之间的区别?

时间:2012-09-29 08:18:18

标签: windows winapi sdk manifest

我在我的exe的清单中使用了“highestAvailable”。但是在standard user and UAC ON它没有提升exe。

这是“highestAvailable”的行为吗?

我提到了MSDN link,但不清楚“最高可用性”是否会提升exe。如果UAC开启,我的要求是提升exe。

我改为“requireAdministrator”,我的exe在UAC ON的标准用户中升级。

有人可以详细解释一下这两个选项“highestAvailabe”和“requireAdministrator”的提升行为吗?

1 个答案:

答案 0 :(得分:23)

如果当前用户是管理员,

highestAvailable将提升。这与您观察到的一致。当标准用户运行该过程时,不会显示UAC对话框,并且该过程将使用标准令牌运行。执行admin用户时,将显示UAC同意对话框,然后该进程将升级。

如果您的程序需要管理员权限才能运行,那么您需要使用requireAdministrator。当标准用户启动此类过程时,将显示 over-the-shoulder UAC对话框。这使用户有机会要求管理员提供他们的凭据。

如果您的程序能够以有限的功能运行以防用户无法提升,则只应使用highestAvailable。这就是您的问题链接的MSDN主题中混合模式的含义。