我有一个程序,特别是安装程序,标记为需要使用 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 设置。