Windows 用户账户控制(UAC)指南
884 字
4 分钟
Windows 用户账户控制(UAC)指南
什么是 UAC?
用户账户控制(User Account Control)是 Windows Vista 引入的安全机制,目的是防止未经授权的系统更改。当程序需要管理员权限时,UAC 会弹出对话框让你确认——这个弹窗你一定见过。
UAC 的核心思路是:即使你以管理员身份登录,应用程序默认也只获得标准用户权限,只有显式同意后才提升权限。这就像进门先刷卡,而不是大门敞开。
UAC 四个等级
UAC 的等级由注册表中三个键值共同控制,位置在:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System| 等级 | ConsentPromptBehaviorAdmin | EnableLUA | PromptOnSecureDesktop |
|---|---|---|---|
| 高(默认) | 2 | 1 | 1 |
| 中 | 5 | 1 | 1 |
| 低 | 5 | 1 | 0 |
| 关 | 0 | 0 | 0 |
三个键值的含义:
| 键名 | 作用 |
|---|---|
ConsentPromptBehaviorAdmin | 管理员提权时的通知强度 |
EnableLUA | UAC 总开关 |
PromptOnSecureDesktop | 弹窗时桌面是否变黑(安全桌面) |
建议: 保持默认的”高”等级。关闭 UAC 不会让电脑变快,只会让恶意软件更容易拿到系统权限。
应用兼容性运行方式
某些老程序需要特定兼容性设置才能正常工作。Windows 将兼容性设置存储在:
HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers常用运行方式值
| 值 | 含义 |
|---|---|
WINXPSP3 | 以 XP 兼容模式运行 |
RUNASADMIN | 以管理员身份运行 |
~ DPIUNAWAER | 高 DPI 缩放覆盖 |
DWM8And16BitMitigation | 简化的颜色模式(8/16位) |
RUNASINVOKER | 以调用者身份运行(不提权) |
实用脚本
设置为管理员运行:
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "程序路径.exe" /t REG_SZ /d "~ RunAsAdmin"设置为调用者运行(不提权):
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "程序路径.exe" /t REG_SZ /d "~ RunAsInvoker"查询当前所有设置:
reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"删除特定程序的兼容性设置:
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 安全体系中重要的一环,理解它的工作原理能帮你更好地控制系统权限。本文介绍的兼容性设置和右键菜单方案,是日常使用中最高频的操作,建议收藏以备不时之需。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
Windows 开机自启动的多种方式
经验教程注册表、计划任务、服务、启动目录……盘点 Windows 开机自启动的所有姿势,附跳过 UAC 的实用技巧。
2
Windows 文件类型关联机制详解
经验教程双击文件时 Windows 怎么知道该用哪个程序打开?assoc 和 ftype 命令背后是什么原理?手把手教你自定义文件关联。
3
(目录) Windows 自定义设置指南
经验教程从 UAC 到注册表,从 Explorer 到命令行——一个重度 Windows 用户多年积累的配置技巧全系列。
4
Windows 系统配置与服务优化指南
经验教程从服务管理到网络共享,从远程桌面加速到睡眠唤醒排查,系统级的配置优化全攻略。
5
Windows 实用工具脚本合集
经验教程ADB 连接模拟器、强删文件、ms-settings 快速跳转、QQ 缓存清理……日常 Windows 使用中最实用的小脚本汇总。
随机文章随机推荐














