SoftwareDistribution: безпечне очищення кешу Windows Update

[IT-FORMAT]
Новий формат бізнесу

Папка SoftwareDistribution росте на 50+ ГБ: як безпечно очистити кеш Windows Update

Категория: Блог Windows Просмотров: 30

Очищення папки SoftwareDistribution

Що таке SoftwareDistribution і навіщо вона потрібна

Папка C:\Windows\SoftwareDistribution — це робочий кеш служби Windows Update (wuauserv). У ній лежать дві ключові речі:

  • Download — завантажені, але ще не встановлені файли оновлень (.cab, .msu, .psf).
  • DataStore — база DataStore.edb з історією встановлених оновлень, їхніми метаданими і станом сканування.

У нормі Windows сама чистить Download після успішної інсталяції оновлення. Але іноді цей механізм ламається, і папка росте кожен день, доки диск не впреться в нуль.

Чому вона розростається

  • Одне з оновлень впало з помилкою, і Windows нескінченно перезавантажує цикл: завантажити → спробувати → зламатися → завантажити знову.
  • DataStore.edb корумпувався — таке буває після жорсткого вимкнення сервера (збій живлення, BSOD).
  • Накопичено Feature Updates (великі оновлення версії Windows), які важать 4–8 ГБ кожне і не завжди видаляються автоматично.
  • Увімкнено Delivery Optimization, який кешує файли для роздачі іншим машинам у мережі.

Коли очищати, а коли ні

Можна і треба

Папка > 10 ГБ і росте, оновлення циклічно падають, диск забитий.

Краще не чіпати

Прямо зараз іде інсталяція оновлення. Почекайте завершення або перезавантажте сервер у робочий час — інакше залишите систему в half-installed стані.

Безпечне очищення — покрокова інструкція

Крок 1. Запустіть PowerShell або cmd від імені адміністратора (Win+X → Windows Terminal (Admin)).

Крок 2. Зупиніть служби, що тримають папку.

net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver

Ці чотири служби відкривають файли у SoftwareDistribution і catroot2. Без зупинки ви отримаєте «Access is denied».

Важливо

Перейменовуйте, а не видаляйте. Видалення — незворотне; перейменування дозволяє повернути назад за секунду: ren SoftwareDistribution.old SoftwareDistribution.

Крок 3. Перейменуйте папку (а не видаляйте).

ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old

Саме перейменування, а не видалення — це важливо. Якщо щось піде не так, ви за секунду повернете старий стан: ren SoftwareDistribution.old SoftwareDistribution. Windows сама створить нові порожні папки при наступному запуску служб.

Крок 4. Запустіть служби назад.

net start cryptsvc
net start bits
net start wuauserv
net start msiserver

Крок 5. Запустіть перевірку оновлень. Settings → Update & Security → Check for updates. Windows перебудує індекс, знову підтягне список оновлень і почне з чистого аркуша.

Крок 6. Через 1–2 дні видаліть старі папки. Якщо оновлення нормально пройшли — SoftwareDistribution.old і catroot2.old можна видалити. Вони більше не потрібні.

Що робити, якщо оновлення все одно падають

Після очищення і перезапуску перевірте Windows Update ще раз. Якщо та сама помилка повторюється — очищення самої папки не допомогло, причина глибша. Дієві дії у порядку зростання «інвазивності»:

  1. Запустіть вбудований Troubleshooter: Settings → Troubleshoot → Windows Update. Іноді реально допомагає, особливо на Windows 11.
  2. Перевірте системні файли:
    sfc /scannow
    DISM /Online /Cleanup-Image /RestoreHealth
    DISM може виконуватись 15–30 хвилин — це нормально, не зупиняйте.
  3. Подивіться журнал Windows Update:
    Get-WindowsUpdateLog
    Команда збирає журнал у %USERPROFILE%\Desktop\WindowsUpdate.log. Шукайте рядки з FATAL і кодом помилки — звідти вже гугліть конкретний KB.
  4. Скиньте компоненти Windows Update повністю (більш агресивний варіант кроків 2–4 разом з очищенням реєстрових ключів BITS).

Як не допустити цього в майбутньому

  • На серверах, де критично місце на C: — налаштуйте моніторинг вільного місця з порогом 20%, щоб проблема ловилась за 2–3 тижні до критичного моменту, а не коли все лягло.
  • Періодично (раз на квартал) запускайте Cleanup-Image:
    DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase
    Це не те саме, що очищення SoftwareDistribution — але воно видаляє старі версії компонентів (WinSxS), які теж накопичуються. Обережно: після ResetBase ви вже не зможете видалити встановлені оновлення.
  • Не вимикайте служби wuauserv «щоб не заважало» — тоді Windows не зможе і прибирати за собою, і ви зберете цей снігок через пів року.

Підсумок

Папка SoftwareDistribution — це кеш, не якесь сакральне сховище. Перейменувати й дозволити Windows створити її наново — стандартний, безпечний і зворотний крок. У 80% випадків після такої процедури і sfc /scannow центр оновлень оживає, а ви повертаєте десятки гігабайт на системному диску.

Якщо оновлення продовжують падати з однією й тією ж помилкою після чистки — значить проблема не в кеші, а у конкретному KB або у DataStore.edb. Тоді дивіться WindowsUpdate.log і йдіть за конкретним кодом помилки. Але це вже тема окремої статті.

дата: 9-04-2026, 19:34
автор: Claudia
  • Коментарі


Привіт, незнайомець
Опитування

Якою програмою обліку ви користуєтесь?