当前位置: 首页 > news >正文

Windows 的 UAC 设置中的通知等级实际上只有两个档而已

Windows 系统中的 UAC 设置界面有四种不同的选项可以选,但实际上真正有意义的只有两个选项。

本文将介绍 UAC 这四个档设置的区别,帮助你合理的设置你的电脑。


UAC 设置界面

在 Windows 10 任务栏的搜索框中输入 uac 可以直接打开 UAC 设置界面。

搜索“更改用户账户控制设置”

下图是“用户账户控制设置”界面,想必小伙伴们应该已经很熟悉了。它有四个档:

  • 始终通知
  • 当应用试图安装软件或更改计算机设置时通知,使用安全桌面
  • 当应用试图安装软件或更改计算机设置时通知,不使用安全桌面
  • 从不通知

用户账户控制设置

实际上只有两个档

然而在微软的 Raymond Chen(陈瑞孟)在 There are really only two effectively distinct settings for the UAC slider 一文中说实际上只有两个档:

  • 始终通知
  • 辣鸡

Windows 系统是通过让一些 UAC 提权动作变成静默提权的方式来避免通知过多的问题,主要是让那些“看起来没什么危害的”系统设置不用通知。但是,这相当于开了一个后门,程序可以很容易注入到 explorer.exe 中然后获得提权,或者通过白名单方式把自己加入到静默提权中。

有了这个后门,大家就可以找到各种绕过 UAC 弹窗的方法,比如 NSudo、UACME、QuickAdmin。你根本阻止不完这些绕过 UAC 弹窗的方法!

微软说:“绕过 UAC 弹窗不是漏洞,所以我们不会修补。” (也许将来绕过 UAC 弹窗的恶意软件泛滥的时候,微软就会做点什么了)

微软已经提供了全部弹窗这个选项,明明可以阻止各类程序绕过 UAC,但为什么默认设置是这个可以绕过的选项呢?

—— 因为用户希望如此。

Windows Vista 中,确实只有始终通知和关闭 UAC 两个选项,而且始终通知是默认选项;实际上 UAC 也确实只有这两个有实际意义的选项。但是始终通知会使得系统日常使用过程中真的有非常多的 UAC 弹窗,只要你试图修改一些可能影响其他用户的设置或者可能与 Windows 系统安全有关的操作,都会弹出 UAC 弹窗。大多数用户都会觉得这么多的 UAC 弹窗是很烦的。所以 Windows 7 开始不得不引入两个额外的中间状态,让一些已知的提权操作变成静默的,不弹 UAC 窗口。默认值是中间状态,因为大多数用户希望是这样的提醒级别。

中间档的差别

进程在试图提权的时候,会弹出 UAC 提示。对于 Windows 管理员账户来说,在控制面板里面的大量操作可能都是在影响所有用户,如果全部通知,那么在控制面板里面点击的很多功能都会弹出 UAC 提示(例如修改时间,这是个影响所有用户的操作,而且有些安全软件可能会因为系统时间改变而失效)。

那两个中间档就是指:

  • 在控制面板里的管理操作不用弹出提示
  • 在 Windows 资源管理器内部操作的时候不用弹出提示(启动子进程依然需要)
  • 打开任务管理器的时候不用弹出提示
  • 更改防火墙设置的时候不用弹出提示
  • 打开 UAC 设置界面的时候不用弹出提示

我的建议

现在 Windows 10 都发布了很多个版本了,离 UAC 最初引入到 Windows 系统中时已经过去了十多年时间,这么长的时间,足够很多应用兼容 Medium 的权限级别了。

如果你不了解 Medium 权限级别,可以阅读我的另一篇博客:Windows 中的 UAC 用户账户控制 - 吕毅。

即便我们现在选择“始终通知”,也不会比当初 Windows 7 刚刚发布时的通知多了,更不会比当初 Windows Vista 刚刚引入时多。因为应用的 UAC 弹窗少了,而对 Windows 的管理操作也不是经常进行。

我现在日常使用的是“管理员账户 + 始终通知”,在某些情况下可能会使用“标准账户 + 始终通知”。并不会觉得多出了很多 UAC 弹窗。

目前感觉最明显的多出来的弹窗是:

  • 打开任务管理器的时候会弹窗
  • 添加防火墙信任的时候会弹窗
  • 在资源管理器中修改系统目录的时候会弹窗
  • 在 Windows 设置应用中的一些设置会弹窗

更多关于 UAC 的博客

  • Windows 中的 UAC 用户账户控制 - 吕毅
  • 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 - 吕毅
  • 在 Windows 系统上降低 UAC 权限运行程序(从管理员权限降权到普通用户权限) - 吕毅
  • Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) - 吕毅

参考资料

  • The Old New Thing - There are really only two effectively distinct settings for the UAC slider

我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等)
  • C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常
  • C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈
  • C#/.NET 使用 git 命令行来操作 git 仓库
  • C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思?
  • WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因
  • 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本)
  • 如何在 MSBuild 的项目文件 csproj 中获取绝对路径
  • C# 跨设备前后端开发探索
  • MSBuild 如何编写带条件的属性、集合和任务 Condition?
  • WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码
  • 如何快速自定义 Visual Studio 中部分功能的快捷键
  • C# 8.0 如何在项目中开启可空引用类型的支持
  • C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码
  • C# 可空引用类型 NullableReferenceTypes 更强制的约束:将警告改为错误 WarningsAsErrors
  • 2019.2.20 c++ 知识梳理
  • const let
  • es的写入过程
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • JavaScript 一些 DOM 的知识点
  • Laravel Telescope:优雅的应用调试工具
  • Logstash 参考指南(目录)
  • node学习系列之简单文件上传
  • PermissionScope Swift4 兼容问题
  • PHP的Ev教程三(Periodic watcher)
  • Python_OOP
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 分享一份非常强势的Android面试题
  • 基于axios的vue插件,让http请求更简单
  • 将回调地狱按在地上摩擦的Promise
  • 聚簇索引和非聚簇索引
  • 聊聊sentinel的DegradeSlot
  • 小李飞刀:SQL题目刷起来!
  • 一起参Ember.js讨论、问答社区。
  • (007)XHTML文档之标题——h1~h6
  • (42)STM32——LCD显示屏实验笔记
  • (function(){})()的分步解析
  • (转)Oracle存储过程编写经验和优化措施
  • (转)德国人的记事本
  • .gitignore文件—git忽略文件
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net core使用ef 6
  • .NetCore 如何动态路由
  • .net分布式压力测试工具(Beetle.DT)
  • .NET企业级应用架构设计系列之应用服务器
  • .so文件(linux系统)
  • /bin/bash^M: bad interpreter: No such file or directory
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • :=
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [C puzzle book] types
  • [c]统计数字
  • [Grafana]ES数据源Alert告警发送
  • [HackMyVM]靶场 Wild
  • [HEOI2013]ALO