UWF (Unified Write Filter — объединенный фильтр записи) – это специальный фильтр записи файловой системы в Windows 10, который позволяет защитить системные файлы Windows и данные на диске от любых изменений. При включенном UWF фильтре любые операции записи на защищаемый диск или в системный реестр перехватываются драйвером UWF фильтра и помещаются в отдельное виртуально пространство (оверлей). После перезагрузки Windows все изменения на защищаемых дисках не сохраняются, т.е. Windows всегда возвращается к исходному состоянию на момент включения фильтра UWF.
Как работает фильтр UWF? Он защищает файловую систему выбранных разделов локальных дисков от изменений, прозрачно перенаправляя все операции записи на файловую систему в виртуальный оверлей в памяти, который хранит все изменения.
Как включить и настроить Unified Write Filter в Windows 10
Фильтр записи UWF представляет собой отдельный компонент Windows и включается через панель управления: Control Panel -> Programs and Features -> Turn Windows Features On or Off -> Device Lockdown -> Unified Write Filter.
Также можно установить компонент UWF с помощью PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName "Client-UnifiedWriteFilter" –All
Или DISM:
DISM.exe /Online /enable-Feature /FeatureName:client-UnifiedWriteFilter
Для управления настройками UWF используется консольная утилита uwfmgr.exe.
Чтобы включить UWF фильтр в Windows 10, выполните следующую команду и перезагрузите компьютер:
uwfmgr.exe filter enable
При включении фильтра, Windows автоматически перенастраивается так, чтобы исключить лишние операций записи на диск (отключаются файл подкачки, точки восстановления, индексирование файлов, дефрагментация).
Чтобы включить защиту от записи для конкретного диска, выполните команду:
uwfmgr.exe volume protect c:
Теперь нужно перезагрузить компьютер. После его загрузки все, что пользователь запишет на диск за время сессии будет доступно только до момента следующей перезагрузки компьютера. Любые изменения будут сброшены.
Проверить состояние UWF фильтра можно командой:
uwfmgr.exe get-config
В нашем примере видной, что системный диск находится в защищенном состоянии, UWF фильтр включен (Volume state: Protected).
Текущие настройки оверлея, в котором UWF хранит временные данные можно вывести с помощью команды:
uwfmgr overlay get-config
Вы можете настроить следующие параметры:
- Type – тип оверлея. Вы можете хранить данные на диск (DISK) или в оперативной памяти (RAM);
- Maximum size – максимальный размер оверлея;
- Warning Threshold – размер оверлея, при превышении которого нужно вывести предупреждение;
- Critical Threshold – размер оверлея, при превышении которого появится ошибка UWF;
- Freespace Passthrough – используется только для дискового оверлея. Позволяет разрешать писать данные в любое свободное место на диске, а не в выделенный файл.
По умолчанию используется RAM оверлей с размером 1 Гб.
Можно изменить эти настройки (если у вас достаточно свободной RAM):
uwfmgr overlay set-size 8192
uwfmgr overlay set-criticalthreshold 8192
uwfmgr overlay set-warningthreshold 7168
Если нужно использовать оверлей на диске, выполните команду:
uwfmgr overlay set-type Disk
Текущий размер данных в оверлее можно вывести так:
uwfmgr overlay get-consumption
Оставшееся место:
uwfmgr overlay get-availablespace
Обслуживание Windows 10 с включенным фильтром UWF
При выполнении обслуживания системы (установка обновлений, обновление антивирусных сигнатур, копирование новых файлов), нужно перевести компьютер в специальный сервисный режим UWF:
uwfmgr servicing enable
После перезагрузки Windows загрузится под локальной учетной записью UWF-Servicing и автоматически установит доступные обновления Windows (через Windows Update или одобренные обновления WSUS), обновит сигнатуры антивируса. При желании, вы сможете войти на компьютер под учетной записью UWF-Servicing (пароль этого пользователя неизвестен, но можно сменить его).
При автовходе пользователя запускается
uwfservicingshell.exe
и запускает скрипты обслуживания Windows 10. Что-то другое выполнить в сервисном режиме нельзя.
После завершения установки обновлений, компьютер автоматически перезагрузится в нормальном режиме с включенным фильтром UWF.
Вы можете установить обновления Windows и из обычного режима, без перехода в режим Servicing. Воспользуйтесь командой:
uwfmgr servicing update-windows
Unified Write Filter updated Windows result: REBOOT REQUIRED.
Добавление исключений в фильтр записи UWF
Если вам нужно принудительно сохранить на диск некий изменённый файл при включенном фильтре UWF, нужно выполнить команду:
uwfmgr file commit C:\Distr\TestFile.txt
Теперь файл не исчезнет, даже если вы перезагрузите Windows.
Чтобы удалить файл при включенном UWF, используйте команду:
uwfmgr file commit-delete C:\Distr\TestFile.txt
uwfmgr registry commit ...
uwfmgr registry commit-delete ...
Вы можете добавить определенные файлы, каталоги или ветки реестра в исключения фильтра UWF. Любые изменения по таким объектам будут записывать напрямую на диск, а не в оверлей.
Чтобы добавить в исключения конкретный файл или папку, выполните команду:
Uwfmgr.exe file add-exclusion c:\student
Или
Uwfmgr.exe file add-exclusion c:\student\report.docx
Чтобы разрешить запись изменений в ключ реестра:
Uwfmgr.exe registry add-exclusion “HKLM\Software\MyRegKey”
Для применения исключений нужно перезагрузить компьютер.
Чтобы вывести список исключений UWF фильтра, выполните команду:
uwfmgr file get-exclusions
Для удаления файла из исключений, выполните команду:
uwfmgr file remove-exclusion c:\student\report.docx
Некоторые системные каталоги и файлы нельзя добавить в исключения, например:
- Файлы реестра в каталоге \Windows\System32\config\;
- Корень диска;
- Каталоги \Windows, \Windows\System32, \Windows\System32\Drivers;
- Файлы подкачки
- И т.д.
Для корректной работы некоторых служб необходимо добавить в список исключений фильтра записи пути к их каталогам, файлам и веткам реестра. В следующем списке я собрал типовые исключения для некоторых подсистем Windows:
Исключения для BITS:
- % ALLUSERSPROFILE%\Microsoft\Network\Downloader
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\BITS\StateIndex
Исключения для корректной работы в беспроводных сетях (данные исключения позволят подключаться к Wi-Fi сетям и сохранять WLAN профили):
- HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Wireless\GPTWirelessPolicy
- C:\Windows\wlansvc\Policies
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\wlansvc
- C:\ProgramData\Microsoft\wlansvc\Profiles\Interfaces\{<Interface GUID>}\{<Profile GUID>}.xml
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Wlansvc
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WwanSvc
Исключения для корректной работы в проводных сетях:
- HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WiredL2\GP_Policy
- C:\Windows\dot2svc\Policies
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\dot3svc
- C:\ProgramData\Microsoft\dot3svc\Profiles\Interfaces\{<Interface GUID>}\{<Profile GUID>}.xml
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\dot3svc
Исключения для Windows Defender
- 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
Отключение фильтра UWF, сброс настроек
Вы можете сбросить настройки UWF фильтра к начальным (на момент включения фильтра):
uwfmgr filter reset-settings
Чтобы полностью отключить UWF фильтр (после перезагрузки все изменения на диске будут сохраняться):
uwfmgr.exe filter disable
Либо можно отключить защиту фильтра конкретного раздела:
uwfmgr.exe volume unprotect C:
- Отключить запуск UWF фильтра можно в ветке HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\uwfvol, задав значение параметра start равное 4.
- Затем отключите строку uwfvol в ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{71a27cdd-812a-11d0-bec7-08002be2092f}\Lower Filters
Режим Hibernate Once/Resume Many (HORM) в UWF
Начиная с Windows 10 1709 появился еще один режим работы фильтра UWF – Hibernate Once/Resume Many (HORM). Этот режим позволяет быстро получить состояние Windows с запущенными программами. При каждой загрузке компьютера Windows сразу возвращается к этому состоянию.
Ограничения режима HORM:
- Фильтр UWF должен быть включен для всех локальных дисков;
- Исключения фильтра UWF не поддерживаются
- Оверлей работает в режиме RAM (disk-overlay не поддерживается);
- Режим гибернации и быстрого запуска отключен.
Для включения HORM нужно выполнить команду:
uwfmgr filter enable-horm
Unified Write Filter enabled HORM. Please hibernate the system to use HORM functionality. The system must be hibernated at least once after run enable-horm command, or it may bring the system into corrupted state.
Настройте рабочее окружение пользователя (запустите необходимые приложения, откройте файлы и т.д.). Затем переведите компьютер в режим гибернации командой:
shutdown /h
Разбудите компьютер и перезагрузите его. При следующей перезагрузке Windows 10 сразу запустится в состоянии, хранящемся в файле гибернации.
Для отключения HORM выполните команду:
uwfmgr filter disable-horm
Из интересных сценариев, возможность реализации которых предоставляет фильтр UWF:
- Ускорение работы Windows (на диск ничего не пишется, а все операции записи на диск производятся в оперативной памяти, а-ля RAM диск);
- При запуске Windows на твердотельных накопителях (SSD/CompactFlash) можно уменьшить износ ячеек накопителя за счет уменьшения количества операций записи;
- Проведение различных экспериментов, тестирование стороннего ПО и изучение зловредов (для этих целей также можно использовать режим песочницы Windows).