/MANIFESTUAC(将 UAC 信息嵌入到清单中)

指定是否将用户帐户控制 (UAC) 信息嵌入到程序清单中。

语法

/MANIFESTUAC
/MANIFESTUAC:NO
/MANIFESTUAC:level
/MANIFESTUAC:uiAccess
/MANIFESTUAC:fragment

参数

NO
链接器不会在程序清单中嵌入 UAC 信息。

level
level=,后跟 'asInvoker''highestAvailable''requireAdministrator'。 默认为 'asInvoker'。 有关详细信息,请参阅备注部分。

uiAccess
如果您希望应用程序绕过用户界面保护级别并将输入引导到桌面上的更高权限窗口,则为 uiAccess='true';否则为 uiAccess='false'。 默认为 uiAccess='false'。 将此参数设置为 uiAccess='true' 仅适用于用户界面可访问性应用程序。

fragment
包含 leveluiAccess 值的字符串。 可以选择用双引号括起来。 有关详细信息,请参阅备注部分。

备注

如果在命令行上指定多个 /MANIFESTUAC 选项,则最后输入的选项优先。

/MANIFESTUAC:level 的选项如下:

  • level='asInvoker':应用程序以与启动它的进程相同的权限级别运行。 可以通过选择“以管理员身份运行”将应用程序提升到更高的权限级别。

  • level='highestAvailable':应用程序以它可以的最高权限级别运行。 如果启动应用程序的用户是管理员组的成员,则此选项与 level='requireAdministrator' 相同。 如果最高可用权限级别高于打开进程的级别,系统会提示输入凭据。

  • level='requireAdministrator':该应用程序使用管理员权限运行。 启动应用程序的用户必须是管理员组的成员。 如果打开的进程不是以管理权限运行的,则系统会提示输入凭据。

你可以使用 /MANIFESTUAC:fragment 选项一步指定 leveluiAccess 值。 片段必须采用以下格式:

/MANIFESTUAC: [ " ] level= { 'asInvoker' | 'highestAvailable' | 'requireAdministrator' } uiAccess= { 'true' | 'false' } [ " ]

例如:

/MANIFESTUAC:"level='highestAvailable' uiAccess='true'"

在 Visual Studio 开发环境中设置此链接器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“链接器”>“清单文件”属性页。

  3. 修改“启用用户帐户控制 (UAC)”、“UAC 执行级别”和“UAC 绕过 UI 保护”属性。

以编程方式设置此链接器选项

  1. 请参见EnableUACUACExecutionLevelUACUIAccess

另请参阅

MSVC 链接器参考
MSVC 链接器选项