跳转至主要内容

晴雨技术笔记

Windows 统一写入筛选器 (二)

杏川铭心 杏川铭心
发表于 2025年11月21日

上一篇文章中我们了解了如何使用 UWF 功能以及如何进行基础的配置,今天我们来看看如何进一步配置 UWF 的保护选项。

细化保护

之前提到 UWF 最大的优势之一就在于可以细化保护配置到单个文件或注册表项,而无需局限于在整个盘符上启用或关闭保护。

管理排除项

文件和注册表的排除管理是分开的,分别在两个子命令中。

如果要添加排除项,则可以使用:

uwfmgr file add-exclusion [路径]
uwfmgr registry add-exclusion [项]

文件路径同样可以使用那个又臭又长的 UNC 路径。

删除排除项则可以使用:

uwfmgr file remove-exclusion [路径]
uwfmgr registry remove-exclusion [项]

注册表排除的时候只能精确到项,不可以精确到值!这一点需要注意~

另外添加排除项的时候不可以添加整个盘符,这种情况需要使用针对卷的命令。

还有,路径是支持通配符(*)的!如果排除文件夹的时候感觉效果不想自己想象中的那样,请试一下通配符吧!

和其他对 UWF 的修改一样,这些操作也是需要重启才可以生效的,且在重启完成前添加的排除项依然会被删除

立即提交

除了永久性排除或者保护某个文件外,也可以临时写入或丢弃某个文件或注册表值!

写入:

uwfmgr file commit [路径]
uwfmgr registry commit [项] [键]

丢弃:

uwfmgr file commit-delete [路径]
uwfmgr registry commit-delete [项] [键]

和排除项配置不同,提交修改时是不可以选择整个文件夹的。放弃时则只可以放弃空文件夹,有东西的文件夹也是不可以直接放弃的。

持久覆盖

其实这个功能我觉得叫成“按需还原”更好啦……

不过翻译确实是这个,英文原文也是“持久覆盖”的意思。总之,这个功能可以实现重启后保留覆盖层,也就是既没有完全关闭保护,也没有激进到每次重启都还原,不管是对于终端用户还是设备管理员都非常友好!

启用可以使用这个命令:

uwfmgr overlay set-persistent on

启用是 on 那停用就是 off:

uwfmgr overlay set-persistent off

如果想立即还原覆盖层则可以使用这个命令,这会导致 UWF 在下次设备重启时清空覆盖层:

uwfmgr overlay reset-persistentstate on

需要注意的是使用持久覆盖需要硬盘覆盖层,使用 RAM 覆盖层很显然的不满足这个功能的原理。(断电了 RAM 里数据全没了,怎么保留覆盖层嘛……)

关机和重启

啊?什么?关机和重启还需要教吗?

当然,正常情况下关机重启肯定是不需要教的。不过这里有一个很有意思的点,因为 Windows 关机的时候会往硬盘里写入一点内容,注意这里有一个“写入”,也就是会被 UWF 截取并且放进覆盖层!

当然,如果覆盖层没有满,那么就和正常情况是一样的,Windows 顺利把东西写入硬盘(然后被 UWF 全部丢掉),关机。

不过如果覆盖层满了呢?很显然这个时候 Windows 就进入了一个很尴尬的状态,当然这个问题肯定有一部分要怪这个系统的设计(UWF 确实可以检测到 Windows 正在关机然后动态调整策略,只不过这个检测有点大病,需要非——常——长——的时间才可以检测出来……),好在微软也并非没有考虑到这个情况,因此提供了特殊的工具,可以让 Windows 在这种情况下顺利关机(或者重启)。

命令很简单:

uwfmgr <shutdown|restart>

如果仔细观察的话会发现用这个命令的时候系统关机很快。嗯……好像也不需要很仔细。

服务模式

网上的 UWF 介绍中往往充斥着这样一段错误的话:

允许 Windows 更新:

uwfmgr servicing enable

其实只要够细心,就可以发现问题:正常排除项不是什么 file add-exclusion 吗?这里的 servicing enable 又是什么鬼?

因为这串命令根本就不是什么“允许 Windows 更新”,相反,这是个一次性的命令,作用是在重启之后:

  • 关闭 UWF 并进入一个特殊的账户
  • 自动进行 Windows 更新
  • 更新完成后自动重启

这个流程就被称为 UWF 服务模式,目的就是为了有一套逻辑,在保证 UWF 的安全性的同时,也能正常对设备展开维护工作。需要注意的是,服务模式要求设备上已有的账户都设置了密码,如果有没有密码的账户那么是无法正常进入服务模式的。

服务模式下进入的特殊账户名称为“UWF-Servicing”,服务名称为“UwfServicingSvc(统一写入筛选器服务帮助程序服务)”。

需要注意的是,这个账户在进入服务模式前不能手动创建,不然服务模式会失败。

另外,UwfServicingSvc 千万不要手动启用,除非你想让你的设备变砖!

进入服务模式后,会运行一个叫做 uwfservicingscr.scr 的特殊屏幕保护程序,这个东西是可以通过修改注册表自定义的!当然也可以干脆替换成自己的屏保程序,到时候一重启俨然自己就是设备 OEM,IT 管理员,直接专业感拉满了有木有!

注册表项也不多,就是这几个,都在 HKLM\Software\Microsoft\Windows Embedded\ServicingScreenSaver 下

  • ColorBackground:DWORD,背景颜色
  • ColorText:DWORD,文字颜色:
  • ColorProgress:DWORD,进度条颜色
  • ScreenSaverTitle:字符串,标题
  • ScreenSaverSubTitle:字符串,小标题
  • HideScreenSaverText:DWORD,是否隐藏标题
  • HideScreenSaverProgress:DWORD,是否隐藏进度条
  • Font:字符串,字体名称

需要提醒的是,uwfservicingscr.scr 是不能通过正常移动鼠标或者按下键盘的方式来退出的!不小心点开的话,按下 Ctrl+Alt+Delete 就可以退出了。

Windows Defender

虽然大多数人巴不得 WD 滚出电脑,可惜只有这玩意儿是官方的,别的杀毒软件,抱歉,没有适合于 UWF 的配置!

如果不对 WD 进行特殊设置,那么重启的时候,隔离的文件还有各种配置都会消失。

需要排除这些文件:

C:\Program Files\Windows Defender
C:\ProgramData\Microsoft\Windows Defender
C:\Windows\WindowsUpdate.log
C:\Windows\Temp\MpCmdRun.log

以及这些注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdBoot
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdFilter
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdNisSvc
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdNisDrv
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinDefend

需要注意的是由于 WD 的自我保护机制,把 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdFilter 添加到排除项可能会导致设备开机即死机(什么草台班子微软),遇到这种情况,可以通过在关机前手动提交该项中的每个值,或者将提交值的脚本配置为关机前运行解决。

结语

看到这里你可能会有一个疑问,感觉这个 UWF 哪哪都好,但是相比于别的冰点还原,总感觉缺了点什么?

事实上简单观察一下就可以发现,UWF 没有独立设置密码的功能。UWF 验证你有管理权的唯一方式,就是 Windows 自带的用户鉴权,你平时 UAC 只用点个是,那么修改 UWF 设置也只用点个是。

这大概就是为什么 UWF 并没有那么热门的原因,这种模式和“重启还原”更多的适用环境以及国内的习惯其实是相悖的,就拿学校里的机房来说,很多甚至是直接 Administrator 登录,连 UAC 都省了,在这种情况下 UWF 被破解是分分钟的事。

不过不管怎么样,感谢微软提供了这么好的功能,至此我们也基本掌握了 UWF 的使用。

  • 特别提醒:

    评论看到就会回,但是不保证速度,有的时候站长忘记看的话就会出现审核好几天也没有动静的情况……

    如果等不及的话,可以加QQ,同样看到就会通过!

杏川铭心
杏川铭心

QQ: 3146654817,欢迎友好交流 :P 曾用名Frank419(现在也是我在很多地方的用户名),网站站长。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注