visual studio 设置UAC权限
UAC介绍和设置
用户帐户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。
如果设置权限为默认位置,则启动应用程序时,会对exe权限进行检查。例如该应用程序想写文件,而该程序不是以管理员权限启动,就会因为没有权限导致无法写入成功,导致一系列问题。在win10系统中,系统对权限的管理会更加严格。
UAC设置如下图所示:
对应的Visual Studio在工程属性中也可以进程UAC的设置,在默认设置如下:
启用UAC选择‘是’,UAC执行级别为asInvoker,UAC绕过UI保护选择‘否’,如下图所示:
其中UAC执行级别包括三种:
- asInvoker
由当前启动程序的方式决定,若是管理员方式启动则取的管理员权限。 - highestAvailable
使用当前用户组的最高权限执行 - requireAdministrator
使用管理员权限执行,要求当前用户是管理员组成员。
查看当前用户组情况如下图所示:
C++应用权限设置
1、在默认情况下,VS的UAC执行级别为asInvoker
项。若遇到因为没有管理员权限导致问题时,可以选择“以管理员身份运行”来启动exe来解决。
2、为了避免每次都需要选择“以管理员身份运行”,我们可以设置VS的UAC执行级别为highestAvailable
,当然要求该用户属于管理员组 。
关于UAC相关信息可以参考:
https://docs.microsoft.com/en-us/cpp/build/reference/manifestuac-embeds-uac-information-in-manifest?view=vs-2019