Что такое winsxs в виндовс 7: Как грамотно уменьшить размер папки WinSxS в Windows 7 SP1 – Вадим Стеркин

Уменьшение размера папки Winsxs в Windows 7 или как пользоваться WinsxsLite.bat

Уменьшение размера папки Winsxs в Windows 7 или как пользоваться WinsxsLite.bat

By: Dmitry Bobrovsky Date: 13.09.2011 Categories: !RUS,WINDOWS

Внимание!!! (предупреждения)

1) Описываемая процедура очень опасна для ОС, поэтому перед её применением необходимо сделать снимок диска или партиции с помощью Acronis True Image или подобной программы.

2) Процедура выполняется длительное время (часы) — поэтому планируй время.

3) Процедура не может обрабатывать файлы заблокированные какими-нибудь процессами. Более того, если процедура не сможет нормально обработать заблокированные файлы, резко возрастает риск что  потом что-то не заработает или система будет испорчена. Поэтому на время выполнения процедуры, необходимо закрыть все выполняющиеся приложения и остановить все возможные службы. Но еще лучше выполнять процедуру в save mode, т.к. в этом случае гораздо меньше файлов заблокировано системой.

———————————————————————————————————————-

 

Ну вот опять столкнулся с нехваткой места на диск C: на домашнем компе.

Анализ с помощью программы FolderSizes показал, что больше всего места на диск занимает папка C:Windows, а в ней папка winsxs.

Начал изучать проблему с чтения статей. Вот, например, от одного из разработчиков Windows

What is the WINSXS directory in Windows 2008 and Windows Vista and why is it so large?

Наткнулся на очень интересную статью (правда она для Vista, у меня 7)

Уменьшение размеров папки winsxs
©Bobrovsky Dmitry
Кстати, есть и официальная статья Microsoft по этой проблеме — How to Alleviate Disk Space Pressure Caused By a Large Windows Component Store (WinSxS) Directory — но рекомендации которые там даются стандартные и навряд ли помогут освободить место.
©Bobrovsky Dmitry
Оказывается, что папка winsxs – это основное хранилище системных файлов, на которое делаются hard-линки. Механизм работы с этим хранилищем далек от идеала (IMHO). Но некий парень Christian Bering Boegh написал WinsxsLite.bat, который перенаправляет ссылки на самую последнюю версию файла, а все остальные версии удаляет, еще перенаправляются и удаляются файлы ненужных языков.

Батник кстати крут, этот Кристиан просто монстр в написании батников, такое сотворить не каждый сможет…

В Help.htm у него написано что батник делает необратимые изменения, т.е. если что пойдет не так ,то система будет испорчена и понятное дело лучше предварительно снять образ диска.

Итак, утилиты vsp1cln.exe и compcln.exe я не делаю, т.к. у меня Windows 7, а они вроде как предназначены для Windows Vista.

Т.к. я скачал батник с набором всех необходимых утилит и Config.txt уже был вроде как правильно настроен, то осталось просто запустить батник. Если Config.txt нет, можно просто запустить батник и выбрать [q], Config.txt будет сформирован.

Я решил делать по алгоритму

Phase 1 scan
Phase 1 apply
Reboot
Phase 2 scan
Phase 2 apply
Reboot

Для начала определю размер папки winsxs (через проводник) – это для контроля.

Размер: 4,16 Гб
Размер на диске: 4,22 Гб
Файлов: 29752
Папок: 7037

Вообще автор батника утверждает что размер папки winsxs в проводнике считается неправильно. Поэтому будут в ходе эксперимента определять размер с помощью его батника (меню [w]).

———————————————————————————————————————

1) Скачиваю WinsxsLite.bat. (Если там уже нет можно поискать по WinsxsLite.bat).
Dmitry Bobrovsky
2) (Рисунок 1). Запускаю батник WinsxsLite.bat. При запуске ищутся файлы мультимедийные файлы примеров и формируется батник для их удаления DelWinsxsSampleMedia. bat (выполняю его — это освобождает 30Мб для меня). После этого смотрю размер папки winsxs — [w]. (Определение размера так же может быть длительным, на моем стареньком ноутбуке, примерно минут 15 шло).
Dmitry Bobrovsky

Рисунок 1.

3) (Рисунок 2). Далее выбираю [1] и [s] (scan), идет долгое сканирование (у меня порядка 1 часа). В результате формируется файл ToDo1.txt с результатами сканирования. После этого еще раз выбираю [1], но теперь меню становиться разнообразнее и я выбираю [a] (applay). Опять идет процесс (здесь уже быстрее минут 15-20).

Рисунок 2.

4) (Рисунок 3). После выполнения первой фазы — 18 pending hardlink. Делая первый раз, выполнил здесь [A]uto start, который нихрена не отработал на Windows 7. Делая второй раз выполнил Re[s]hchedule activation  — ЭТО РАБОТАЕТ, т. е. все линки были отработаны.

Рисунок 3.

5) (Рисунок 4). Проверяю размер. Я так понимаю что нужно ориентироваться на free space. Было 15064 Мб стало 15829 Мб = 765 Мб освободилось.

Рисунок 4.

6) Перезагрузка. Думаю что в ней нет необходимости, но на всякий случай…

7) (Рисунок 5). Запускаю батник WinsxsLite.bat и выбираю [2] и [s]. Идет процесс сканирования (гораздо быстрее чем в первой фазе, минут 10-15). Во время сканирования формируется файл ToDo2.txt. После сканирования  выбираю [2] и [a]. Идет процесс применения. На рисунке 5 видно что батник ругнулся что у меня ToDo2.txt устарел. Именно поэтому в документации говориться что лучше сканирование и применение делать в одно время иначе, если сделать скан, а потом через несколько дней применить результаты ToDo*. txt, его содержимое может стать неактуальным и система может быть испорчена.

Рисунок 5.

8) Перезагрузка.

9) Запускаю WinsxsLite.bat. Программа мне говорит что ОС не была перезагружена и требуется перезагрузка (с чего-бы это?). Ну да ладно перезагружаюсь еще раз.

10) Запускаю WinsxsLite.bat. Программа говорит что нужно обработать pending hardlink и предлагает сделать либо Auto start либо Exit. Делаю [A]uto start. Перезагружаюсь.

11) Запускаю WinsxsLite.bat. Срабатывает автостарт, чего-то делает.

Всё наконец-то всё завершено.

Смотрю размеры (Рисунок 6). 16278-15064= 1214 Мб. Ого целый гигабайт освободился.

Рисунок 6.

——————————————————————————————-

Можно еще сделать [R]elocate folders – позволяет переместить системные папки на другой диск. Полагаю этот пункт стоит использовать только в случае крайней нужды. Я его не делал.

И кстати по проводнику получается что места освободилось совсем мало и почему-то разница в 12 файлов… (Проводник реально неправильно показывает размер папки winsxs).

Размер: 4,14 Гб
Размер на диске: 4,20 Гб
Файлов: 29740
Папок: 7037

Впечатление о батнике в общем положительное, кроме немного запутанного интерфейса и самого процесса и еще очень долго конечно. Вот если переписать всё это под C# с многопоточностью, думаю стало бы работать быстрее.

Запись Уменьшение размера папки Winsxs в Windows 7 или как пользоваться WinsxsLite.bat впервые появилась Dmitry Bobrovsky Blog



Грамотна очищення папки «WinSxS» в Windows 7

Однією з найбільш масивних папок в Windows 7, яка займає значний простір на диску С, є системний каталог «WinSxS». Крім того, у нього є тенденція до постійного зростання. Тому у багатьох користувачів існує спокуса почистити цю директорію, щоб звільнити місце на вінчестері. Давайте розберемося, які дані зберігаються в «WinSxS» і чи можна чистити цю папку без негативних наслідків для системи.

Читайте також: Очищення каталогу «Windows» від сміття в Віндовс 7

зміст

  • Методи чистки «WinSxS»
    • Встановлення оновлення KB2852386
    • Спосіб 1: «Командний рядок»
    • Спосіб 2: Графічний інтерфейс Windows
    • Спосіб 3: Автоматичне чищення «WinSxS»
  • Питання та відповіді

«WinSxS» — це системний каталог, вміст якого в Віндовс 7 розміщено за наступним шляхом:

C:WindowsWinSxS

У названому каталозі зберігаються версії всіх оновлень різних компонентів Віндовс, причому ці апдейти постійно накопичуються, що і веде до регулярного збільшення його розміру. При різних збоях в роботі системи за допомогою вмісту «WinSxS» виробляються відкати до стабільного стану ОС. Тому видаляти або повністю очищати цю директорію категорично не можна, так як при найменшому збої ви ризикуєте в підсумку отримати мертву систему. Але можна почистити в зазначеному каталозі деякі компоненти, хоча і це Microsoft рекомендує робити тільки в крайньому випадку, якщо вам критично не вистачає місця на диску. Тому радимо перед виконанням будь-яких процедур, які будуть описані нижче, зробити резервну копію ОС і зберегти її на окремому носії.

Встановлення оновлення KB2852386

Потрібно відзначити, що на відміну від операційної системи Windows 8 і пізніших ОС, у «сімки» з самого початку не було вбудованого інструменту для очищення папки «WinSxS», а застосовувати ручне видалення, як говорилося вже вище, неприпустимо. Але, на щастя, пізніше було випущено оновлення KB2852386, яке містить в собі патч для утиліти Cleanmgr і допомагає вирішити зазначену проблему. Тому перш за все потрібно впевнитися, що це оновлення встановлено на вашому ПК або інсталювати його в разі відсутності.

  1. Клацайте «Пуск». Заходьте в «Панель управління».
  2. Тисніть «Система і безпека».
  3. Переходьте в «Центр оновлень Windows».
  4. У нижній лівій частині з’явився віконця тисніть по напису «Встановлені оновлення».
  5. Відкривається вікно з переліком встановлених на комп’ютері оновлень. Нам необхідно знайти оновлення KB2852386 в розділі «Microsoft Windows» даного списку.
  6. Але проблема полягає в тому, що елементів переліку може бути дуже багато, а тому ви ризикуєте витратити чимало часу на пошук. Щоб полегшити завдання, встановіть курсор в поле пошуку, розташоване праворуч від адресного рядка поточного вікна. Вбийте туди такий вираз:

    KB2852386

    Після цього в списку повинен залишитися тільки елемент із зазначеним вище кодом. Якщо ви його бачите, то все в порядку, потрібний апдейт встановлений і ви можете відразу переходити до способів очищення папки «WinSxS».

    Якщо ж елемент не відобразився в поточному вікні, то це означає, що для досягнення поставлених в даній статті цілей вам слід виконати процедуру оновлення.

  7. Поверніться в «Центр оновлення». Швидко це можна зробити, якщо ви діяли точно за описаним вище алгоритмом, натиснувши стрілку, спрямовану вліво в верхній частині поточного вікна зліва від адресного рядка.
  8. Для того щоб упевнитися, що необхідний апдейт ваш комп’ютер побачить, клацніть по напису «Пошук оновлень» в лівій частині вікна. Особливо це важливо, якщо у вас не включені автообновления.
  9. Система виконає пошук невстановлених на ваш ПК апдейтів.
  10. Після завершення процедури клацніть по напису «Важливих оновлень доступно».
  11. Відкриється список важливих апдейтів, які не встановлені на вашому ПК. Ви можете вибрати, які з них встановлювати, поставивши зліва від найменувань позначки в чекбокси. Поставте прапорець навпроти назви «Оновлення для Windows 7 (KB2852386)». Далі тисніть «OK».
  12. Повернувшись у вікно «Центру оновлень», тисніть «Встановити оновлення».
  13. Запускається процес інсталяції обраних апдейтів.
  14. Після його закінчення зробите перезавантаження ПК. Тепер у вас буде в наявності необхідний інструмент для очищення каталогу «WinSxS».

Далі ми розглянемо різні способи очищення каталогу «WinSxS» за допомогою утиліти Cleanmgr.

урок: Установка оновлень Віндовс 7 вручну

Спосіб 1: «Командний рядок»

Потрібну нам процедуру можна виконати за допомогою «Командного рядка», через яку здійснюється запуск утиліти Cleanmgr.

  1. Клацайте «Пуск». Тисніть «Усі програми».
  2. Заходьте в папку «Стандартні».
  3. У переліку знайдіть «Командний рядок». Тисніть по найменуванню правою кнопкою мишки (ПКМ). Вибирайте варіант «Запуск від імені адміністратора».
  4. Проводиться активування «Командного рядка». Вбийте наступну команду:

    Cleanmgr

    Тисніть Enter.

  5. Відкривається віконце, де пропонується вибрати диск, у якому буде виконуватися чистка. За замовчуванням повинен стояти розділ C. Його і залишайте, якщо ваша операційна система має стандартне розташування. Якщо ж вона, з якої-небудь причини, встановлена ​​на іншому диску, то виберіть його. Тисніть «OK».
  6. Після цього утиліта проводить оцінку обсягу місця, яке вона зможе очистити при проведенні відповідної операції. Це може зайняти певний час, так що наберіться терпіння.
  7. Відкриється перелік об’єктів системи, які підлягають очистці. Серед них обов’язково знайдіть позицію «Очищення оновлень Windows» (або «Файли резервної копії пакета оновлень») і поставте біля нього позначку. Саме дана позиція відповідає за очищення папки «WinSxS». Навпаки інших пунктів розставляйте прапорці на свій розсуд. Можете всі інші позначки зняти, якщо не бажаєте більше нічого чистити, або зазначити ті компоненти, де також хочете провести видалення «сміття». Після цього тисніть «OK».

    Увага! У вікні «Очищення диска» пункт «Очищення оновлень Windows» може бути відсутнім. Це означає те, що в каталозі «WinSxS» немає елементів, які можна було б видалити без негативних наслідків для системи.

  8. Відкриється діалогове вікно, де буде поставлено питання, чи дійсно хочете ви очистити вибрані компоненти. Погоджуйтеся, натиснувши «Видалити файли».
  9. Далі утиліта Cleanmgr виконає очищення папки «WinSxS» від непотрібних файлів і після цього автоматично закриється.

урок: Активація «Командного рядка» в Віндовс 7

Спосіб 2: Графічний інтерфейс Windows

Не кожному користувачеві зручно запускати утиліти через «Командний рядок». Більшість користувачів вважає за краще це робити за допомогою графічного інтерфейсу ОС. Це цілком реально і щодо інструменту Cleanmgr. Даний спосіб, звичайно, більш зрозумілий для простого користувача, але, як ви побачите, займе більше за тривалістю час.

  1. Клацайте «Пуск» і переходите по напису «Комп’ютер».
  2. У віконці «Провідника» в переліку жорстких накопичувачів знайдете найменування того розділу, де встановлена поточна ОС Віндовс. У переважній більшості випадків це диск C. Клацніть по ньому ПКМ. Вибирайте «Властивості».
  3. У віконці, що з’явилося натисніть «Очищення диска».
  4. Буде запущена точно така ж процедура оцінки очищаемого простору, яку ми бачили при використанні попереднього способу.
  5. У віконці не звертайте уваги на перелік підлягають очищенню елементів, а тисніть «Очистити системні файли».
  6. Буде виконана повторна оцінка вивільняється місця на накопичувачі, але вже з урахуванням системних елементів.
  7. Після цього буде відкрито точно таке ж вікно «Очищення диска», яке ми спостерігали в Способі 1. Далі потрібно зробити все ті дії, які були описані в ньому, починаючи з пункту 7.

Спосіб 3: Автоматичне чищення «WinSxS»

У Віндовс 8 існує можливість настройки розкладу очищення папки «WinSxS» через «Планувальник завдань». У Windows 7 така можливість, на жаль, відсутня. Проте можна все-таки запланувати періодичну очистку через все ту ж «Командний рядок», хоча і без гнучкого налаштування розкладу.

  1. Активуйте «Командний рядок» з адміністративними правами тим же методом, який був описаний в Способі 1 цієї настанови. Введіть такий вираз:

    :: параметры очистки каталога winsxs
    REG ADD "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerVolumeCachesUpdate Cleanup" /v StateFlags0088 /t REG_DWORD /d 2 /f
    :: параметры очистки временных объектов
    REG ADD "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerVolumeCachesTemporary Files" /v StateFlags0088 /t REG_DWORD /d 2 /f
    :: генерация запланированной задачи "CleanupWinSxS"
    schtasks /Create /TN CleanupWinSxS /RL Highest /SC monthly /TR "cleanmgr /sagerun:88"

    Клацайте Enter.

  2. Тепер ви запланували процедуру щомісячної очищення папки «WinSxS» за допомогою утиліти Cleanmgr. Завдання буде виконуватися автоматично 1 раз на місяць 1-го числа без безпосередньої участі користувача.

Як бачимо, в Віндовс 7 можна очистити папку «WinSxS» як через «Командний рядок», так і через графічний інтерфейс ОС. Також можна шляхом введення команд провести планування періодичного запуску даної процедури. Але у всіх перерахованих вище випадках операція буде виконуватися за допомогою утиліти Cleanmgr, спеціальний апдейт до якої в разі його відсутності на ПК, потрібно встановити через стандартний алгоритм поновлення Windows. Дуже важливо запам’ятати будь-якому користувачеві: виробляти чистку папки «WinSxS» вручну шляхом видалення файлів або за допомогою сторонніх програм категорично забороняється.

Уменьшите размер WinSXS в Windows 7 с пакетом обновления 1 (SP1)

Несколько месяцев назад Microsoft перенесла функцию очистки DISM из Windows 8 и 8. 1 в Windows 7 с пакетом обновления 1 (SP1) с помощью диспетчера очистки диска.

Я ответил членам списка рассылки patchmanagement.org, что есть также способ автоматизировать это по следующей ссылке:
http://blogs.technet.com/b/askpfeplat/archive/2013/10/07 /breaking-news-reduce-the-size-of-the-winsxs-directory-and-free-up-disk-space-with-a-new-update-for-windows-7-sp1-clients.aspx

Если вам интересно, сколько свободного места вы можете получить, вот снимок моей домашней коробки W7:

Здорово, не правда ли 😀

Сначала я следил за приведенной выше статьей о technet и использовал procmon, чтобы посмотреть, что произойдет, когда я настрою set

Затем я написал несколько вспомогательных функций, чтобы помочь администраторам автоматизировать настройку в своей корпоративной среде.

#Требуется - Версия 3.0
Функция Get-DiskCleanupSet {
[Привязка командлета()]
Парам(
    [Параметр (обязательный)]
    [Проверить диапазон (0,9999)]
    [int32]$SetNumber = 9999
)
Начинать {
    $key = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches"
    $ар = @()
}
Процесс {
    (Get-Item -Path $key -ErrorAction Stop). GetSubKeyNames() | ForEach-Object -Process {
        $obj = New-Object -TypeName PSObject -Property @{
            Имя = $_
            Включено = $ false
        }
        Пытаться {
            $i = Get-ItemProperty -Path (Join-Path -Path $key -ChildPath $_) -ErrorAction Stop
            Переключатель ($i."StateFlags$($SetNumber)") {
                0 {$obj.Enabled = $false; перерыв }
                2 {$obj.Enabled = $true; перерыв }
                по умолчанию {$obj.Enabled = $false}
            }
        } Ловить {
        }
        $ар += $объект
    }
    $ар
}
} # конец функции

Функция Select-DiskCleanUpItem {
    $key = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches"
    Пытаться {
        (Get-Item -Path $key -ErrorAction Stop).GetSubKeyNames() | Out-GridView-Title «Выберите элементы для очистки»-PassThru
    } Ловить {
        Write-Warning-Message "Не удалось прочитать реестр, потому что $($_.Exception.Message)"
    }
}

Функция Set-DiskCleanUpItemState {
[Привязка командлета()]
Парам(
    [Параметр()]
    [Проверить диапазон (0,9999)]
    [int32]$SetNumber = 9999,

    [Параметр (обязательный)]
    [переключатель] $ Включено,

    [Параметр(Обязательный,ValueFromPipeline)]
    [строка[]]$Товар
)
Начинать {
    # Убедитесь, что мы запускаем от имени администратора
    $usercontext = [Security. Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()
    $IsAdmin = $usercontext.IsInRole(544)
    если (-не($IsAdmin)) {
        Write-Warning-Message «Для выполнения этих действий необходимо запустить powerShell от имени администратора»
        перерыв
    }
    $key = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches"
    Пытаться {
        $validitems = (Get-Item -Path $key -ErrorAction Stop).GetSubKeyNames()
    } Ловить {
        Бросьте $_
    }
    если ($ включено) {
        $Action = 'Включение'
        $значение = 2
    } еще {
        $Action = 'Отключение'
        $значение = 0
    }
}
Процесс {
    $Товар | ForEach-Object -Process {
        если ($_ - не в $validitems) {
            Write-Warning -Message «Игнорирование $_, поскольку он не распознан как действительный элемент»
        } еще {
            Write-Verbose -Message "$Action flag $_ in set number $SetNumber"
            Пытаться {
                Set-ItemProperty -Path (Join-Path -Path $key -ChildPath $_) -Name "StateFlags$($SetNumber)" -Value $Value -Type DWORD -Force -ErrorAction Stop
            } Ловить {
                Write-Warning-Message "Не удалось установить флаг, потому что $($_. Exception.Message)"
            }
        }
    }
}
} # конец функции
 

Теперь давайте посмотрим, как использовать вышеуказанные функции и как настроить новый набор параметров очистки, не запуская утилиту диспетчера очистки.

 # Выберите элементы очистки диска для включения
$DCItemsToEnable = Select-DiskCleanUpItem
            
# Определяем новый случайный набор
$setx = Get-Random -Минимум 2 -Максимум 9999
            
# Включить выбранные элементы
$DCItemsToEnable | Set-DiskCleanUpItemState -SetNumber $setx -Enabled -Подробный
            
# Отключить все остальные в этом наборе
Пытаться {
(Get-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches" -ErrorAction Stop).GetSubKeyNames() | ForEach-Object -Process {
    если ($_ - не в $DCItemsToEnable) {
        $_ | Set-DiskCleanUpItemState -SetNumber $setx -Enabled:$false
    }
}
} Ловить {
    Write-Warning-Message "Не удалось прочитать реестр, потому что $($_.Exception. Message)"
}
            
# Сообщите нам, что было настроено
Write-Verbose -Message "Получить номер элемента в наборе: $setx" -Verbose
Get-DiskCleanupSet-SetNumber $setx
 

Если я выполню приведенный выше код, я сначала получу окно с просьбой выбрать некоторые элементы и нажать «ОК».

и я получу в конце то, что было настроено для номера набора 5911

На этом шаге очистка еще не выполнена. Чтобы запустить его, мне нужно запустить

 & (Get-Command "$($env:systemroot)\system32\cleanmgr.exe") @("/sagerun:$setx") 

Если бы мне пришлось автоматизировать Windows Обновите процесс очистки на компьютерах с Windows 7 SP1, на которых установлена ​​только Powershell 2.0, я бы сделал следующее, чтобы выполнить cleanmgr.exe полностью без вывода сообщений

$скрипт = @'
#Требуется - Версия 2.0
if (Get-HotFix | Where-Object { $_.HotfixID -match "2852386"}) {

    # Настройте этот набор для выполнения только очистки Центра обновления Windows
    $key = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches"
    (Get-Item -Path $key). GetSubKeyNames() | ForEach-Object -Process {
        Пытаться {
            if ($_ -match "Update\sCleanup") {
                Set-ItemProperty -Path (Join-Path -Path $key -ChildPath $_) -Name "StateFlags9999" - Значение 2 - Тип DWORD - Force - ErrorAction Stop
            } еще {
                Set-ItemProperty -Path (Join-Path -Path $key -ChildPath $_) -Name "StateFlags9999" -Value 0 -Type DWORD -Force -ErrorAction Stop
            }
        } Ловить {
            Write-Warning-Message "Не удалось установить флаг, потому что $($_.Exception.Message)"
        }
    }

    # Запустить этот набор
    & (Get-Command "$($env:systemroot)\system32\cleanmgr.exe") @("/sagerun:9999")
} еще {
    Запись-предупреждение-сообщение «Требуемое исправление KB2852386 не найдено»
}
'@

$XMLDef = @"

<Версия задачи="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <Информация о регистрации>
    2013-12-25T00:00:00.0000000
    <Автор>NT AUTHORITY\SYSTEM
  
  <Триггеры>
    
      2013-12-25T00:00:00. 0000000
      true
    
  
  <Руководители>
    <Руководитель>
      НаивысшийДоступный
      NT AUTHORITY\SYSTEM
    
  
  <Настройки>
    IgnoreNew
    false
    false
    true
    false
    false
    <Настройки простоя>
      true
      false
    
    true
    true
    <скрытый>истина
    false
    false
    false
    false
    PT2H
    <Приоритет>7
  
  <Действия Context="Автор">
    <Выполнение>
      C:\Windows\System32\WindowsPowerShell\v1. 0\powershell.exe
      -ExecutionPolicy Bypass -File C:\windows\temp\WUClean.ps1
    
  

"@


# Создаем локальный скрипт powershell
$скрипт | Out-File -FilePath "$($env:systemroot)\Temp\WUClean.ps1" -Кодировка ascii -Force

# Создаем задачу для обработки скрипта
$TaskService = New-Object -ComObject schedule.service
Пытаться {
    $TaskService.Connect() | Out-Null
    $TaskDef = (New-Object -ComObject schedule.service).NewTask($null)
    $TaskDef.xmlText = $XMLDef
    $TaskService.GetFolder('\').RegisterTaskDefinition(
        «Очистка Центра обновления Windows»,
        $TaskDef,
        0x6,
        $null,$null,$null ) | Out-Null
} Ловить {
    Write-Warning «Не удалось зарегистрировать задачу, потому что $($_.Exception.Message)»
}

# Запустить задачу
$TaskService.GetFolder('\').GetTask('Очистка Центра обновления Windows').Run(0)

 

Теперь задачу можно запускать по запросу для любого дальнейшего использования, и файл C:\windows\WUClean. ps1 будет выполняться.

 schtasks /run /tn "Очистка Центра обновления Windows" 

Вот так:

Нравится Загрузка…

Что такое WinSxS? Как очистить папку WinSxS в Windows 10

Папка WinSxS содержит системные репозитории и является важной частью среды Windows. Со временем эта папка продолжает неограниченно расширяться и может занимать много ненужного места на жестком диске.

Есть ли способ освободить это пространство, не затрагивая системные файлы?

1. Что такое папка WinSxS?

Папка WinSxS содержит такие файлы, как библиотеки DLL, двоичные файлы и другие файлы XML, используемые устройством. Он также содержит информацию и файлы, необходимые для установки компонентов Windows. Каждый раз, когда ваша Windows получает новое обновление, эта версия устанавливается на ваш компьютер, а старые версии переносятся на WinSxS. Это обеспечивает совместимость и облегчает восстановление системных файлов в случае возникновения проблемы.

По этой причине размер папки WinSxS со временем увеличивается. Этот каталог можно найти по следующему пути: C:/Windows/WinSxS

Как видите, каталог имеет длинный список используемых системных файлов и подкаталогов:

2. Как проверить размер WinSxS . папка

Вы можете проверить размер папки на странице ее свойств в проводнике, просто щелкните любое пустое место в папке и выберите «Свойства».

Однако это фактический размер папки, и вы не можете на него повлиять. Сюда входит кеш, временные файлы, резервное копирование и восстановление данных, также присутствуют другие важные файлы.

Чтобы проверить размер определенного элемента в папке, выполните следующие действия:

Шаг 1: Найдите cmd с помощью строки поиска и откройте командную строку от имени администратора (Запуск от имени администратора).

Шаг 2: Введите следующую команду и нажмите Enter.

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Шаг 3: Теперь подождите, пока система просканирует папку WinSxS, а затем отобразит список компонентов и их размеры в интерфейсе cmd.

Вы можете обнаружить, что компонент «Резервные копии и отключенные функции» занимает некоторое пространство. Вы можете разрешить этот компонент в папке WinSxS.

3. Как очистить папку WinSxS с помощью программы «Очистка диска»

Инструмент «Очистка диска», встроенный в Windows 10, можно использовать для выполнения безопасных операций по удалению ненужных системных файлов. При использовании этой утилиты никакие важные системные файлы не затрагиваются.

Шаг 1: Найдите «Очистка диска» в строке поиска и запустите его (не запускайте от имени администратора).

Шаг 2: В появившемся окне выбора диска выберите диск C: из списка и нажмите OK.

Шаг 3: На следующем экране нажмите Очистить системные файлы.

Шаг 4: Снова появится окно выбора диска, продолжайте выбирать C: и OK.

Шаг 5: Проверьте компоненты, которые занимают много места в файлах для удаления. Затем нажмите ОК.

Шаг 6: Подтвердите очистку, выберите Удалить файлы.

После завершения очистки из папки WinSxS было удалено нежелательное количество файлов. Кроме того, вы также можете освободить еще немного свободного места, используя следующий метод.

4. Очистите папку WinSxS, удалив определенные функции

Поскольку папка WinSxS также содержит дополнительные функции, вы можете освободить место, удалив функции, которые не работают или не нужны.

Шаг 1: Откройте командную строку от имени администратора (как указано выше).

Шаг 2: Чтобы узнать название и состояние дополнительных функций, доступных на вашем компьютере, введите следующую команду.

DISM.exe/Online/English/Get-Features/Format:Table

Шаг 3: На экране отображается ряд функций, обратите внимание на функции в отключенном состоянии или на те, которые, по вашему мнению, вам не нужны.

Шаг 4: Введите следующую команду, чтобы удалить нужную функцию.

DISM.exe /Online /Disable-Feature /Featurename:TenTinhNang /Remove

Замените «TenTinhNang» на свой выбор, например:

DISM.