Погляд у Component Store

Одне з сердець системи Windows — це Component Store, тека C:\Windows\WinSxS. Там зібрані приблизно всі важливі системні компоненти, тому тека величенька — в нормі біля 10 GB. Просто подивитися розмір теки в файловому менеджері не дуже інформативно, бо там досить багато хардлінків, тобто один файл може враховуватись кілька разів у різних місцях.
Проблема з Component Store в тому, що кожне оновлення системи додає до WinSxS нові версії, а старі не видаляє. Теоретично, періодичний запуск системного очищення диску (Start menu — Windows Tools — Disk Cleanup) з дозволами адміністратора має підчищати застарілі версії, але реально воно робе не завжди.
Тож з часом C:\Windows\WinSxS розростається до непристойних розмірів, і не тільки витрачає місце на диску, а й починає гальмувати завантаження системи і установку наступних оновлень, чисто за рахунок тривалішого пошуку актуальних компонент.
Моя система існувала з 2016 року, почавшись як Windows 10 і пройдя крізь всі апгрейди і оновлення до останньої версії Windows 11. Я жодного разу не перевстановлював її з нуля, бо це не по пацанськи. Кваліфікований айтішник має знаходити причини проблем і виправляти їх, не скидаючи систему. Тож коли я нещодавно вперше зазирнув у WinSxS, у мене там було 59637 тек. Йой. Команда
DISM /Online /Cleanup-Image /AnalyzeComponentStore
(це правильний спосіб подивитися розмір Component Store; запускати треба з командного рядку з правами адміністратора) показала, що у мене там Actual size of Component Store: 34.75 GB. Backups and Disabled Features: 29.98 GB. Number of Reclaimable Packages: 57. Йой.
Руками лазити до теки WinSxS і відповідної гілки реєстру HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages категорично не варто, надто легко покласти систему. Для очистки є команда
DISM /Online /Cleanup-Image /StartComponentCleanup
(знов-таки, запускати треба з командного рядку з правами адміністратора, і треба буде почекати, доки відпрацює), а ще краще
DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase
(більш агресивно чистить застарілі компоненти і виключає можливість відкату на попередню версію Windows; ну а нам і не треба) — у мене падала з помилкою 1726. За десять років без нагляду там утворились якісь циклічні посилання, які при обробці викликали переповнення стеку. Я так розумію, що колись ця помилка виникла вперше, і з того часу Component Store і припинив сам очищуватись.
Пропущу всі способи, якими я кілька днів намагався обійти проблему, бо всі вони не спрацювали. Останнім радикальним способом ШІ порадив таки перевстановити систему (Windows In-Place Upgrade; системні налаштування — System — Recovery — Fix problems using Windows Update — Reinstall now). Воно фіксить лише системні файли і налаштування; всі ваші програми, файли і налаштування лишаються на місці. May your computer restart a few times.
Тож врешті мій Windows втратив 10-річну цнотливість, але воно було того варте. У WinSxS я тепер маю лише (ну так) 26173 теки. Команда
DISM /Online /Cleanup-Image /AnalyzeComponentStore
тепер показує нормальні Actual Size of Component Store: 7.05 GB. Backups and Disabled Features: 2.53 GB. Number of Reclaimable Packages: 2. Команда
DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase
знов працює. В сумі (після очистки диску від решток попередньої інсталяції) я звільнив на диску 30 GB.