视频加载失败

Windows 用户账户控制(UAC)指南

884 字
4 分钟
Windows 用户账户控制(UAC)指南

什么是 UAC?#

用户账户控制(User Account Control)是 Windows Vista 引入的安全机制,目的是防止未经授权的系统更改。当程序需要管理员权限时,UAC 会弹出对话框让你确认——这个弹窗你一定见过。

UAC 的核心思路是:即使你以管理员身份登录,应用程序默认也只获得标准用户权限,只有显式同意后才提升权限。这就像进门先刷卡,而不是大门敞开。

UAC 四个等级#

UAC 的等级由注册表中三个键值共同控制,位置在:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
等级ConsentPromptBehaviorAdminEnableLUAPromptOnSecureDesktop
高(默认)211
中511
低510
关000

三个键值的含义:

键名作用
ConsentPromptBehaviorAdmin管理员提权时的通知强度
EnableLUAUAC 总开关
PromptOnSecureDesktop弹窗时桌面是否变黑(安全桌面)

建议: 保持默认的”高”等级。关闭 UAC 不会让电脑变快,只会让恶意软件更容易拿到系统权限。

应用兼容性运行方式#

某些老程序需要特定兼容性设置才能正常工作。Windows 将兼容性设置存储在:

HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

常用运行方式值#

值含义
WINXPSP3以 XP 兼容模式运行
RUNASADMIN以管理员身份运行
~ DPIUNAWAER高 DPI 缩放覆盖
DWM8And16BitMitigation简化的颜色模式(8/16位)
RUNASINVOKER以调用者身份运行(不提权)

实用脚本#

设置为管理员运行:

Terminal window
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "程序路径.exe" /t REG_SZ /d "~ RunAsAdmin"

设置为调用者运行(不提权):

Terminal window
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "程序路径.exe" /t REG_SZ /d "~ RunAsInvoker"

查询当前所有设置:

Terminal window
reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"

删除特定程序的兼容性设置:

Terminal window
reg delete "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "程序路径.exe"

右键菜单:一键切换 UAC 运行方式#

如果你经常需要在管理员/普通权限之间切换某个程序,每次改注册表太麻烦。可以给 .exe 文件的右键菜单加一个二级菜单,一键切换。

注册表结构#

HKLM\...\CommandStore\shell\RunAsMenu1~5 ← 定义 5 个菜单项
HKCR\exefile\shell\切换程序运行时UAC ← 挂载到 exe 右键

菜单功能一览#

菜单功能
RunAsMenu1设置为 Invoker(调用者)运行
RunAsMenu2设置为 Admin(管理员)运行
RunAsMenu3查询此文件的当前设置
RunAsMenu4恢复系统默认
RunAsMenu5查询所有文件的设置

完整注册表脚本#

Windows Registry Editor Version 5.00
;菜单1 - 设置为 Invoker
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RunAsMenu1]
@="Set Running as Invoker"
"Icon"="\"C:\\Windows\\System32\\shell32.dll\",43"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RunAsMenu1\command]
@="cmd.exe /c reg add \"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /t REG_SZ /d \"~ RunAsInvoker\" /F &start \"\" \"%1\"&Exit"
;菜单2 - 设置为 Administrator
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RunAsMenu2]
@="Set Running as Administrator"
"Icon"="\"C:\\Windows\\System32\\user32.dll\",6"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RunAsMenu2\command]
@="cmd.exe /c reg add \"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /t REG_SZ /d \"~ RunAsAdmin\" /F &start \"\" \"%1\"&Exit"
;菜单3 - 查询此文件
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RunAsMenu3]
@="Query This File"
"Icon"="\"C:\\Windows\\System32\\shell32.dll\",23"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RunAsMenu3\command]
@="cmd.exe /k reg query \"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" &Pause&Exit"
;菜单4 - 恢复系统默认
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RunAsMenu4]
@="Set to System Default"
"Icon"="\"C:\\Windows\\System32\\shell32.dll\",238"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RunAsMenu4\command]
@="cmd.exe /k reg delete \"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /F &Exit"
;菜单5 - 查询所有文件
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RunAsMenu5]
@="Query All Files"
"Icon"="\"C:\\Windows\\System32\\shell32.dll\",22"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\RunAsMenu5\command]
@="cmd.exe /k reg query \"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" &Pause&Exit"
;将二级菜单挂载到 exe 右键
[HKEY_CLASSES_ROOT\exefile\shell\切换程序运行时UAC]
"Icon"="\"C:\\Windows\\System32\\user32.dll\",6"
"SubCommands"="RunAsMenu1;RunAsMenu2;RunAsMenu3;RunAsMenu4;RunAsMenu5;"

保存为 .reg 文件导入即可生效。之后在任意 .exe 上点右键 → “切换程序运行时 UAC” 就能看到这 5 个选项。

小结#

UAC 是 Windows 安全体系中重要的一环,理解它的工作原理能帮你更好地控制系统权限。本文介绍的兼容性设置和右键菜单方案,是日常使用中最高频的操作,建议收藏以备不时之需。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Windows 用户账户控制(UAC)指南
https://blog.cn3.top/posts/用户账户控制/
作者
CC
发布于
2026-06-23
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
CC
嘻嘻.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
32
分类
7
标签
54
总字数
29,119
运行时长
0 天
上次更新
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.9
文章许可
CC BY-NC-SA 4.0
文章目录