Фільтр записи Unified Write Filter (UWF) в Windows 10

Однією з корисних можливостей Windows 10 (і Windows 8) є наявність спеціального фільтру записи файлової системи - UWF (Unified Write Filter). При включеному і налаштованому фільтрі всі зміни з файлами і каталогами на дисках виробляються в оперативній пам'яті і скидаються при перезавантаженні комп'ютера.

Як працює фільтр UWF? Він захищає файлову систему обраних розділів локальних дисків від змін, прозоро перенаправляючи всі операції запису на файлову систему в віртуальний оверлей в пам'яті, в якому накопичуються всі файлові зміни.

Після перезавантаження системи, всі зміни на захищаються дисках не зберігаються, тобто система завжди повертається до вихідного стану на момент включення фільтра UWF.

Примітка. У попередніх версіях Windows фільтри записи були доступні тільки в редакціях для вбудованих систем (Embedded), Яка використовувалася в банкоматах, POS-системах, терміналах самообслуговування, промислових системах і т.д. Тепер цей функціонал доступний в редакціях Windows 10 Enterprise (В тому числі LTSB) і Windows 10 Education, відкриваючи додаткові сценарії використання Windows на підприємствах і в навчальних закладах (інформаційні кіоски, класи навчання, демонстраційні стенди і т.д.).

Фільтр записи UWF є окремий компонент системи і включається через панель управління: 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

Після того, як компонент встановленні, управляти параметрами фільтра можна за допомогою утиліти uwfmgr.exe.

Щоб включити UWF фільтр, виконайте наступну команду і перезавантажте комп'ютер:

uwfmgr.exe filter enable

При включенні фільтра, він автоматично переналаштовує систему для виключення зайвих операцій запису на диск (відключаються файл підкачки, точки відновлення, індексування файлів, дефрагментації).

Щоб включити захист від запису для конкретного диска системи, виконайте команду:

uwfmgr.exe volume protect c:

Тепер потрібно перезавантажити комп'ютер. Після його завантаження все, що користувач запише на диск за час сесії буде доступно йому тільки до моменту перезавантаження комп'ютера.

Перевірити стан UWF фільтра можна командою:

uwfmgr.exe get-config

У нашому прикладі видною, що системний диск знаходиться в захищеному стані (Volume state: Protected).

Певні файли, каталоги або гілки реєстру можна додати до списку дозволених фільтра UWF. Зміни, що вносяться до ці об'єкти будуть писатися безпосередньо на диск, а не в оверлей. Деякі каталоги і файли можна додати в виключення, наприклад:

  • Файли реєстру в каталозі \ Windows \ System32 \ config \
  • корінь дисків
  • Каталоги \ Windows \ Windows \ System32, \ Windows \ System32 \ Drivers
  • І т.д.

Щоб додати в виключення конкретний файл або папку, виконайте команду:

Uwfmgr.exe file add-exclusion c: \ student

або

Uwfmgr.exe file add-exclusion c: \ student \ report.docx

Щоб дозволити запис змін в ключ реєстру:

Uwfmgr.exe registry add-exclusion "HKLM \ Software \ MyRegKey"

Для застосування винятків потрібно перезавантажити комп'ютер.

При виконанні обслуговування системи (установки оновлень, оновлення антивіруса, копіювання нових файлів), необхідно перевести комп'ютер в спеціальний сервісний режим:

Uwfmgr.exe servicing enable

Комп'ютер завантажиться з локальної обліковим записом UWF-Servicing і можна встановити необхідні оновлення. Після цього комп'ютер автоматично перезавантажиться в нормальному режимі з включеним фільтром UWF.

Перехід системи в режим обслуговування можна автоматизувати за допомогою планувальника завдань.

Примітка. Фільтр UWF не можна використовувати для захисту даних на флешках і зовнішніх USB пристроях. Швидше за все на програмному рівні заборонено включення захисту від запису для дисків типу Removable. Втім, це обмеження можна обійти за допомогою такого трюку.

Для коректної роботи деяких служб необхідно додати шляху до їх каталогами, файлів і гілках реєстру в список виключень фільтра. У наступному списку я зібрав типові виключення для деяких підсистем:

винятки для BITS:

  • % ALLUSERSPROFILE% \ Microsoft \ Network \ Downloader
  • HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ BITS \ StateIndex

Винятки для коректної роботи в бездротових мережах:

  • 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 \ \ . 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 \ \ . 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 фільтр (після перезавантаження все зміни на диску будуть зберігається постійно)

uwfmgr.exe filter disable

Або можна відключити захист фільтром конкретного розділу:

uwfmgr.exe volume unprotect C:

важливо. У тому випадку, якщо через некорінної роботи фільтра, система не завантажується, відключити фільтр можна, завантажившись з завантажувального диска і відредагувати реєстр в офлайн режимі:

  • Відключити запуск фільтра можна в гілці HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ uwfvol, задавши значення параметра start на 4.
  • видалити рядок uwfvol в ключі HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ Class \ 71a27cdd-812a-11d0-bec7-08002be2092f \ Lower Filters

З цікавих сценаріїв, можливість реалізації яких надає фільтр UWF:

  1. Прискорення роботи Windows (на диск нічого не пишеться, а всі операції запису на диск виробляються в оперативній пам'яті)
  2. При запуску Windows на носіях SSD / CompactFlash можна отримати істотне зменшення зносу накопичувачів за рахунок скорочення операцій записи
  3. Проведення різних експериментів, тестування стороннього ПО і вивчення зловредів