====== Фильтр записи ====== **Информация в данном разделе актуальна для 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]]