统一写入筛选器配置工具(UWF)完整使用文档
统一写入筛选器配置工具完整使用文档
目录
1. 工具概述
统一写入筛选器配置实用工具(Uwfmgr.exe)是 Microsoft Windows 嵌入式操作系统中用于配置和管理统一写入筛选器(UWF)的命令行工具。UWF 是一种系统保护功能,它可以将所有磁盘写入操作重定向到虚拟覆盖层,从而保护系统卷免受永久性更改。这一特性在需要保持系统稳定性和防止未授权修改的场景中尤为重要,例如信息亭终端、工业控制系统和嵌入式设备等。
该工具版本为 10.0.26100,对应 Windows 10/11 最新版本。通过 uwfmgr 工具,管理员可以轻松配置 UWF 的各项参数,包括筛选器状态、覆盖层设置、受保护卷管理、文件和注册表排除列表以及服务模式等。所有配置更改大多数情况下需要在系统重新启动后才会生效,这确保了配置的一致性和系统稳定性。
使用 uwfmgr 工具的基本语法为:uwfmgr[.exe] parameter [commands] [arguments],其中 parameter 指定配置的主要模块,commands 指定具体的操作命令,arguments 提供命令所需的参数值。工具支持多个功能模块,每个模块负责特定类型的配置任务,管理员可以根据需要选择相应的模块进行操作。
2. 命令索引
2.1 Filter 筛选器配置命令
| 命令 | 功能描述 | 生效时机 |
|---|---|---|
| filter enable | 为下次会话启用 UWF | 系统重启后 |
| filter disable | 为下次会话禁用筛选器 | 系统重启后 |
| filter enable-HORM | 当前会话恢复多次后启用休眠 | 立即生效 |
| filter disable-HORM | 当前会话恢复多次后禁用休眠 | 立即生效 |
| filter reset-settings | 重置所有 UWF 设置为默认值 | 系统重启后 |
2.2 Overlay 覆盖配置命令
| 命令 | 功能描述 | 参数说明 |
|---|---|---|
| overlay set-size | 设置覆盖大小(MB) | 指定大小值 |
| overlay set-type | 设置覆盖类型 | RAM 或 Disk |
| overlay set-passthrough | 设置可用空间直通 | on 或 off |
| overlay set-persistent | 设置持久覆盖 | on 或 off |
| overlay set-rom-mode | 设置只读媒体模式 | on 或 off |
| overlay reset-persistentstate | 设置持久覆盖处理方式 | none 或 rollback |
| overlay set-warningthreshold | 设置警告阈值(MB) | 指定阈值大小 |
| overlay set-criticalthreshold | 设置临界阈值(MB) | 指定阈值大小 |
| overlay commit | 提交所有累积写入 | 仅只读媒体模式 |
| overlay get-config | 显示覆盖配置信息 | 无 |
| overlay get-availablespace | 显示剩余可用空间 | 无 |
| overlay get-consumption | 显示当前覆盖大小 | 无 |
2.3 Volume 卷管理命令
| 命令 | 功能描述 | 参数说明 |
|---|---|---|
| volume protect | 保护指定卷 | 卷标识符 |
| volume unprotect | 取消保护指定卷 | 卷标识符 |
| volume create-swapfile | 创建交换文件 | 卷标识符 |
| volume get-config | 显示卷配置信息 | all 或卷标识符 |
2.4 File 文件排除命令
| 命令 | 功能描述 | 参数说明 |
|---|---|---|
| file add-exclusion | 添加文件排除 | 完整文件路径 |
| file remove-exclusion | 移除文件排除 | 完整文件路径 |
| file get-exclusions | 获取排除列表 | all 或卷标识符 |
| file commit | 提交文件更改 | 完整文件路径 |
| file commit-delete | 提交文件删除 | 完整文件路径 |
2.5 Registry 注册表排除命令
| 命令 | 功能描述 | 参数说明 |
|---|---|---|
| registry add-exclusion | 添加注册表排除 | 完整注册表路径 |
| registry remove-exclusion | 移除注册表排除 | 完整注册表路径 |
| registry get-exclusions | 获取排除列表 | 无 |
| registry commit | 提交注册表更改 | 完整路径和值名称 |
| registry commit-delete | 提交注册表删除 | 完整路径和值名称 |
2.6 Servicing 服务模式命令
| 命令 | 功能描述 | 生效时机 |
|---|---|---|
| servicing enable | 启用服务模式 | 系统重启后 |
| servicing disable | 禁用服务模式 | 系统重启后 |
| servicing update-windows | 更新 Windows 系统 | 立即执行 |
| servicing get-config | 显示服务配置 | 无 |
2.7 Get-config 整体配置命令
| 命令 | 功能描述 | 说明 |
|---|---|---|
| get-config | 显示所有配置信息 | 包含当前会话和下次会话配置 |
2.8 Help 帮助命令
| 命令 | 功能描述 | 说明 |
|---|---|---|
| help | 显示帮助信息 | 显示基本参数或特定命令的帮助 |
| ? | 显示帮助信息 | 同 help |
3. 详细命令说明
3.1 Filter 筛选器配置
Filter 模块是 UWF 工具的核心模块,用于配置筛选器的基本状态和全局设置。通过该模块,管理员可以启用或禁用统一写入筛选器功能,以及配置休眠恢复多次(HORM)功能。HORM 是一种高级功能,允许系统在多次休眠恢复后保持一致的状态,非常适合需要快速启动和恢复的场景。
3.1.1 filter enable
功能描述:为下次会话启用统一写入筛选器。此命令仅设置配置,不会立即启用 UWF,系统将在下次重新启动后应用更改。
调用语法:
uwfmgr.exe filter enable
参数说明:此命令不接受任何参数。
功能详解:执行此命令后,UWF 将被添加到系统启动配置中,系统重启后所有受保护卷都将受到 UWF 的保护。需要注意的是,仅执行此命令不会立即激活 UWF,必须重启系统才能使更改生效。此外,在启用 UWF 之前,应确保已经配置好需要保护的卷和排除列表。
使用示例:
C:\> uwfmgr.exe filter enable
此命令将配置系统在下次启动时启用 UWF 保护。
注意事项:启用 UFT 前,建议先配置好受保护卷列表和文件排除列表,避免重要数据被意外写入保护。同时,确保系统有足够的内存或磁盘空间用于覆盖层存储。
3.1.2 filter disable
功能描述:为下次会话禁用统一写入筛选器。与 enable 命令类似,此命令设置的是下次启动的配置,系统重启后才会实际禁用 UWF。
调用语法:
uwfmgr.exe filter disable
参数说明:此命令不接受任何参数。
功能详解:执行此命令后,系统将在下次启动时禁用 UWF,所有受保护卷将恢复正常读写模式。这在需要进行系统更新、软件安装或其他需要永久更改的操作时非常有用。禁用后,覆盖层中的所有未提交更改将丢失,因此请确保已提交所有必要的更改。
使用示例:
C:\> uwfmgr.exe filter disable
此命令将配置系统在下次启动时禁用 UWF 保护。
注意事项:禁用 UWF 前,建议使用 overlay commit 命令提交所有需要保留的更改。禁用后,对受保护卷的所有写入将直接写入磁盘,无法撤销。
3.1.3 filter enable-HORM
功能描述:启用休眠恢复多次(Hibernate Once, Resume Many)功能。此功能允许系统在多次休眠恢复后保持一致的状态,非常适合需要快速启动和信息亭模式的场景。
调用语法:
uwfmgr.exe filter enable-HORM
参数说明:此命令不接受任何参数。
功能详解:HORM 功能通过在启用 UWF 的情况下创建特殊的休眠映像来实现。每次系统从休眠恢复时,都会恢复到完全相同的状态,无论在运行期间进行了多少更改(这些更改都存储在覆盖层中)。此功能对于需要保持环境一致性的公共终端非常有用。启用 HORM 前,系统必须已经启用 UWF,并且覆盖类型必须设置为 Disk。
使用示例:
C:\> uwfmgr.exe filter enable-HORM
此命令将启用 HORM 功能,允许系统多次从休眠恢复而保持一致状态。
先决条件:使用 HORM 功能前,必须满足以下条件:已启用 UWF、覆盖类型设置为 Disk、有足够的磁盘空间存储休眠文件、系统支持休眠功能。建议在启用 HORM 前先创建休眠文件并测试休眠恢复功能是否正常工作。
3.1.4 filter disable-HORM
功能描述:禁用休眠恢复多次功能。禁用后,系统将恢复正常休眠功能,每次休眠恢复后将反映系统运行期间的更改。
调用语法:
uwfmgr.exe filter disable-HORM
参数说明:此命令不接受任何参数。
功能详解:执行此命令后,HORM 功能将被禁用,系统将使用标准休眠机制。这在需要系统反映运行期间更改的场景下很有用。禁用 HORM 不会删除已创建的休眠文件,只是系统不再使用 HORM 模式启动。
使用示例:
C:\> uwfmgr.exe filter disable-HORM
此命令将禁用 HORM 功能。
注意事项:禁用 HORM 后,下次系统恢复时将使用标准休眠恢复,可能需要较长时间。如果需要完全禁用休眠功能,还需要在电源选项中关闭休眠支持。
3.1.5 filter reset-settings
功能描述:将所有 UWF 设置重置为默认值。这包括筛选器状态、覆盖配置、卷保护和排除列表等所有设置。
调用语法:
uwfmgr.exe filter reset-settings
参数说明:此命令不接受任何参数。
功能详解:此命令是一个破坏性操作,执行后所有自定义 UWF 配置将被清除,系统将恢复到默认状态。这在配置混乱需要重新开始、或部署新配置前清理旧配置时很有用。重置操作仅影响 UWF 配置,不会影响系统其他设置或用户数据。
使用示例:
C:\> uwfmgr.exe filter reset-settings
此命令将重置所有 UWF 设置为出厂默认值。
注意事项:此操作不可逆,执行前请确保已备份重要配置。建议在执行重置前记录当前配置,以便必要时可以手动恢复。重置后,所有自定义排除列表、覆盖设置和卷保护配置都将丢失,需要重新配置。
3.2 Overlay 覆盖配置
Overlay 模块用于配置覆盖层的各种属性,包括大小、类型、阈值和提交操作等。覆盖层是 UWF 系统的核心组件,它临时存储所有对受保护卷的写入操作。正确配置覆盖层对于系统的稳定运行和性能表现至关重要。
3.2.1 overlay set-size
功能描述:设置覆盖层的大小(以 MB 为单位)。此设置将在下次系统启动时生效,驱动程序将在启动时预分配指定大小的内存。
调用语法:
uwfmgr.exe overlay set-size <size_in_MB>
参数说明:
size_in_MB:指定的覆盖层大小,单位为兆字节(MB)。必须为正整数。
功能详解:覆盖层大小决定了系统可以临时存储多少写入数据。当覆盖层填满时,系统将无法进行更多写入操作,可能导致应用程序错误或系统不稳定。因此,需要根据系统的实际使用情况合理设置覆盖层大小。设置过大浪费内存资源,设置过小则可能影响系统正常运行。
使用示例:
C:\> uwfmgr.exe overlay set-size 1024
此命令将覆盖层大小设置为 1024 MB(1 GB)。
C:\> uwfmgr.exe overlay set-size 2048
此命令将覆盖层大小设置为 2048 MB(2 GB),适用于写入量较大的系统。
确定覆盖层大小的考虑因素:评估覆盖层大小时,应考虑以下因素:系统运行的应用程序数量和类型、临时文件产生量、系统更新和补丁安装频率、日志文件大小、用户会话期间的数据变化量。建议预留 20-30% 的额外空间以应对突发情况。
3.2.2 overlay set-type
功能描述:设置覆盖层的类型,可以是 RAM(内存)或 Disk(磁盘)模式。
调用语法:
uwfmgr.exe overlay set-type <type>
参数说明:
type:覆盖类型,有效值为 RAM 或 Disk。
功能详解:
- RAM 模式:覆盖层使用系统内存存储写入数据。这种模式提供最快的性能,但受限于可用内存大小。RAM 模式在系统重启后所有更改丢失,适合对性能要求高且不需要持久化的场景。
- Disk 模式:覆盖层使用磁盘空间存储写入数据。这种模式支持更大的覆盖层容量,并且支持 HORM 功能。Disk 模式在系统重启后覆盖层内容默认丢失,但可以通过设置持久覆盖来保留部分数据。
使用示例:
C:\> uwfmgr.exe overlay set-type Disk
此命令将覆盖类型设置为 Disk 模式,这是支持 HORM 功能所必需的。
C:\> uwfmgr.exe overlay set-type RAM
此命令将覆盖类型设置为 RAM 模式,提供最佳性能但容量受限。
选择覆盖类型的建议:如果系统内存充足且追求最佳性能,可选择 RAM 模式。如果需要支持 HORM 功能或需要更大的覆盖容量,应选择 Disk 模式。对于嵌入式系统和信息亭,通常建议使用 Disk 模式。
3.2.3 overlay set-passthrough
功能描述:设置可用空间直通功能。当启用时,系统在磁盘空间不足的情况下可以直接向受保护卷写入数据,绕过覆盖层限制。
调用语法:
uwfmgr.exe overlay set-passthrough <on|off>
参数说明:
on:启用可用空间直通功能。off:禁用可用空间直通功能。
功能详解:可用空间直通功能是一种容错机制,当覆盖层接近满载或系统检测到磁盘空间不足时,启用此功能可以让系统直接向受保护卷写入关键数据,避免应用程序崩溃或系统不稳定。但是,启用此功能会降低系统保护级别,因为部分写入数据将绕过 UWF 直接写入磁盘。
使用示例:
C:\> uwfmgr.exe overlay set-passthrough on
此命令启用可用空间直通功能,允许在覆盖层空间不足时直接写入受保护卷。
C:\> uwfmgr.exe overlay set-passthrough off
此命令禁用可用空间直通功能,所有写入必须通过覆盖层。
使用建议:在大多数生产环境中,建议保持此功能禁用,以确保最大程度的系统保护。只有在确实需要处理覆盖层空间不足情况的特殊场景下,才考虑启用此功能。
3.2.4 overlay set-persistent
功能描述:将覆盖设置为持久覆盖(Persistent Overlay)。持久覆盖允许覆盖层中的数据在系统重启后保留,而不是被重置。
调用语法:
uwfmgr.exe overlay set-persistent <on|off>
参数说明:
on:启用持久覆盖。off:禁用持久覆盖。
功能详解:当启用持久覆盖时,覆盖层中的数据在重启后不会丢失。这要求覆盖类型必须设置为 Disk。此功能对于需要在保护模式下保留特定状态或数据的场景非常有用,但需要注意管理覆盖层空间,以免其无限增长。
使用示例:
C:\> uwfmgr.exe overlay set-persistent on
此命令启用持久覆盖。
3.2.5 overlay set-rom-mode
功能描述:启用或禁用只读媒体模式(ROM Mode)。
调用语法:
uwfmgr.exe overlay set-rom-mode <on|off>
参数说明:
on:启用只读媒体模式。off:禁用只读媒体模式。
功能详解:只读媒体模式允许 UWF 保护位于只读媒体(如闪存、SD卡)上的卷。在此模式下,所有写入操作都会重定向到覆盖层,且不会尝试写回物理介质,这有助于延长闪存设备的寿命。
使用示例:
C:\> uwfmgr.exe overlay set-rom-mode on
此命令启用只读媒体模式。
3.2.6 overlay reset-persistentstate
功能描述:设置在下次启动时如何处理持久覆盖。持久覆盖允许在系统重启后保留部分写入数据。
调用语法:
uwfmgr.exe overlay reset-persistentstate <none|rollback>
参数说明:
none:不保留持久覆盖数据,启动时清除所有持久覆盖。rollback:回滚到上次正常状态,丢弃所有未提交的更改。
功能详解:持久覆盖功能允许在系统重启后保留特定的写入数据,这对于需要在重启后保存某些配置或数据的场景很有用。none 选项将在下次启动时清除所有持久覆盖数据,rollback 选项将尝试恢复到上次正常状态。
使用示例:
C:\> uwfmgr.exe overlay reset-persistentstate none
此命令设置下次启动时清除所有持久覆盖数据。
C:\> uwfmgr.exe overlay reset-persistentstate rollback
此命令设置下次启动时回滚到上次正常状态。
使用场景:对于标准信息亭和 kiosk 模式,通常使用 none 以确保每次启动都回到干净状态。对于需要保存某些配置的服务器或工作站,可以使用持久覆盖功能。
3.2.7 overlay set-warningthreshold
功能描述:设置覆盖层警告阈值。当覆盖层使用量达到此阈值时,系统将发出警告通知。
调用语法:
uwfmgr.exe overlay set-warningthreshold <size_in_MB>
参数说明:
size_in_MB:警告阈值大小,单位为兆字节(MB)。必须小于覆盖层总大小。
功能详解:警告阈值用于提醒管理员覆盖层即将满载。当覆盖层使用量达到此阈值时,系统将通过事件日志或系统通知发出警告。这允许管理员及时采取措施,如清理临时文件、提交重要更改或增加覆盖层大小。
使用示例:
C:\> uwfmgr.exe overlay set-warningthreshold 256
此命令将警告阈值设置为 256 MB,当覆盖层使用量达到此值时将发出警告。
设置建议:警告阈值通常设置为覆盖层总大小的 75-85%。例如,如果覆盖层大小为 1024 MB,可以将警告阈值设置为 768-870 MB。
3.2.8 overlay set-criticalthreshold
功能描述:设置覆盖层临界阈值。当覆盖层使用量达到此阈值时,系统将发出严重警告通知。
调用语法:
uwfmgr.exe overlay set-criticalthreshold <size_in_MB>
参数说明:
size_in_MB:临界阈值大小,单位为兆字节(MB)。必须小于警告阈值。
功能详解:临界阈值用于标识覆盖层即将满载的危险状态。当覆盖层使用量达到此阈值时,系统将发出更严重级别的警告,提示管理员必须立即采取行动。如果覆盖层完全填满,系统可能无法进行更多写入操作,导致应用程序错误或系统不稳定。
使用示例:
C:\> uwfmgr.exe overlay set-criticalthreshold 128
此命令将临界阈值设置为 128 MB,当覆盖层使用量达到此值时将发出严重警告。
设置建议:临界阈值通常设置为覆盖层总大小的 90-95%。继续上面的例子,如果覆盖层大小为 1024 MB,可以将临界阈值设置为 922-974 MB。
3.2.9 overlay commit
功能描述:将累积在覆盖层中的所有写入数据提交到受保护卷。此操作仅在只读媒体模式下可用。
调用语法:
uwfmgr.exe overlay commit
参数说明:此命令不接受任何参数。
功能详解:commit 命令将覆盖层中累积的所有写入数据永久写入受保护卷。执行此操作后,这些数据将在系统重启后保留。提交操作对于保存重要配置更改、更新和补丁安装非常有用。但是,提交操作可能会降低系统保护级别,因为提交的数据将永久保留。
使用示例:
C:\> uwfmgr.exe overlay commit
此命令将提交所有累积的覆盖层数据到受保护卷。
使用场景:在需要保存重要系统更新、安装新软件或保存用户配置更改时使用。提交后,这些更改将在系统重启后保留。
注意事项:提交操作不可逆,一旦提交无法撤销。提交前确保只提交确实需要永久保留的数据。过多提交会降低 UWF 的保护效果。
3.2.10 overlay get-config
功能描述:显示当前会话和下次会话的覆盖层配置信息。
调用语法:
uwfmgr.exe overlay get-config
参数说明:此命令不接受任何参数。
功能详解:此命令显示覆盖层的完整配置信息,包括:覆盖类型、覆盖大小、警告阈值、临界阈值、可用空间直通状态、当前覆盖使用量等。输出信息分为当前会话配置和下次会话配置两个部分,帮助管理员了解配置变更情况。
使用示例:
C:\> uwfmgr.exe overlay get-config
此命令显示覆盖层的详细配置信息。
输出内容示例:
覆盖类型: Disk
覆盖大小: 1024 MB
警告阈值: 768 MB
临界阈值: 921 MB
当前使用量: 256 MB
可用空间直通: Off
3.2.11 overlay get-availablespace
功能描述:显示当前会话的剩余可用空间。
调用语法:
uwfmgr.exe overlay get-availablespace
参数说明:此命令不接受任何参数。
功能详解:此命令显示覆盖层中剩余的可用空间,以 MB 为单位。这对于监控系统状态和预防覆盖层满载非常有用。管理员可以定期检查可用空间,在空间不足前采取预防措施。
使用示例:
C:\> uwfmgr.exe overlay get-availablespace
此命令显示当前可用空间。
监控建议:建议设置监控系统,在可用空间低于警告阈值时发送通知,以便管理员及时处理。
3.2.12 overlay get-consumption
功能描述:显示覆盖层当前的消耗大小。
调用语法:
uwfmgr.exe overlay get-consumption
参数说明:此命令不接受任何参数。
功能详解:此命令显示覆盖层当前已使用的空间大小,结合 get-availablespace 命令可以全面了解覆盖层的使用状况。这对于容量规划和性能调优很有帮助。
使用示例:
C:\> uwfmgr.exe overlay get-consumption
此命令显示当前覆盖层使用量。
3.3 Volume 卷管理
Volume 模块用于管理受保护的卷,包括添加或移除保护、创建交换文件等操作。正确配置受保护卷是 UWF 正常工作的基础,需要仔细规划哪些卷需要保护以及如何保护。
3.3.1 volume protect
功能描述:将指定卷添加到受保护卷列表中,保护将在下次系统启动后生效。
调用语法:
uwfmgr.exe volume protect <volumename>
参数说明:
volumename:卷标识符,支持以下格式:- 驱动器号(如 c:、d:)
- 设备名称(如 \?\GLOBALROOT\Device\HarddiskVolume1)
- GUID 格式(如 \?\Volume{4c1b02c1-d990-11dc-99ae-806e6f6e6963})
功能详解:protect 命令将指定卷添加到受保护列表。执行此命令后,该卷的所有写入操作将被重定向到覆盖层,系统重启后生效。通常系统卷(C:)是默认需要保护的卷,其他数据卷可以根据需要选择性地保护。
使用示例:
C:\> uwfmgr.exe volume protect c:
此命令保护 C: 驱动器,系统重启后生效。
C:\> uwfmgr.exe volume protect \\?\Volume{4c1b02c1-d990-11dc-99ae-806e6f6e6963}
此命令使用 GUID 格式保护指定卷。
C:\> uwfmgr.exe volume protect d:
此命令保护 D: 驱动器(如果存在)。
卷格式说明:不同格式的卷标识符适用于不同场景。驱动器号格式最简单直观,适用于大多数情况。设备名称格式提供更精确的卷引用,适用于脚本和自动化场景。GUID 格式最为精确,确保引用正确的卷,即使驱动器号发生变化。
3.3.2 volume unprotect
功能描述:从受保护卷列表中移除指定卷,保护将在下次系统启动后解除。
调用语法:
uwfmgr.exe volume unprotect <volumename>
参数说明:
volumename:卷标识符,支持与 protect 命令相同的格式。
功能详解:unprotect 命令将指定卷从受保护列表中移除。执行此命令后,对该卷的写入将直接写入磁盘,系统重启后生效。在需要对该卷进行大量永久更改(如软件安装、系统更新)前,应该先取消保护。
使用示例:
C:\> uwfmgr.exe volume unprotect d:
此命令取消对 D: 驱动器的保护,系统重启后生效。
C:\> uwfmgr.exe volume unprotect \\?\Volume{4c1b02c1-d990-11dc-99ae-806e6f6e6963}
此命令使用 GUID 格式取消保护指定卷。
使用建议:取消保护前,确保已使用 overlay commit 命令提交所有需要保留的更改。取消保护后,对该卷的所有写入将直接生效,无法通过重启撤销。
3.3.3 volume create-swapfile
功能描述:在指定卷上创建交换文件,并将覆盖类型设置为 Disk。
调用语法:
uwfmgr.exe volume create-swapfile <volumename>
参数说明:
volumename:卷标识符,支持与 protect 命令相同的格式。
功能详解:此命令在指定卷上创建交换文件(pagefile.sys),并将覆盖类型设置为 Disk 模式。这对于需要使用 Disk 覆盖类型并使用虚拟内存的系统很重要。创建交换文件后,系统可以使用虚拟内存,这对于内存受限的系统非常有用。
使用示例:
C:\> uwfmgr.exe volume create-swapfile c:
此命令在 C: 驱动器上创建交换文件。
与 HORM 的关系:create-swapfile 命令会自动将覆盖类型设置为 Disk,这是使用 HORM 功能的前提条件。如果需要使用 HORM 功能但覆盖类型已经是 Disk,此命令仍可以用于确保交换文件存在。
3.3.4 volume get-config
功能描述:显示卷的保护配置信息。
调用语法:
uwfmgr.exe volume get-config <all|volumename>
参数说明:
all:显示所有受保护卷的配置信息。volumename:显示指定卷的配置信息。
功能详解:此命令显示卷的保护状态和配置信息,帮助管理员了解当前哪些卷受到 UWF 保护。输出包括卷标识符、保护状态和配置详情。
使用示例:
C:\> uwfmgr.exe volume get-config all
此命令显示所有卷的保护配置。
C:\> uwfmgr.exe volume get-config c:
此命令仅显示 C: 驱动器的保护配置。
3.4 File 文件排除
File 模块用于管理文件和目录的排除列表。通过排除功能,可以指定某些文件或目录不受 UWF 保护,允许对这些位置的写入永久生效。这对于存储用户数据、配置文件和日志文件等需要持久化的场景非常重要。
3.4.1 file add-exclusion
功能描述:将文件或目录添加到受保护卷的排除列表中,排除将在下次系统启动后生效。
调用语法:
uwfmgr.exe file add-exclusion <full_path>
参数说明:
full_path:文件或目录的完整路径,必须包含卷标识符。- 示例:c:\dir1\file.txt
- 示例:\?\Volume{GUID}\dir1\file.txt
功能详解:add-exclusion 命令将指定文件或目录添加到排除列表。被排除的文件或目录不受 UWF 保护,所有对其的写入将直接写入磁盘并在重启后保留。这对于需要持久化存储的用户数据、配置和日志文件非常重要。
使用示例:
C:\> uwfmgr.exe file add-exclusion c:\Users\UserName\AppData
此命令排除用户应用程序数据目录。
C:\> uwfmgr.exe file add-exclusion c:\Logs
此命令排除日志文件目录。
C:\> uwfmgr.exe file add-exclusion \\?\Volume{4c1b02c1-d990-11dc-99ae-806e6f6e6963}\Data
此命令使用 GUID 格式排除指定卷的 Data 目录。
排除策略建议:建议排除以下类型的文件或目录:用户配置文件和设置、应用程序数据目录、日志文件目录、临时文件夹、需要持久化的用户数据。但是,系统关键文件和程序文件不应排除,以保持系统稳定性和安全性。
3.4.2 file remove-exclusion
功能描述:从排除列表中移除指定的文件或目录。
调用语法:
uwfmgr.exe file remove-exclusion <full_path>
参数说明:
full_path:文件或目录的完整路径,必须与添加排除时使用的路径完全一致。
功能详解:remove-exclusion 命令将指定文件或目录从排除列表中移除。移除后,该文件或目录将重新受到 UWF 保护,所有写入将被重定向到覆盖层。需要注意的是,移除排除前对该文件的更改将丢失,因为这些更改存储在覆盖层中。
使用示例:
C:\> uwfmgr.exe file remove-exclusion c:\Logs
此命令移除对 c:\Logs 目录的排除。
路径一致性:移除排除时,路径必须与添加时完全一致。建议记录所有排除路径,以便后续管理。
3.4.3 file get-exclusions
功能描述:显示当前会话和下次会话的文件排除配置信息。
调用语法:
uwfmgr.exe file get-exclusions <all|volumename>
参数说明:
all:显示所有受保护卷的排除列表。volumename:显示指定卷的排除列表。
功能详解:此命令显示当前配置的所有文件排除项,包括当前会话的生效配置和下次会话的待生效配置。这对于审计和验证排除策略很有帮助。
使用示例:
C:\> uwfmgr.exe file get-exclusions all
此命令显示所有卷的文件排除列表。
C:\> uwfmgr.exe file get-exclusions c:
此命令仅显示 C: 驱动器的文件排除列表。
3.4.4 file commit
功能描述:提交对指定文件的所有更改到受保护卷。
调用语法:
uwfmgr.exe file commit <full_path>
参数说明:
full_path:要提交的文件的完整路径。
功能详解:commit 命令将指定文件在覆盖层中的更改永久写入受保护卷。执行此操作后,更改将在系统重启后保留。此命令仅适用于文件,不适用于目录。如果需要提交整个目录的更改,需要逐个处理目录中的文件。
使用示例:
C:\> uwfmgr.exe file commit c:\Config\settings.ini
此命令提交对 settings.ini 文件的更改。
C:\> uwfmgr.exe file commit "c:\Program Files\App\config.xml"
此命令提交对程序配置文件路径包含空格的文件的更改。
使用场景:在安装软件更新、修改配置文件或保存重要数据后使用。提交后,这些更改将在系统重启后保留。
3.4.5 file commit-delete
功能描述:提交对指定文件的删除操作。
调用语法:
uwfmgr.exe file commit-delete <full_path>
参数说明:
full_path:要删除的文件的完整路径。
功能详解:commit-delete 命令提交对指定文件的删除操作。被删除的文件将从受保护卷中永久移除。此命令仅适用于文件,不适用于目录。删除文件夹需要先确保文件夹为空(自上次重启以来没有新文件写入)。
使用示例:
C:\> uwfmgr.exe file commit-delete c:\Temp\oldfile.log
此命令提交删除 oldfile.log 文件。
目录删除限制:删除目录时,该目录必须为空。如果目录非空,需要先删除或移出目录中的所有文件。可以多次重启系统后重试删除空目录。
3.5 Registry 注册表排除
Registry 模块用于管理注册表项的排除列表和注册表更改的提交。通过排除功能,可以指定某些注册表项不受 UWF 保护,允许对这些注册表的写入永久生效。这对于需要持久化保存的注册表配置(如用户设置、应用程序配置)非常重要。
3.5.1 registry add-exclusion
功能描述:将注册表项添加到排除列表中,排除将在下次系统启动后生效。
调用语法:
uwfmgr.exe registry add-exclusion <key>
参数说明:
key:完全限定的注册表项名称。- 示例:HKLM\Software\Microsoft\Windows\run
- 示例:HKCU\Software\MyApp
功能详解:add-exclusion 命令将指定注册表项添加到排除列表。被排除的注册表项不受 UWF 保护,所有对其的修改将直接写入注册表并在重启后保留。排除的注册表项应在系统卷受保护之前就已存在,否则可能需要特殊处理。
使用示例:
C:\> uwfmgr.exe registry add-exclusion HKLM\Software\Microsoft\Windows\run
此命令排除自动启动程序注册表项。
C:\> uwfmgr.exe registry add-exclusion HKCU\Software\MyApplication
此命令排除当前用户的应用程序设置项。
C:\> uwfmgr.exe registry add-exclusion HKLM\System\CurrentControlSet\Services\MyService
此命令排除服务配置注册表项。
注册表配置单元缩写说明:
- HKLM:HKEY_LOCAL_MACHINE
- HKCU:HKEY_CURRENT_USER
- HKCR:HKEY_CLASSES_ROOT
- HKU:HKEY_USERS
- HKCC:HKEY_CURRENT_CONFIG
3.5.2 registry remove-exclusion
功能描述:从排除列表中移除指定的注册表项。
调用语法:
uwfmgr.exe registry remove-exclusion <key>
参数说明:
key:要移除排除的注册表项路径,必须与添加排除时完全一致。
功能详解:remove-exclusion 命令将指定注册表项从排除列表中移除。移除后,该注册表项将重新受到 UWF 保护。移除排除前对该注册表的更改将丢失。
使用示例:
C:\> uwfmgr.exe registry remove-exclusion HKLM\Software\Microsoft\Windows\run
此命令移除对自动启动程序注册表项的排除。
3.5.3 registry get-exclusions
功能描述:显示当前会话和下次会话的注册表排除配置信息。
调用语法:
uwfmgr.exe registry get-exclusions
参数说明:此命令不接受任何参数。
功能详解:此命令显示所有当前配置的注册表排除项,包括当前生效的排除和待下次会话生效的排除。
使用示例:
C:\> uwfmgr.exe registry get-exclusions
此命令显示所有注册表排除列表。
3.5.4 registry commit
功能描述:提交对指定注册表值的更改。
调用语法:
uwfmgr.exe registry commit <key> <value>
参数说明:
key:完全限定的注册表项路径。value:要提交的值的名称。
功能详解:commit 命令将指定注册表值在覆盖层中的更改永久写入注册表。执行此操作后,更改将在系统重启后保留。这对于保存重要的注册表配置更改很有用。
使用示例:
C:\> uwfmgr.exe registry commit HKLM\Software\Test TestValue
此命令提交对 HKLM\Software\Test 项下 TestValue 值的更改。
C:\> uwfmgr.exe registry commit "HKLM\Software\My App" "Setting1"
此命令提交对包含空格的注册表项下值的更改。
3.5.5 registry commit-delete
功能描述:提交对指定注册表项或值的删除操作。
调用语法:
uwfmgr.exe registry commit-delete <key> <value>
参数说明:
key:要删除的注册表项路径。value:要删除的值的名称(可选,如果省略则删除整个项)。
功能详解:commit-delete 命令提交对注册表项或值的删除操作。执行此操作后,删除将在系统重启后生效。如果只指定值名称,则只删除该值;如果省略值名称,则删除整个注册表项。
使用示例:
C:\> uwfmgr.exe registry commit-delete HKLM\Software\Test TestValue
此命令删除指定注册表值。
C:\> uwfmgr.exe registry commit-delete HKLM\Software\OldApp
此命令删除整个注册表项(不指定值名称)。
3.6 Servicing 服务模式
Servicing 模块用于配置 UWF 的服务模式。服务模式是一种特殊操作模式,允许在启用 UWF 的情况下进行系统更新和维护操作。在此模式下,UWF 不会拦截写入操作,允许更新程序正常修改系统文件。
3.6.1 servicing enable
功能描述:为下次会话启用 UWF 服务模式。
调用语法:
uwfmgr.exe servicing enable
参数说明:此命令不接受任何参数。
功能详解:servicing enable 命令配置系统在下次启动时进入服务模式。服务模式允许系统更新、补丁安装和其他维护操作直接修改受保护卷。启用服务模式后,系统将在重启后进入可更新状态。
使用示例:
C:\> uwfmgr.exe servicing enable
此命令启用服务模式,系统重启后生效。
使用场景:在需要安装 Windows 更新、驱动程序更新或大型软件更新前,应启用服务模式。这允许更新程序正常写入系统文件,更新将在服务模式下完成并在下次正常启动时保留。
3.6.2 servicing disable
功能描述:为下次会话禁用 UWF 服务模式。
调用语法:
uwfmgr.exe servicing disable
参数说明:此命令不接受任何参数。
功能详解:servicing disable 命令禁用服务模式。执行此命令后,系统将在下次启动时恢复正常 UWF 保护模式。在完成所有维护更新后,应禁用服务模式以恢复正常保护。
使用示例:
C:\> uwfmgr.exe servicing disable
此命令禁用服务模式,系统重启后生效。
3.6.3 servicing update-windows
功能描述:在服务模式下更新 Windows 系统。
调用语法:
uwfmgr.exe servicing update-windows
参数说明:此命令不接受任何参数。
功能详解:此命令首先启用服务模式(如果尚未启用),然后执行 Windows 更新。命令执行后系统将重启进入服务模式,安装更新,然后再次重启恢复正常模式。这是一个便捷命令,可以自动完成整个更新流程。
使用示例:
C:\> uwfmgr.exe servicing update-windows
此命令执行 Windows 更新,会自动处理服务模式的启用和禁用。
执行过程:命令执行过程包括:启用服务模式、重启系统、安装更新、重启系统、禁用服务模式。管理员应确保系统在更新过程中不会意外断电。
3.6.4 servicing get-config
功能描述:显示当前会话或下次会话的服务状态。
调用语法:
uwfmgr.exe servicing get-config
参数说明:此命令不接受任何参数。
功能详解:此命令显示服务模式的当前状态,包括当前会话是否在服务模式中,以及下次会话的服务模式配置。
使用示例:
C:\> uwfmgr.exe servicing get-config
此命令显示服务模式配置。
3.7 Get-config 整体配置
Get-config 模块用于显示 UWF 的整体配置信息,提供跨所有模块的配置概览。这对于快速了解系统当前配置状态非常有用。
3.7.1 get-config
功能描述:显示针对当前会话和下次会话的所有配置信息。
调用语法:
uwfmgr.exe get-config
参数说明:此命令不接受任何参数。
功能详解:此命令显示 UWF 的完整配置信息,包括:筛选器状态、覆盖配置、卷保护状态、文件排除列表、注册表排除列表和服务模式状态。输出分为当前会话配置和下次会话配置两部分,便于比较配置变更。
使用示例:
C:\> uwfmgr.exe get-config
此命令显示 UWF 的完整配置信息。
输出内容:输出包括以下主要部分:
- 筛选器状态(启用/禁用、HORM 状态)
- 覆盖配置(类型、大小、阈值、当前使用量)
- 受保护卷列表
- 文件排除列表
- 注册表排除列表
- 服务模式状态
3.8 Help 帮助命令
Help 模块用于显示 UWFMGR 的帮助信息,可以查询工具支持的参数列表,或者查询特定参数支持的命令列表。
3.8.1 help / ?
功能描述:显示有关基本参数的帮助,或者显示特定模块的命令帮助。
调用语法:
uwfmgr.exe help
uwfmgr.exe ?
uwfmgr.exe <parameter> help
参数说明:
parameter:可选。如果指定了参数(如 filter, overlay 等),则显示该参数下的命令列表。
功能详解:这是最基础也是最有用的命令之一。当不记得具体命令语法时,可以随时使用 help 来查看提示。支持在任何层级使用 help。
使用示例:
C:\> uwfmgr.exe help
显示顶层参数列表(filter, overlay, volume 等)。
C:\> uwfmgr.exe filter help
显示 filter 模块下的命令列表(enable, disable 等)。
4. 使用示例
4.1 基本配置流程
以下示例展示首次配置 UWF 的完整流程:
步骤 1:启用 UWF 筛选器
C:\> uwfmgr.exe filter enable
步骤 2:配置覆盖层
C:\> uwfmgr.exe overlay set-type Disk
C:\> uwfmgr.exe overlay set-size 2048
C:\> uwfmgr.exe overlay set-warningthreshold 1536
C:\> uwfmgr.exe overlay set-criticalthreshold 1843
步骤 3:保护系统卷
C:\> uwfmgr.exe volume protect c:
C:\> uwfmgr.exe volume create-swapfile c:
步骤 4:添加必要的文件排除
C:\> uwfmgr.exe file add-exclusion c:\Users
C:\> uwfmgr.exe file add-exclusion c:\Logs
C:\> uwfmgr.exe file add-exclusion c:\ProgramData
步骤 5:添加必要的注册表排除
C:\> uwfmgr.exe registry add-exclusion HKLM\Software\Microsoft\Windows\CurrentVersion\Run
步骤 6:重启系统使配置生效
C:\> shutdown /r /t 0
4.2 启用 HORM 功能
以下示例展示如何启用休眠恢复多次功能:
步骤 1:确保 UWF 已启用
C:\> uwfmgr.exe filter enable
步骤 2:设置覆盖类型为 Disk
C:\> uwfmgr.exe overlay set-type Disk
步骤 3:创建交换文件
C:\> uwfmgr.exe volume create-swapfile c:
步骤 4:启用 HORM
C:\> uwfmgr.exe filter enable-HORM
步骤 5:创建休眠文件并测试
C:\> powercfg /h /size 100
C:\> powercfg /h /on
C:\> shutdown /h
4.3 安装系统更新
以下示例展示如何在启用 UWF 的情况下安装 Windows 更新:
方法一:手动操作
C:\> uwfmgr.exe servicing enable
C:\> shutdown /r /t 0
(系统重启后,安装更新)
C:\> uwfmgr.exe servicing disable
C:\> shutdown /r /t 0
方法二:使用 update-windows 命令
C:\> uwfmgr.exe servicing update-windows
此命令自动处理整个更新流程。
4.4 提交重要更改
以下示例展示如何提交重要的系统更改:
提交文件更改
C:\> uwfmgr.exe file commit c:\Config\application.ini
提交注册表更改
C:\> uwfmgr.exe registry commit HKLM\Software\MyApp Settings
提交所有覆盖层数据
C:\> uwfmgr.exe overlay commit
4.5 临时禁用 UWF 进行软件安装
以下示例展示如何临时禁用 UWF 以安装需要写入系统目录的软件:
步骤 1:禁用 UWF
C:\> uwfmgr.exe filter disable
C:\> shutdown /r /t 0
步骤 2:安装软件
(正常安装软件)
步骤 3:重新启用 UWF
C:\> uwfmgr.exe filter enable
C:\> shutdown /r /t 0
4.6 监控覆盖层状态
以下示例展示如何监控覆盖层使用情况:
C:\> uwfmgr.exe overlay get-config
C:\> uwfmgr.exe overlay get-consumption
C:\> uwfmgr.exe overlay get-availablespace
4.7 查看完整配置
以下命令显示 UWF 的完整配置概览:
C:\> uwfmgr.exe get-config
5. 注意事项
5.1 系统要求
UWF 功能仅在 Windows 10 IoT 企业版、Windows 嵌入式标准 8.1 和 Windows 嵌入式 POSReady 7 等特定版本的 Windows 中可用。家庭版和专业版不支持 UWF 功能。在使用 uwfmgr 工具前,应确认操作系统版本支持 UWF。可以通过运行 winver 命令查看 Windows 版本信息,或检查系统是否包含 UWF 组件。
5.2 配置生效时机
大多数 uwfmgr 命令的配置更改不会立即生效,而是等到下次系统启动后才应用。这是 UWF 设计的核心特性,确保系统状态的确定性。唯一的例外是 HORM 相关命令(enable-HORM、disable-HORM),这些命令在当前会话立即生效。在执行配置更改后,务必通过 get-config 命令确认配置状态,并在完成后重启系统使配置生效。
5.3 覆盖层管理
覆盖层是 UWF 系统的核心组件,其配置直接影响系统稳定性和性能。覆盖层大小应根据实际使用情况合理设置,过小可能导致系统不稳定,过大则浪费系统资源。建议定期监控覆盖层使用量,通过设置合适的警告阈值和临界阈值来预防覆盖层满载的情况。当覆盖层接近满载时,系统可能变得无响应,因此预防性监控非常重要。
5.4 排除策略
文件和注册表排除是 UWF 最重要的功能之一,正确的排除策略可以在保护系统的同时满足持久化存储的需求。建议排除以下内容:用户配置文件和应用程序数据、临时文件和缓存目录、日志文件目录、用户生成的内容目录。但是,不建议排除系统关键文件和程序文件目录,除非有明确的业务需求。每次添加排除前,应评估该排除对系统安全性的影响。
5.5 服务模式使用
服务模式是进行系统更新的关键功能。在服务模式下,UWF 不保护系统卷,允许更新程序正常修改系统文件。但是,服务模式会降低系统保护级别,应在完成后立即禁用。建议在自动更新窗口(如维护窗口)执行更新,并确保更新过程不会被打断。如果更新过程中断,系统可能处于不一致状态。
5.6 数据提交注意事项
提交操作是不可逆的,一旦提交无法撤销。在执行提交操作前,应仔细确认需要提交的数据。对于文件提交,不支持提交目录,如需提交整个目录内容,需要逐个处理文件。对于删除提交,删除操作也将在重启后永久生效。在提交前,建议备份重要数据以防止意外丢失。
5.7 故障排除
如果系统出现异常行为,可以按照以下步骤进行故障排除:首先检查覆盖层使用量,确认是否有足够的空间;然后检查事件日志,查看 UWF 相关的错误和警告信息;使用 get-config 命令验证配置是否正确;如果配置混乱,可以使用 filter reset-settings 重置所有配置,然后重新配置;如需恢复系统到干净状态,可以在禁用 UWF 后使用系统还原或备份恢复。
5.8 性能考虑
UWF 会引入一定的性能开销,特别是在高写入负载的场景下。为了优化性能,可以考虑以下措施:使用 RAM 覆盖类型可以获得最佳性能,但受内存大小限制;对于写入密集型应用,使用排除功能避免保护其数据目录;合理设置覆盖层大小,避免频繁的空间重新分配;定期清理临时文件和日志,减少覆盖层负担;在非关键路径使用排除,减少 UWF 的干预。
5.9 安全性考虑
虽然 UWF 主要用于系统保护,但在某些情况下也可能带来安全风险。启用可用空间直通功能会降低系统保护级别,应谨慎使用。排除的目录和注册表项不受保护,可能成为恶意软件的目标。建议定期审查排除列表,确保没有不必要的排除项。在公共访问的终端上,应严格限制排除策略。
5.10 与其他功能兼容性
UWF 与某些 Windows 功能存在兼容性限制。UWF 与文件历史记录不兼容,因为 UWF 会阻止对受保护卷的永久写入。UWF 与磁盘碎片整理功能不兼容,因为 UWF 会将所有写入重定向到覆盖层。UWF 与系统还原功能不兼容,因为系统还原无法在 UWF 保护下正常工作。在启用 UWF 前,应评估这些功能的兼容性需求。
文档版本:1.0
生成日期:2026年1月13日
适用版本:Windows 10 19044 及更高版本(UWF 工具版本 10.0.26100)
浙公网安备 33010602011771号