如何在 Windows 7 上运行标记为需要通过 UAC 提升权限的程序而无需实际提升权限?

如何在 Windows 7 上运行标记为需要通过 UAC 提升权限的程序而无需实际提升权限?

我有一个程序,特别是安装程序,标记为需要使用 highestAvailable 方法进行提升。我使用的是具有最高级别 UAC 的管理员帐户。

是否可以在不授予该程序管理权限的情况下运行它?

此类程序的另一个例子是股票 regedit.exe,我可以在普通用户下愉快地运行它而没有任何 UAC 提示,但没有提升权限就无法在管理员帐户中启动它。

主要对 Windows 7 感兴趣,但对 Vista 有一个解决方案也不会有什么坏处。

答案1

超级用户

对于清单中具有 requestedPrivilegeLevel="highestLevel" 的所有应用程序,您可以使用 Microsoft 的应用程序兼容性工具包 3 通过 RunAsInvoker 修复程序对应用程序进行填充,从而强制应用程序使用您的标准用户令牌运行。

答案2

您还可以定义未记录的环境变量__COMPAT_LAYER。

从 cmd.exe 命令行:

set __COMPAT_LAYER=RunAsInvoker
mycommand.exe

答案3

如果应用程序编译为需要提升,那么它将始终提示。

要停止提示,您需要更改 UAC 设置。

相关内容