====== Фильтр записи ======
**Информация в данном разделе актуальна для Windows 10: 1809, 21H2.**
Фильтр записи необходимо включать только после активации системы
В [[+tab|автоматизация_win_10_iot_enterprise|нашем наборе скриптов]] есть скрипт для упрощения настройки фильтра записи.
С помощью фильтра записи можно:
* Защитить данные от изменений на накопителе устройства
* Всегда загружать систему из файла гибернации - режим [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/hibernate-once-resume-many-horm-#:~:text=You%20can%20use%20the%20Hibernate,sys).|HORM (Hibernate Once/Resume Many)]]
===== О фильтре записи =====
==== Основные возможности фильтра записи ====
* Защищать данные на томах несъемных носителей
* [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwfexclusions|Исключать из защиты]] конкретные файлы, каталоги, пути реестра
* [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwfoverlay#freespacepassthrough|Основные настройки оверлея]]
* Размер оверлея (по умолчанию 1024 МВ)
* Расположение оверлея – HDD/RAM (по умолчанию RAM)
* RAM – возможен только оверлей с временным хранением данных, который очищается только после перезагрузки системы
* HDD – возможен оверлей с временным хранением данных и постоянный оверлей. Для очистки постоянного оверлея с помощью перезагрузки, необходимо дать оверлею команду на очистку.
* Настройка порогов уведомления заполнения оверлея ([[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwfoverlay#-warnings-and-critical-events|уведомления записываются в журнал]])
* Порог предупреждения (по умолчанию 512 МВ)
* Критический порог (по умолчанию 1024 МВ)
* Принудительное изменение защищенных данных, в реестре или в файловой системе. Принудительное изменение невозможно в режиме HORM.
=== Новые возможности в 21H2 ===
* Режим "Read-Only Media"
* Требуется для включения режима HORM
* Игнорирование исключений
* Возможность сохранить текущие изменения и сохранять последующие изменения до перезагрузки
* Перенос оверлея на другой том
* Автоматическая перезагрузка при заполнении оверлея
==== Особенности работы фильтра записи ====
* Включать фильтр записи необходимо непосредственно на конечном устройстве после активации системы.
* При включении фильтра записи изменяются некоторые настройки системы, но при выключении фильтра записи измененные настройки не возвращаются в исходное состояние. Изменяемые настройки можно [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwf-turnonuwf|посмотреть здесь]]
* Оверлей заполняется при записи на защищенный том, в том числе и при записи в места исключения
* [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwfoverlay#overlay-exhaustion|При полном заполнении оверлея система перестанет нормально работать]]
* Для очистки оверлея требуется перезагрузка системы
* При [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwfoverlay|расположении оверлея на диске]] по умолчанию включена возможность сквозной записи, т.е. записываемые данные будут располагаться не в оверлее, а на всем свободном месте жесткого диска. При этом в оверлей будут записываться технологическая информация системы. Чтобы данные записывались только в оверлей необходимо отключить сквозную запись, параметр - «[[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwfoverlay#-freespace-passthrough-recommended|Freespace passthrough]]».
* Некоторые настройки фильтра записи вступают в силу после перезагрузки системы с включенным фильтром записи. Для таких настроек отображаются параметры для текущего и следующего сеанса.
* Фильтр записи делает записи в журнал о достижении уровня предупреждения и критического уровня
Запись о событиях производится в журнал системы «Журналы Windows > Система»
^ Overlay usage ^ Source ^ Level ^ Event ID ^
| Warning threshold | uwfvol | Warning | 1 |
| Critical threshold | uwfvol | Error | 2 |
| Back to normal | uwfvol | Information | 3 |
Для автоматической перезагрузки системы при достижении критического порога можно создать задачу. Для создания задачи [[+tab|powershell|выполните]] нижеуказанную команду в среде с повышенными привилегиями.
Начиная с Windows 21H2 данная задача не нужна т.к. при заполнении оверлея система будет перезагружена автоматически
Schtasks /Create /F /RU SYSTEM /TN ClearOverlay /TR "Shutdown -r -f -t 00" /SC ONEVENT /EC SYSTEM /MO "*[System[Provider[@Name='uwfvol'] and EventID=2]]"
Для автоматического включения фильтра записи после активации системы можно создать задачу
$local:Trigger = New-ScheduledTaskTrigger -AtLogon
$local:Settings = New-ScheduledTaskSettingsSet -DontStopIfGoingOnBatteries -AllowStartIfOnBatteries -ExecutionTimeLimit 0
$local:Action = New-ScheduledTaskAction -Execute 'powershell' -Argument '-command "Do {Start-Sleep 1; $LicenseStatus = (Get-WmiObject SoftwareLicensingProduct | Where {($_.ApplicationID -eq ''55c92734-d682-4d71-983e-d6ec3f16059f'') -and ($_.PartialProductKey -ne $null)}).LicenseStatus} Until ($LicenseStatus -eq 1); uwfmgr filter enable | Out-Null; Schtasks /Delete /F /TN UWFEnableOnSystemActivate | Out-Null; Restart-Computer -Force"'
Register-ScheduledTask -TaskName 'UWFEnableOnSystemActivate' -Trigger $Trigger -User 'SYSTEM' -Action $Action -Settings $Settings -RunLevel 'Highest' –Force
При создании задач учтите, что задачи в планировщике задач не работают в режиме аудита.
===== Как включить фильтр записи =====
Для [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwf-turnonuwf#turn-on-uwf-on-a-running-pc|включения фильтра записи]] необходимо [[+tab|добавление_компонентов_win_10_iot_enterprise|добавить компонент]] фильтра записи в систему. Добавить компонент можно с помощью выполнения нижеуказанной команды, [[+tab|powershell|выполненной в среде]] с повышенными привилегиями.
DISM /online /Enable-Feature /all /FeatureName:Client-UnifiedWriteFilter
После добавления компонента необходимо воспользоваться командами фильтра записи, которые можно посмотреть [[+tab|powershell|выполнив]] команду в среде с повышенными привилегиями uwfmgr /?
Чтобы фильтр записи начал защищать том необходимо:
Указать защищаемый том, например
uwfmgr volume protect c:
И включить фильтр записи
uwfmgr filter enable
Фильтр записи будет включен после перезагрузки
===== Сведения о настройках фильтра записи в реестре =====
Информация в данном подразделе актуальна для Windows 10: 1809.\\
Настройки параметров фильтра записи можно найти в реестре "HKLM\SYSTEM\CurrentControlSet\Services\uwfvol\Parameters". Ниже указаны подразделы вышеуказанного раздела:
* "Dynamic" - настройки, которые применяются сразу после их изменения
* "Static" - настройки, для применения которых требуется перезагрузка
* "Copy (с указанием номера)" - настройки текущей и следующей сессии
В каком из номеров раздела "Copy" находятся настройки для текущего сеанса, а в каком для следующего зависит от значений параметров "CurrentSettings" и "UpdatedSettings", которые находятся в разделе "Static". Т.е. если у параметра "CurrentSettings" значение "0", то настройки текущей сессии будут в разделе "Copy0", а если у параметра "CurrentSettings2 значение "1", то настройки текущей сессии будут в разделе "Copy1".
===== Работа с фильтром записи через WMI =====
Описание настроек фильтра записи с помощью WMI можно найти [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwf-wmi-provider-reference|здесь]]
===== Особенность работы сервисного режима (установка обновлений) =====
Для перевода фильтра записи в сервисный режим необходимо выполнить команду «uwfmgr servicing enable». После успешного выполнения команды необходимо перезагрузить систему, после перезагрузки появится учетная запись «UWF-Servicing». Дождитесь автоматической установки обновлений и перезагрузки системы.
===== Режим HORM =====
Перед включением режима HORM необходимо отключить все возможности перехода системы в режим гибернации и оставить возможность перехода только по консольной команде. Это нужно сделать для сохранения файла гибернации в неизменном виде, при следующем введении системы в гибернацию файл гибернации будет перезаписан.\\
Чтобы включить режим HORM необходимо соблюсти [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/hibernate-once-resume-many-horm-#uwf-configuration|следующие требования]]:
- Все тома несъемных носителей должны быть защищены
- Не должно быть никаких исключений в реестре и файловой системе
- Оверлей должен быть в оперативной памяти.
Т.к. режим HORM подразумевает возврат из состояния гибернации при каждой загрузке, то при стандартных настройках системы, система будет запрашивать пароль для входа в учетную запись. Для отключения требования ввода учетных данных необходимо [[+tab|настройка_питания_win_10_iot_enterprise#отключение_запроса_пароля|отключить запрос пароля]] при выходе из спящего режима или [[+tab|altctrldel_win_10_iot_enterprise#запретить_блокировку_компьютера|отключить блокировку системы]].\\
Включить режим HORM можно только при работающем фильтре записи, для включения HORM'а необходимо [[+tab|powershell|выполнить]] команду
uwfmgr filter enable-HORM
После включения режима HORM приведите систему в то состояние, в котором она должна загружаться все время и переведите систему в режим гибернации.\\
\\
Чтобы система ушла в режим гибернации без открытого консольного окна, где была выполнена команда перехода в режим гибернации, создайте задачу для перехода в режим гибернации через определенное время
Do {Try {[int]$local:Minute = Read-Host -Prompt 'Через сколько минут перевести систему в гибернацию?'} Catch {continue}} While ($Minute -isnot [int])
Schtasks /Create /F /RU System /TN Hibernate /TR "Shutdown /h" /SC ONCE /SD ((Get-Date).ToString('dd/MM/yyyy') -replace '\.', '/') /ST (Get-Date).AddMinutes($Minute).ToString('HH:mm') /RL HIGHEST
При создании задач учтите, что задачи в планировщике задач не работают в режиме аудита.
===== Read Only Media mode =====
**Только начиная с Windows10 21H2**
Данный режим можно включить только если оверлей находится в оперативной памяти.\\
После включения данного режима все исключения будут игнорироваться, что упрощает перевод системы в режим HORM.\\
Если данный режим включен, то с помощью команды "commit" можно записать на защищенные тома все накопленные изменения с момента загрузки.\\
Подробнее в [[+tab|https://learn.microsoft.com/en-us/windows-hardware/customize/enterprise/uwf-wes7-ewf-to-win10-uwf#read-only-media-mode|официальной документации]]
===== Особенности работы =====
* Windows 10 1507 – HORM не поддерживается
* Windows 10 1607 – поддержка HORM заявлена, но фактически не работает
* Windows 10 1703 – HORM работает только в режиме загрузки "Legacy"
* В Windows 10 начиная с версии 1709 HORM поддерживает UEFI режим, см. раздел [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/hibernate-once-resume-many-horm-|"Note"]]. Для работы в UEFI режиме необходимо установить обновление [[+tab|https://www.catalog.update.microsoft.com/Search.aspx?q=KB4501835|KB4501835]]
* Начиная с версии 21H2 для включения режима HORM требуется режим оверлея "Read-Only Media"
===== Официальная документация =====
* [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/unified-write-filter|Unified Write Filter (UWF) feature]]
* [[+tab|https://support.microsoft.com/ru-ru/help/4501835/windows-10-update-kb4501835|KB4501835 за 1 мая 2019 г. (сборка ОС 17763.439)]]
* [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwf-wmi-provider-reference|Unified Write Filter WMI provider reference]]
* [[+tab|https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/hibernate-once-resume-many-horm-|Hibernate Once/Resume Many (HORM)]]
* [[+tab|https://learn.microsoft.com/en-us/windows-hardware/customize/enterprise/uwf-wes7-ewf-to-win10-uwf|Windows Embedded 7 EWF to Windows 10 UWF]]
* [[+tab|https://learn.microsoft.com/en-us/windows-hardware/customize/enterprise/uwfoverlay|Unified Write Filter (UWF) overlay location and size]]