如果你的程序对 Windows 运行权限有要求,那么需要设置应用程序清单。本文介绍如何添加应用程序清单,并解释其中各项 UAC 权限设置的实际效果。
本文内容
阅读本文之前,你可能需要了解如何创建应用程序清单文件。阅读我的另一篇博客可以了解:
各种不同的 UAC 清单选项
从默认生成的应用程序清单中,我们可以很容易的知道有四种不同的设置:
asInvoker
requireAdministrator
highestAvailable
- 删除
requestedExecutionLevel
元素 (不要忘了还可以删除)
当然这里我们是没有考虑 uiAccess
的。你可以阅读我的另一篇博客了解 uiAccess
的一项应用:
asInvoker
父进程是什么权限级别,那么此应用程序作为子进程运行时就是什么权限级别。
默认情况下用户启动应用程序都是使用 Windows 资源管理器(explorer.exe)运行的;在开启了 UAC 的情况下,资源管理器是以标准用户权限运行的。于是对于用户点击打开的应用程序,默认就是以标准用户权限运行的。
如果已经以管理员权限启动了一个程序,那么这个程序启动的子进程也会是管理员权限。典型的情况是一个应用程序安装包安装的时候使用管理员权限运行,于是这个安装程序在安装完成后启动的这个应用程序进程实例就是管理员权限的。有时候这种设定会出现问题,你可以阅读 在 Windows 系统上降低 UAC 权限运行程序(从管理员权限降权到普通用户权限)。