接到boss的要求,要求所有会议室电脑在零时自动重启,且重启后会自动恢复备份系统
这时候我的老哥告诉我,可以用Windows自带的一个功能——UWF!
WHAT?UWF?是UFO的弟弟吗?
接下来,介绍我使用UWF的辛苦过程(难受加班了一个月)
UWF统一写入筛选器
ok我们已经明确了领导的具体需求,这时候我先在一个会议室的笔记本电脑上重装重装系统。
重装系统后我们就需要开启系统自动还原
前提:什么是UWF
统一写入筛选器 (UWF) 是一个可选的 Windows 10、11 功能,它通过拦截驱动器的所有写入(应用安装、设置更改、保存的数据)并将其重定向到虚拟覆盖层来帮助保护驱动器。 虚拟覆盖是一个临时位置,通常在重新启动期间或来宾用户注销时清除。
(来自微软文档:https://docs.microsoft.com/zh-cn/windows-hardware/customize/enterprise/unified-write-filter)
通俗释义:UWF相当于给受保护的卷包裹了一张透明薄膜(薄膜有两种:RAM与Disk),任何文件操作只会发生在薄膜上,重新启动计算机时,撕去脏污的薄膜,重新启动计算机后,贴上一张全新的薄膜。即当打开UWF时,文件系统为Alpha状态,之后无论经过何种文件操作(包括但不限于新建、删除、重命名、更改属性),重新启动计算机后,文件系统都会恢复为Alpha状态,若UWF保护的卷中包含C盘系统盘,则对系统设置、注册表等修改也将被恢复为Alpha状态。UWF类似于系统还原,不过更为彻底,任何文件更改在重启后都不会保留(C盘除外,因其特殊地位,恢复率99%)
优点:RAM模式下文件写入内存,不占用SSD写入量;RAM模式下的受保护卷4K读写与延迟极为出色,适合用于缓存空间;若选择保护C盘,可用于试验某些危险度较低、未触及到系统深层的行为,如安装流氓软件,浅层的注册表、组策略、控制面板修改
缺点:UWF虽然发展时间不算短(前身为Windows7中的EWF),依然不是很成熟,Bug较多,故仅作为可选功能提供。某些恶性Bug甚至会导致无法拯救的蓝屏。
(来自作者:人在火星-刚下飞船 https://www.bilibili.com/read/cv17730257/ 出处:bilibili)
1.安装UWF
控制面板>程序>启用或关闭Windows功能>设备锁定
找到统一写入筛选器
点击确定 安装完成重启即可
2.开启UWF
在CMD窗口中输入
uwfmgr.exe filter enable //开启UWF
uwfmgr.exe filter disable //关闭UWF
但在这里注意,最好先配置[3.UWF的其他属性]后再开启UWF
同理,需要先关闭UWF再配置[3.UWF的其他属性],从而减少系统蓝屏死机或其他问题!
3.UWF的其他属性
uwf有两种模式——RAM模式和Disk模式
懂计算机专业术语的大牛已经就能猜出来什么意思了。
RAM模式——在系统启用UWF后,额外写入的数据保存在RAM(内存)中
Disk模式——在系统启用UWF后,额外写入的数据保存在Disk(硬盘 )中
(具体参见微软文档不再详细赘述)
我的老哥选择Disk模式,表示Disk模式直通不会影响内存损耗,但会折损硬盘寿命(每一次重启都会重写一遍硬盘)
详细配置来了
uwfmgr.exe overlay set-type Disk //将UWF设置为Disk模式
由于我们重装系统只保留了一个C盘,所有只保护C盘就好了,当然可以选择其他盘排除保护
uwfmgr.exe volume protect C: //UWF保护C盘
uwfmgr.exe volume unprotect D: //UWF排除保护D盘
至此我们设置完成UWF后,进行第二步[开启UWF]后进行测试,一切正常!
没成想!这才是噩梦刚刚开始!
4.UWF的逼坑点
在会议室开启UWF后,有人反映启动UWF的会议室电脑会自动重启和卡死
我们排查卡死的原因可能是程序问题(给某会议软件道歉!对不起!)
会议室电脑自动重启的原因可能是定时重启任务的问题
(从Administrator账户开了一个用户,然后在Admin账户开的自动重启定时任务,这时候如果没有进入Admin账户,直接进入单开的账户,可能会任务无法执行导致重启)
然后我加班了
把所有会议室的电脑按照boss和cto的用户习惯更改
顺便把定时重启任务改成单开的账户执行(而且重启会提示2分钟后重启)
就这也平稳过了几天
突然一堆人反应会议室卡死,无法正常开会!
我心想不对啊,偶尔一台卡死正常,一起卡死不对劲!难道是UWF问题???
就在这时,Windows给我来一个提示!
这个1024MB怎么这么熟悉!!!
这时候我们就详细排查UWF的文档,然后我们发现!
RAM覆盖大小默认为1024MB,此1024MB内存空间并没有被UWF锁定,而如果写入覆盖区的文件大小超过1024MB阈值,系统将会完全黑屏无响应,只能按关机按钮重启。
可是我丫开的不是Disk模式嘛,Disk模式不是直通磁盘不受内存影响嘛?
这时候我的老哥发现,会议室的所有电脑都在系统更新!
老哥排查的结果是,系统更新把磁盘/内存写爆炸了,又因为UWF的原因,重启后更新无法写入硬盘,只能一直反复,最后造成反复的计算机重启!
但始终想不通为什么会受到1024MB的阈值限制
最后达成共识
关停所有会议室电脑的系统自动更新
qpedit.msc
services.msc
两个策略中关停系统自动更新
在UWF中,开启Disk模式硬盘直通(其实是默认开启的)
uwfmgr.exe overlay set-passthrough on //开启可用空间直通
然后提高可用内存空间的阈值
uwfmgr.exe overlay set-size 8192 //uwf设定的覆盖大小
uwfmgr.exe overlay set-criticalthreshold 7500 //uwf设定的严重提醒级别
uwfmgr.exe overlay set-warningthreshold 7000 //uwf设定的提醒级别
有一个大佬写了一个软件,就不需要敲这么多代码了,还容易错
详见(4 封私信 / 28 条消息) windows统一写入过滤(uwf)的稳定性如何? - 知乎 (zhihu.com) 特别感谢!
截止到今天,暂未发生会议室卡死和重启的问题反馈
哦对,上面查看UWF配置信息的命令是
uwfmgr.exe get-config //查看UWF配置信息
5.我的总结
其实在配置UWF的时候有很多坑的,接下来给大家说明一下
1.UWF在启动时,如果要修改配置建议先重启,然后关闭UWF,再修改配置
2.UWF在使用命令行CMD配置的时候,命令行必须是管理员模式(Ctrl+Shift+Enter)
3.建议查看UWF配置信息以明确配置是否生效
参考文档(特别感谢)
UWF统一写入筛选器 - 哔哩哔哩 (bilibili.com)
(4 封私信 / 41 条消息) windows统一写入过滤(uwf)的稳定性如何? - 知乎 (zhihu.com)
UWF自定义设置与命令管理_uwf保护管理-CSDN博客
统一写入筛选器 (UWF) 功能 (unified-write-filter) | Microsoft Learn