Как очистить папку winsxs в windows server 2012 r2

Прежде чем говорить о безопасном способе очистки папки WinSxS в Windows Server 2012, попробуем понять, что же это за папка такая, что в ней хранится и почему со временем она увеличивается в размерах.

Если вы помните, при установке дополнительных компонентов в Windows Server 2003 мастер установки требовал вставить в CD-Rom установочный диск , либо указать путь к каталогу с дистрибутивом Windows Server 2003. В Windows Server 2008 Microsoft решила изменить подход к установке дополнительных ролей и возможностей Windows. Теперь все бинарные файлы, необходимые для разворачивания любой роли, хранятся в каталоге C:\Windows\WinSxS (WinSxS — Windows Side By Side). Это означает, что при установке любой дополнительной роли теперь нет необходимости искать и подключать к серверу диск с дистрибутивом. Естественно, при таком подходе для ОС требует гораздо большего места на диске. Нужно понимать, что в каталоге WinSXS содержаться ключевые компоненты системы, поэтому удалять из нее что-то вручную ни в коем случае нельзя. Почему же размер папки WinSXS постоянно растет? Ответ прост – обновления. При установке обновлений различных компонентов в каталоге WinSXS остаются и старая и новая версия обновленного компонента. Благодаря такой архитектуре, мы в любой момент можем безопасно удалить любое установленное обновление и откатиться на старую версию компонента.

Содержание:

  • Features on Demand в Windows Server 2012
  • Установка удаленных ролей и функций в Windows Server 2012
  • Автоматическая очистка WinSxS с помощью Cleanmgr

А что же делать, если система запущена и работает, разворачивать дополнительные роли не планируется, а места на диске не хватает? Ведь нелогично, что на системном диске несколько гигабайт занято дистрибутивами, которые никогда не потребуются! В Windows Server 2008, к сожалению, удалить данные файлы без вреда системе довольно сложно. Однако, в новой серверной ОС — Windows Server 2012, Microsft решила исправить этот недостаток и внедрила новую функцию под названием Features on Demand.

Features on Demand в Windows Server 2012

Функция Features on Demand (функции по запросу) позволяет уменьшить размер, занимаемый системой на диске, предоставляя возможность удалений бинарных файлов неиспользуемых ролей из папки WinSxS. В том случае, если в дальнейшем возникнет необходимость вернуть ранее удаленную роль, то все необходимые для работы ролей файлы можно извлечь из образа дистрибутива Windows Server 2012, службы Windows Update или сетевого ресурса с оригинальным содержимым WinSxS.

С помощью следующей команды Powershell можно получить информацию обо всех ролях системы:

Get-WindowsFeature

Вывод списка всех ролей и функций в Windows Server 2012

Как вы видите, в колонке Install State отображается состояние каждой роли. Возможные статусы:

  • Installed: роль или функция установлена и в настоящий момент используется системой
  • Available: роль на сервере не установлена, однако на диске присутствуют все необходимые файлы, позволяющие в любой момент установить/активировать эту роль.
  • Removed: — роль или функция на сервере не установлена, файлы, необходимые для ее установки удалены с диска

Соответственно, при установке любой роли через GUI или Powershell (команда Install-WindowsFeature) ее статус с Available меняется на Installed, а при удалении (команда Uninstall-WindowsFeature) наоборот.

Полностью удалить роль с диска (из папки WinSxS) можно только через Powershell. Для этого нужно использовать специальный аргумент команды Uninstall-WindowsFeatur — Remove.

Например, чтобы удалить бинарные файлы роли DHCP-сервера, выполните команду:

Uninstall-WindowsFeature –Name DHCP –Remove

А чтобы удалить файлы службы каталогов Active Directory Domain Services:

Uninstall-WindowsFeature AD-Domain-Services -Remove

Удалить с диска роль Active Directory

С помощью конвейеров Powershell можно написать более сложную команду, которая удалит с диска инсталляционные файлы всех неиспользуемых ролей и функций Windows Server:

Get-WindowsFeature | Where-Object {$_.InstallState -Eq “Available”} | Uninstall-WindowsFeature -Remove

Очищаем папку wisxs в windows server 2012, удалив неиспользуемые роли

В нашем примере, при условии, что была установлена только роль файл-сервера, размер папки WinSxS уменьшился с 8 до 5.2 Гб. Неплохо, правда? Тем более, что для очистки папки WinSxS нам потребовалась всего одна команда.

Установка удаленных ролей и функций в Windows Server 2012

Рассмотрим еще один сценарий, предполагающий, что вам потребуется установить некую роль Windows Server 2012, дистрибутив которой был удален из каталога WinSxS. Восстановить роль можно несколькими способами: с помощью GUI Server Manager или с помощью Powershell.

Прежде, чем приступить к восстановлению файлов ролей, необходимо определить индекс установленной редакции Windows Server 2012. Нам понадобятся диск с дистрибутивом Windows Server 2012 (а точнее файл образа install.wim, находящийся в каталоге sources). Выполните следующую Powershell команду:

Get-windowsimage –imagepath <путь к файлу wim>\sources\install.wim

windows2012 index различных версий

Найдите версию установленного у вас Windows Server и запомните ее индекс (значение в строке Index). В нашем примере это Windows Server 2012 Datacenter с индексом 4. (Мы уже рассматривали особенности работы с различными редакциями Windows 2012 в одном дистрибутиве в статье «Интеграция драйверов в установочный диск Windows Server 2012»).

Ту же самую операцию можно выполнить с помощью утилиты Dism:

dism.exe /get-imageinfo /imagefile:d:\sources\install.wim

Вывод версий win2012 помощью dism

Устанавливаем удаленную роль с помощью Server Manager

Откройте консоль Server Manager и запустите мастер установки ролей (Add Roles and Features. Выберите роль или функцию, которую необходимо установить. Мастер предупредит, что некоторые файлы, необходимые для установки данной роли отсутствуют и нужно указать альтернативный путь к местоположению дистрибутива. Нажмите кнопку Specify an alternate source path.

specify alternative source path: восстанавливаем роль

В поле Path укажите полный путь к файлу intall.wim и индекс установленной редакции ОС в таком формате:

WIM:D:\Sources\Install.wim:4

Путь к wim файлу

В случае необходимости, в данной строке можно указать сетевой путь к каталогу с файлом WIM или сетевой путь к каталогу WinSxS. Кроме того путь к данному каталогу можно указать сразу для группы серверов с помощью групповой политики ( Computer Configuration -> Administrative Templates ->System ->Specify settings for optional component installation and component repair). Последний вариант удобен в случае большого количества инсталляций серверов с Windows Server 2012, ведь суммарный эффект от очистки папки WinSxS может достигать сотен Гб.

windows 2012: задаем путь к хранилищу компонентов с помощью групповой политики

После того, как будет нажата кнопка OK, все необходимые файлы для устанавливаемой роли будут скопированы в каталог WinSxS.

Восстановление удаленной роли Windows 2012 с помощью Powershell

Ту же самую операцию можно выполнить с помощью всего одной команды Powershell. Допустим, нам нужно восстановить удаленные файлы роли ADDS. Выполним следующую команду:

Install-WindowsFeature AD-Domain-Services -Source WIM: WIM:D:\Sources\Install.wim:4

Восстановление удаленной роли с помощью powershell

Итак, в этой статье мы разобрались с новой функцией Windows Server 2012 под название Features on Demand, позволяющей удалить дистрибутивы бинарных файлов неиспользуемых серверных ролей из каталога WinSxS. В случае необходимости удаленную роль можно достаточно просто восстановить: все, что для этого понадобится – дистрибутив Windows Server 2012.

В Windows 8 функция Feautere on Demand работает немного по другому, дело в том, что используемый нами командлет Powershell просто напросто отсутствие. Его аналогом (не таким удобным) является команда DISM с параметром /Disable-Feature. Кроме того можно просто сжать содержимое каталога Winsxs. Подробности в статье Как уменьшить размер папки Winsxs в Windows 8

Автоматическая очистка WinSxS с помощью Cleanmgr

Для автоматической очистки файлов обновлений в WinSxs и временных файлов можно использовать стандартную утилиту Disk Cleanup (cleanmgr.exe). Используйте такой скрипт (thnks to Alex Kornev)

:: параметры очистки каталога winsxs
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup" /v StateFlags0088 /t REG_DWORD /d 2 /f
:: параметры очистки временных объектов
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files" /v StateFlags0088 /t REG_DWORD /d 2 /f
:: создание запланированной задачи "CleanupWinSxS"
schtasks /Create /TN CleanupWinSxS /RL Highest /SC monthly /TR "cleanmgr /sagerun:88"

Данный скрипт создаст в планировщике задание ежемесячной очистки папки WinSxS с помощью утилиты cleanmgr. Задача будет выполняться автоматически 1 раз в месяц 1-го числа без непосредственного участия. Время запуска задачи будет соответствовать времени создания задачи.

Чтобы задать свое время запуска, добавьте в последнюю строку ключ:

/ST HH:mm
где
HH - часы в формате 24h
mm - минуты

Только что установленная Windows Server 2012 R2 Standard EN после установки всех обновлений, доступных в службе Windows Update занимает почти 22GB. В случае, если система готовится в качестве шаблона, с которого в дальнейшем планируется выполнять клонирование серверов, или же мы стали испытывать нехватку свободного места на системном диске уже функционирующего сервера, нам потребуется найти пути оптимизации используемого дискового пространства. Одним из возможных вариантов штатной оптимизации, заложенной в Windows Server, является операция обслуживания так называемого хранилища компонент в каталоге %windir%\WinSxS.

Перед нами показатель заполненности системного диска на только что установленном и обновлённом виртуальном сервере с ОС Windows Server 2012 R2 Standard.

Fresh installed Windows Server 2012 R2 System Disk

Анализ текущего состояния хранилища компонент Windows и его последующую очистку мы можем провести с помощью утилиты, входящей в состав ОС – Dism.exe (сокращение от Deployment Image Servicing and Management).

Запускается анализ следующей командой (требуются права Администратора):

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

WinSxS Dism.exe Windows Component Analyze

По окончании выполнения команды, изучим её вывод и обратим внимание на показатель «Number of Reclaimable Packages«, который определяет число пакетов, заменённых в процессе обновления системы через Windows Update. То есть, это те пакеты, которые могут быть безболезненно вычищены из хранилища.

Значение «Yes» в строке «Component Store Cleanup Recommended» говорит о том, что, по данным проведённого анализа, очистка возможна и рекомендуема.

Прежде, чем запускать нижеуказанную команду, нужно иметь ввиду, что в ходе её выполнения длительное время может быть ощутимо нагружен процессор. Поэтому планировать такую процедуру для уже работающих систем Windows лучше на время, когда не требуется продуктивная работа с системой.

Запуск процедуры очистки хранилища компонент Windows выполняется командой:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

В нашем примере на только что установленной Windows Server 2012 R2 (с выполненной последующей доустановкой ~200 обновлений) время выполнения процедуры очистки заняло более двух часов.

WinSxS Dism.exe Windows Component Cleanup

Дождавшись успешного завершения, посмотрим, как изменилась ситуация на диске.

Fresh installed Windows Server 2012 R2 System Disk after Dism.exe Windows Component Cleanup

Как видим, вместо ранее имеющейся величины свободного места в 7,43 GB, теперь мы имеем 16,6 GB, то есть операция очистки высвободила в нашем случае 9,17 GB. Результат очень даже ощутимый.

Однако в системе по-прежнему остаются файлы, которые могут использоваться для отката установленных обновлений, поддерживающих процедуру деинсталляции. Это хорошо видно, если в оснастке управления установки/удаления программ appwiz.cpl перейти в режим отображения информации об обновлениях. Здесь на большинстве обновлений мы увидим возможность удаления, то есть фактического отката заменяемых обновлениями файлов на их ранние версии.

Uninstall Windows Update

Если мы считаем, что система работает стабильно и имеем уверенность в том, что нам не потребуется выполнять удаление каких-либо обновлений, то мы можем выполнить дополнительную процедуру удаления предыдущих версий для всех компонент, которые были изменены установленными обновлениями. Нужно понимать, что тем самым мы лишим себя возможности отката установленных обновлений. В таком случае, ранее используемую команду выполняем с дополнительной опцией /ResetBase:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

Dism Online Cleanup-Image Start Component Cleanup ResetBase

Снова посмотрим, как изменилась ситуация на диске.

Fresh installed Windows Server 2012 R2 System Disk after Dism.exe Windows Component Cleanup and ResetBase

Как видим, на этот раз мы смогли высвободить ещё 1 GB ёмкости дискового тома.

И теперь, если мы снова заглянем в оснастку управления установки/удаления программ appwiz.cpl в режиме отображения информации об обновлениях, то увидим, что при выборе любого из обновлений кнопка Uninstall более нам недоступна.

Unable to uninstall Windows Updates after Dism.exe Windows Component Cleanup and ResetBase

Таким образом, если мы решили прибегнуть к описанной выше процедуре очистки хранилища компонент Windows в каталоге WinSxS, то сначала лучше использовать более щадящую команду очистки, то есть без ключа /ResetBase, так как результат такой очистки в большинстве случаев даёт нам вполне удовлетворительный размер освобождаемого места, оставляя при этом больше «шансов для манёвра» в случае проблем с уже установленными обновлениями. То есть команду очистки с ключом /ResetBase предлагается использовать только в крайних исключительных случаях.

Дополнительные источники информации:

  • Вадим Стеркин — Как работает и сколько места экономит оптимизация папки WinSxS в Windows 10, 8.1 и 8
  • Вадим Стеркин — Как грамотно уменьшить размер папки WinSxS в Windows 10, 8.1 и 8

First published on TechNet on Feb 09, 2015

When discussing a specific .NET framework issue a few months back, several people commented that they were unable to uninstall an update as the new /resetbase command was run against the image after the update was already installed.

So what is this command? Why were they unable to uninstall this update? What other new servicing enhancements were added to Windows 8.1 and Windows Server 2012 R2? Keep reading to find out.

Let’s start by discussing the latter question in the title of this blog. Do we still need to clean up the WinSxS directory?

In short, maybe.

The operating system will now automatically do it for you and you do not have to do anything, but if you want to, you still can. What do I mean by automatically doing it for you? Check out this greatness:

Yes, you are seeing things correctly. That is a scheduled task built in to Windows Server 2012 R2 and Windows 8.1 to automatically cleanup the component store.

What’s the component store? It’s that “pesky” and “misunderstood” WinSxS directory everyone on Windows Server 2008 R2 and Windows 7 complained about that took up too much space. For background information on WinSxS and the need to cleanup the WinSxs directory to free up disk space in previous versions of Windows, see my prior posts:

How to Clean up the WinSxS Directory and Free Up Disk Space on Windows Server 2008 R2 with New Update:
http://blogs.technet.com/b/askpfeplat/archive/2014/05/13/how-to-clean-up-the-winsxs-directory-and-free-up-disk-space-on-windows-server-2008-r2-with-new-update.aspx

Breaking News! Reduce the size of the WinSxS Directory and Free up Disk Space with a New Update for Windows 7 SP1 Clients:
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

How to Reduce the Size of the Winsxs directory and Free Up Disk Space on Windows Server 2012 Using Features on Demand:
http://blogs.technet.com/b/askpfeplat/archive/2013/02/24/how-to-reduce-the-size-of-the-winsxs-directory-and-free-up-disk-space-on-windows-server-2012-using-features-on-demand.aspx

But back to the scheduled task.

30 days after installing an update or hotfix, we automatically kick off this bad boy to remove previous versions of the updated files. Is that greatness or what? And so easy! You could literally just let Windows do its job and safely know that the WinSxS directory isn’t going to chow down on all your free disk space! We automatically clean things up for you!

You can kick it off manually anytime by running the scheduled task. By default, it runs for an hour. However, what if it doesn’t complete? Well, it will pick back up where it left off the next time or you could also kick it off via command line by running the following command from an administrative command prompt:

Dism.exe /online /Cleanup-Image /StartComponentCleanup

For those of you with the Desktop Experience installed or on Windows 8.1, you can still use the Disk Cleanup Wizard as well and select the Clean up system files button.

If you run this and check the scheduled task afterwards, you’ll notice that the last run time for the StartComponentCleanup task was approximately the same time clean up system files was kicked off from the Disk Cleanup Wizard.

So that’s a start, but what else has Microsoft done?

Well, for starters, we now compressed any unused binaries in the component store. That means that we compress all those features and roles you haven’t installed, but are there in case you decide to install them at any point in the future. You can still remove these in Windows 8.1 or Windows Server 2012 R2 using Features on Demand .

Want to reduce the size even further and cleanup even more?

This is a great command added with Windows 8.1 and Windows Server 2012 R2.  Essentially, it’s the mother of all commands. It cleanups and removes all the old superseded stuff from every component in the component store.

Knowledgeable engineers focusing on reducing the size of their images often run this command to tidy up prior to rolling the image into production. It’s a great thing and really does have an impact. However, after running the /resetbase command, all existing updates cannot be uninstalled. It doesn’t block the uninstallation of future updates that are installed after running this command, but all prior updates are made permanent and cannot be removed. The command is as follows:

Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

If you would like to see what impact this command has, you can run the following command to display the “true” size prior to cleanup:

Dism.exe /online /Cleanup-Image /AnalyzeComponentStore

What all does this mean? Most of it is self-explanatory, but here’s a quick rundown:

  • Windows Explorer Reported Size of the Component Store – As you may have guessed, this shows the File Explorer reported size. As seen above, it’s not completely accurate. This is due to the use of hard links by the operating system.

  • Actual Size of the Component Store – This is the true size of the component store.

  • Shared with Windows – This is the size that the component store would be just per Windows install whether or not the component store actually existed.

  • Backups and Disable Features – This is the size of the previous versions we store in the component store as well as the binaries of any roles or features you may wish to install in the future

  • Cache and Temporary Data – Just as it sounds.

As shown above, as part of the analysis, it will even tell you whether component store cleanup is recommended. In this case, it is recommended.

Now that we know the true size, let’s run the cleanup and check our results. For this first run, we’re going to use the following command which is what Windows does automatically behind the covers for you with the scheduled task:

Dism.exe /online /cleanup-image /StartComponentCleanup

It does take a while. Be patient. But the good news is, it doesn’t require a reboot. After it completes, check it again:

A little over 2GB smaller! Nice!

Now what if we reset the base.

A little bit more, but nothing drastic.

Now, if you don’t want to go to this degree and make all your hotfixes, security updates, etc. permanent, you can simply let the scheduled task do its job or run the /StartComponentCleanup without the /resetbase switch. This will cleanup previous versions of the updates installed, but still allow you to uninstall a security update or hotfix, if needed. Just keep in mind when you uninstall the update after the cleanup, you don’t have the prior version to roll back to, but instead will rollback further, even back to RTM potentially.

In my .NET post , if you’ve read through the comments, several users ran the /resetbase before encountering problems. What options do they have at this point?   In short, they need to use an updated source. Check back in a couple weeks when we’ll discuss all the available options for sources and how to keep that source up to date.

Until then,

Charity “Keep up with the cleanup” Shelbourne

One of my Windows Server 2012 R2 ran out of space. A quick folder analysis using the free portable tool TreeSize revealed that both Windows.old and WinSxS folders are the ones taking most of the spaces.

Folder Analysis - Windows Server 2012

On Windows desktop systems, both folders are easy to clean up with the built in tool Disk Cleanup Utility. But, it’s not the case in Windows Server, especially the more recent versions like 2012 R2. You probably could enable Desktop Experience feature to bring back the Disk Cleanup Utility but it won’t guarantee to clean up these two giant folders managed by the system upgrades and updates. If you are facing the same challenge as I do, here are the options you can take away.

WinSxS, aka Windows component store, contains all the files required for a Windows installation as well as any updates to those files within the component store. Therefore, the folder could become quite big over time. Because it’s associated with system installation it’s not a good idea just simply deleting the folder. Rather, utilizing a command-line tool called DISM, Deployment Image Servicing Management, is way more appropriate. It has a parameter /cleanup-imagethat provides a few more advanced options to reduce the size of the WinSxS folder.

First of all, you can run the following to analyze the component store to see what’s included in there.

dism /online /cleanup-image /AnalyzeComponentStore

Dism to analyze the component store

Then, run the following to remove superseded and unused system files from the system and reset the base so all existing updates cannot be removed after the command is completed.

dism /online /cleanup-image /StartComponentCleanup /ResetBase

It didn’t clean up a whole lot in my case, only claimed back a little over 1 GB space.

Note: If you are somehow still using Windows Server 2008 R2, installing KB2852386 after enabling Desktop Experience feature makes things a lot easy to clean up right with the Disk Cleanup Utility tool.

How to clean up WinSxS folder on Windows 2008 R2

How to clean up Windows.old on Windows Server 2012 R2

With Disk Cleanup out of the equation, manual cleanup seems to be the option left. Thanks to this Q&A at ServerFault, here is what I did to bring back over 50 GB of storage space.

First of all, run Sysinternals junction.exe utility to get a list of all junctions in a text file, junc.txt on my desktop.

junction.exe -s -q c:\windows.old > %UserProfile%\desktop\junc.txt

Then, run the following script in PowerShell to remove all junction points and single symbolic links on the system.

foreach ($line in [System.IO.File]::ReadLines("$env:userprofile\desktop\junc.txt"))
 {
     if ($line -match "^\\\\")
     {
         $file = $line -replace "(: JUNCTION)|(: SYMBOLIC LINK)",""
         & $env:userprofile\desktop\pstools\junction.exe -d "$file"
     }
 }

Replace with the correct path for junction.exe utility and the junc.txt files, if needed.

Once that’s done, run the following to take over ownership of the windows.old folder.

takeown /f c:\windows.old /r /d y

And reassign the full control rights to everyone.

cacls c:\windows.old /t /g everyone:F

Then, finally to remove the whole folder.

rmdir /s /q c:\windows.old

It may take a little while for the command to complete but once it’s done you will be so delighted to see how much space you just brought it back to life. Enjoy.

Содержание

  1. Безопасная очистка папки WinSXS в Windows Server 2016 / 2012 R2
  2. Features on Demand в Windows Server 2012
  3. Установка удаленных ролей и функций в Windows Server 2012
  4. Устанавливаем удаленную роль с помощью Server Manager
  5. Восстановление удаленной роли Windows 2012 с помощью Powershell
  6. Автоматическая очистка WinSxS с помощью Cleanmgr
  7. Использование очистки диска на Windows Server Using Disk Cleanup on Windows Server
  8. Включение очистки диска в более ранней версии Windows Server с помощью установки возможности рабочего стола Enable Disk Cleanup on an earlier version of Windows Server by installing the Desktop Experience
  9. Добавление средства очистки диска вручную на более ранних версиях Windows Server Manually add Disk Cleanup to an earlier version of Windows Server
  10. Папка WinSxS: какие функции выполняет и как ее почистить
  11. Что это за папка WinSxS
  12. Как узнать сколько места занимает каталог Windows SxS
  13. Как почистить папку WinSxS
  14. Способ 1. Очистка диска
  15. Способ 2. Диспетчер задач
  16. Способ 3. DISM.exe
  17. DnD Сервис

Безопасная очистка папки WinSXS в Windows Server 2016 / 2012 R2

Прежде чем говорить о безопасном способе очистки папки WinSxS в Windows Server 2012, попробуем понять, что же это за папка такая, что в ней хранится и почему со временем она увеличивается в размерах.

А что же делать, если система запущена и работает, разворачивать дополнительные роли не планируется, а места на диске не хватает? Ведь нелогично, что на системном диске несколько гигабайт занято дистрибутивами, которые никогда не потребуются! В Windows Server 2008, к сожалению, удалить данные файлы без вреда системе довольно сложно. Однако, в новой серверной ОС — Windows Server 2012, Microsft решила исправить этот недостаток и внедрила новую функцию под названием Features on Demand.

Features on Demand в Windows Server 2012

Функция Features on Demand (функции по запросу) позволяет уменьшить размер, занимаемый системой на диске, предоставляя возможность удалений бинарных файлов неиспользуемых ролей из папки WinSxS. В том случае, если в дальнейшем возникнет необходимость вернуть ранее удаленную роль, то все необходимые для работы ролей файлы можно извлечь из образа дистрибутива Windows Server 2012, службы Windows Update или сетевого ресурса с оригинальным содержимым WinSxS.

С помощью следующей команды Powershell можно получить информацию обо всех ролях системы:

Как вы видите, в колонке Install State отображается состояние каждой роли. Возможные статусы:

Соответственно, при установке любой роли через GUI или Powershell (команда Install-WindowsFeature) ее статус с Available меняется на Installed, а при удалении (команда Uninstall-WindowsFeature) наоборот.

Полностью удалить роль с диска (из папки WinSxS) можно только через Powershell. Для этого нужно использовать специальный аргумент команды Uninstall-WindowsFeatur — Remove.

Например, чтобы удалить бинарные файлы роли DHCP-сервера, выполните команду:

А чтобы удалить файлы службы каталогов Active Directory Domain Services:

С помощью конвейеров Powershell можно написать более сложную команду, которая удалит с диска инсталляционные файлы всех неиспользуемых ролей и функций Windows Server:

В нашем примере, при условии, что была установлена только роль файл-сервера, размер папки WinSxS уменьшился с 8 до 5.2 Гб. Неплохо, правда? Тем более, что для очистки папки WinSxS нам потребовалась всего одна команда.

Установка удаленных ролей и функций в Windows Server 2012

Рассмотрим еще один сценарий, предполагающий, что вам потребуется установить некую роль Windows Server 2012, дистрибутив которой был удален из каталога WinSxS. Восстановить роль можно несколькими способами: с помощью GUI Server Manager или с помощью Powershell.

Прежде, чем приступить к восстановлению файлов ролей, необходимо определить индекс установленной редакции Windows Server 2012. Нам понадобятся диск с дистрибутивом Windows Server 2012 (а точнее файл образа install.wim, находящийся в каталоге sources). Выполните следующую Powershell команду:

Найдите версию установленного у вас Windows Server и запомните ее индекс (значение в строке Index). В нашем примере это Windows Server 2012 Datacenter с индексом 4. (Мы уже рассматривали особенности работы с различными редакциями Windows 2012 в одном дистрибутиве в статье «Интеграция драйверов в установочный диск Windows Server 2012»).

Ту же самую операцию можно выполнить с помощью утилиты Dism:

Устанавливаем удаленную роль с помощью Server Manager

Откройте консоль Server Manager и запустите мастер установки ролей (Add Roles and Features. Выберите роль или функцию, которую необходимо установить. Мастер предупредит, что некоторые файлы, необходимые для установки данной роли отсутствуют и нужно указать альтернативный путь к местоположению дистрибутива. Нажмите кнопку Specify an alternate source path.

В поле Path укажите полный путь к файлу intall.wim и индекс установленной редакции ОС в таком формате:

После того, как будет нажата кнопка OK, все необходимые файлы для устанавливаемой роли будут скопированы в каталог WinSxS.

Восстановление удаленной роли Windows 2012 с помощью Powershell

Ту же самую операцию можно выполнить с помощью всего одной команды Powershell. Допустим, нам нужно восстановить удаленные файлы роли ADDS. Выполним следующую команду:

Итак, в этой статье мы разобрались с новой функцией Windows Server 2012 под название Features on Demand, позволяющей удалить дистрибутивы бинарных файлов неиспользуемых серверных ролей из каталога WinSxS. В случае необходимости удаленную роль можно достаточно просто восстановить: все, что для этого понадобится – дистрибутив Windows Server 2012.

В Windows 8 функция Feautere on Demand работает немного по другому, дело в том, что используемый нами командлет Powershell просто напросто отсутствие. Его аналогом (не таким удобным) является команда DISM с параметром /Disable-Feature. Кроме того можно просто сжать содержимое каталога Winsxs. Подробности в статье Как уменьшить размер папки Winsxs в Windows 8

Автоматическая очистка WinSxS с помощью Cleanmgr

Для автоматической очистки файлов обновлений в WinSxs и временных файлов можно использовать стандартную утилиту Disk Cleanup (cleanmgr.exe). Используйте такой скрипт (thnks to Alex Kornev)

:: параметры очистки каталога winsxs
REG ADD «HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\ CurrentVersion\Explorer\ VolumeCaches\Update Cleanup» /v StateFlags0088 /t REG_DWORD /d 2 /f
:: параметры очистки временных объектов
REG ADD «HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\ CurrentVersion\Explorer\ VolumeCaches\Temporary Files» /v StateFlags0088 /t REG_DWORD /d 2 /f
:: создание запланированной задачи «CleanupWinSxS»
schtasks /Create /TN CleanupWinSxS /RL Highest /SC monthly /TR «cleanmgr /sagerun:88»

Данный скрипт создаст в планировщике задание ежемесячной очистки папки WinSxS с помощью утилиты cleanmgr. Задача будет выполняться автоматически 1 раз в месяц 1-го числа без непосредственного участия. Время запуска задачи будет соответствовать времени создания задачи.

Чтобы задать свое время запуска, добавьте в последнюю строку ключ:

Источник

Использование очистки диска на Windows Server Using Disk Cleanup on Windows Server

Применяется к: Windows Server 2019, Windows Server 2016, Windows Server 2016 R2, Windows Server 2012, Windows Server 2012 R2 Applies to: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2

Средство очистки диска удаляет ненужные файлы в среде Windows Server. The Disk Cleanup tool clears unnecessary files in a Windows Server environment. Это средство доступно по умолчанию в Windows Server 2019 и Windows Server 2016, но в более ранних версиях Windows Server могут потребоваться дополнительные действия вручную для его включения. This tool is available by default on Windows Server 2019 and Windows Server 2016, but you might have to take a few manual steps to enable it on earlier versions of Windows Server.

Чтобы запустить средство очистки диска, выполните команду cleanmgr.exe или последовательно выберите Пуск, Средства администрирования Windows, Очистка диска. To start the Disk Cleanup tool, either run the Cleanmgr.exe command, or select Start, select Windows Administrative Tools, and then select Disk Cleanup.

Кроме того, средство очистки диска можно запустить командой Windows cleanmgr, указав в параметрах командной строки параметры для удаления определенных файлов. You can also run Disk Cleanup by using the cleanmgr Windows command and use command-line options to specify that Disk Cleanup cleans up certain files.

Если вы просто хотите освободить место на диске, рассмотрите возможность использования Синхронизации файлов Azure с включенным распределением по уровням облака. If you’re just looking to free up disk space, consider using Azure File Sync with cloud tiering enabled. Благодаря этому вы сможете кэшировать часто используемые файлы локально и распределять редко используемые файлы по уровням облака, сохраняя пространство в локальном хранилище и поддерживая производительность. This allows you to cache your most frequently accessed files locally and tier your least frequently accessed files to the cloud, saving local storage space while maintaining performance. Дополнительные сведения см. в статье Планирование развертывания Синхронизации файлов Azure. For details, see Planning for an Azure File Sync deployment.

Включение очистки диска в более ранней версии Windows Server с помощью установки возможности рабочего стола Enable Disk Cleanup on an earlier version of Windows Server by installing the Desktop Experience

Выполните описанные ниже действия, чтобы использовать мастер добавления ролей и компонентов для установки возможностей рабочего стола на сервере под управлением Windows Server 2012 R2 или более ранней версии, в составе которых устанавливается и средство очистки диска. Follow these steps to use the Add Roles and Features Wizard to install the Desktop Experience on a server running Windows Server 2012 R2 or earlier, which also installs Disk Cleanup.

Если диспетчер серверов уже открыт, переходите к следующему шагу. If Server Manager is already open, go on to the next step. Если диспетчер серверов еще не открыт, откройте его одним из следующих способов. If Server Manager is not already open, open it by doing one of the following.

На рабочем столе Windows запустите диспетчер серверов, щелкнув Диспетчер серверов на панели задач Windows. On the Windows desktop, start Server Manager by clicking Server Manager in the Windows taskbar.

Откройте Начальный экран и щелкните плитку «Диспетчер сервера». Go to Start and select the Server Manager tile.

В меню Управление выберите добавление ролей и компонентов. On the Manage menu, select add Roles and Features.

На странице Прежде чем приступить к работе проверьте готовность конечного сервера и сетевого окружения к установке нужного компонента. On the Before you begin page, verify that your destination server and network environment are prepared for the feature that you want to install. Выберите Далее. Select Next.

На странице Выбор типа установки выберите Установка ролей или компонентов, чтобы установить все компоненты для отдельного сервера. On the Select installation type page, select Role-based or feature-based installation to install all parts features on a single server. Выберите Далее. Select Next.

На странице Выбор целевого сервера выберите сервер из пула серверов или автономный виртуальный жесткий диск. On the Select destination server page, select a server from the server pool, or select an offline VHD. Выберите Далее. Select Next.

На странице Выбор ролей сервера щелкните Далее. On the Select server roles page, select Next.

На странице Выбор компонентов выберите элемент Пользовательский интерфейс и инфраструктура, а затем — Возможности рабочего стола. On the Select features page, select User Interface and Infrastructure, and then select Desktop Experience.

В диалоговом окне Добавление компонентов, необходимых для возможностей рабочего стола щелкните элемент Добавить компоненты. In Add features that are required for Desktop Experience?, select Add Features.

Продолжите установку, затем перезагрузите систему. Proceed with the installation, and then reboot the system.

Убедитесь, что в диалоговом окне «Свойства» появилась кнопка Очистка диска. Verify that the Disk Cleanup option button appears in the Properties dialog box.

Добавление средства очистки диска вручную на более ранних версиях Windows Server Manually add Disk Cleanup to an earlier version of Windows Server

Средство очистки диска (Cleanmgr.exe) отсутствует в Windows Server 2012 R2 и более ранних версиях, если не установлен дополнительный компонент «Возможности рабочего стола». The Disk Cleanup tool (cleanmgr.exe) isn’t present on Windows Server 2012 R2 or earlier unless you have the Desktop Experience feature installed.

Чтобы использовать программу cleanmgr.exe, установите возможности рабочего стола, как описано выше, или скопируйте два файла cleanmgr.exe и cleanmgr.exe.mui, которые уже имеются на сервере. To use cleanmgr.exe, install the Desktop Experience as described earlier, or copy two files that are already present on the server, cleanmgr.exe and cleanmgr.exe.mui. С помощью следующей таблицы выберите нужные файлы для используемой операционной системы. Use the following table to locate the files for your operating system.

Операционная система Operating System Архитектура Architecture Расположение файла File Location
Windows Server 2008 R2 Windows Server 2008 R2 64-разрядная 64-bit C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da\cleanmgr.exe C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da\cleanmgr.exe
Windows Server 2008 R2 Windows Server 2008 R2 64-разрядная 64-bit C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_en-us_b9cb6194b257cc63\cleanmgr.exe.mui C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_en-us_b9cb6194b257cc63\cleanmgr.exe.mui

Найдите файл cleanmgr.exe и переместите его в папку %systemroot%\System32. Locate cleanmgr.exe and move the file to %systemroot%\System32.

Найдите файл cleanmgr.exe.mui и переместите его в папку %systemroot%\System32\en-US. Locate cleanmgr.exe.mui and move the files to %systemroot%\System32\en-US.

Теперь вы можете запустить средство очистки диска, выполнив команду Cleanmgr.exe из командной строки, или открыв начальный экран и набрав строку Cleanmgr на панели поиска. You can now launch the Disk cleanup tool by running Cleanmgr.exe from Command Prompt, or by clicking Start and typing Cleanmgr into the search bar.

Чтобы в диалоговом окне «Свойства» для диска появилась кнопка «Очистка диска», необходимо установить компонент «Возможности рабочего стола». To have Disk Cleanup button appear on a disk’s Properties dialog, you will also need to install the Desktop Experience feature.

Источник

Папка WinSxS: какие функции выполняет и как ее почистить

Если вы заметили, что значительную часть вашего дискового пространства занимает странная папка WinSxS, то наша статья будет вам полезна. Мы расскажем о том, что это за хранилище, зачем используется и как избавиться от ненужных компонентов.

Что это за папка WinSxS

Каталог файлов Windows SxS можно встретить только на последних операционных системах Windows: Vista, 7, Server 2008 R2 и 2012 R2, а также 10 и выше. Эта папка содержит компоненты, которые участвуют в обслуживании всех операций системы. К тому же в ней скапливаются все последующие обновления Windows и резервные копии файлов для процесса восстановления.

Вся эта громоздкая структура необходима для корректной работы операционной системы, а также она дает возможность управлять обновлениями. Например, восстановление системы и гибернация — это функции, которые помогают пользователям возобновить работу системы, не потеряв данные при непредвиденных сбоях, таких как низкий заряд батареи, неправильная установка приложений или другие повреждения компьютера.

Именно папка WinSxS помогает сделать backup к тому состоянию, в котором все работало правильно и никакие системные файлы не были повреждены.

Папка WinSxS – это еще и хранилище компонентов NTFS, которые имеют связи с другими каталогами Windows, и образуют вместе единую файловую систему операционки. Такой принцип структуры и управления данными позволяет увеличивать производительность устройства, а также более эффективно использовать место на диске. Поэтому при всей кажущемся большом объеме папки, размер до 10 ГБ считается нормальным состоянием.

Но со временем папка все-таки переваливает через допустимые рамки и может начать влиять на быстродействие. Поэтому время от времени очисткой папки от неиспользуемых компонентов все-таки нужно заниматься.

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

Как узнать сколько места занимает каталог Windows SxS

Если вы решили оптимизировать папку WinSxS, то найти ее можно по адресу:

C:\Windows\winsxs

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

На самом деле цифра, которую отражают свойства папки, не совсем верна и сильно завышена. Это связано с тем, что свойства считают не только реальные файлы, но и все ссылки как отдельный файл. Например, файл с именем api32.dll занимает 600 Кбайт и находится в папке Windows/system32, то Windows посчитает, что файл занимает 1200 Кбайт на жестком диске.

Чтобы узнать реальный размер папки, а также понять, стоит ли уже волноваться об ее очистке, пройдите следующие шаги (этот вариант анализа подходит для более поздних версий Windows, от 8.1 и выше):

Component Store Cleanup Recommended: No

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

Как почистить папку WinSxS

Способ 1. Очистка диска

Разработчики ОС Windows 7 и выше предусмотрели возможность для пользователей избавить локальный диск от неиспользуемых компонентов системы. Для этого выполните такие действия:

Если по какой-то причине в поиске меню «Пуск» не нашлось утилиты «Очистка диска», то ее можно установить на ваш десктоп вручную. Скачайте на сайте Майкрософт обновление KB2852386. Обычно оно входит в список обновлений системы, но не является обязательным, поэтому может быть не установлено. Такое случается в ОС Windows 7.

Способ 2. Диспетчер задач

Уменьшить размер папки WinSxS в ОС Windows 8 и выше поможет опция «Планировщик заданий». Для этого:

Вызвать планировщика задач можно и командной строкой, запустив cmd с правами администратора и введя команду:

schtasks.exe /Run /TN «\Microsoft\Windows\Servicing\StartComponentCleanup»

Так вы запланируете удаление файлов с отсрочкой в 30 дней. В это время будут храниться как новые обновления, так и предыдущие.

Способ 3. DISM.exe

Этот вариант для продвинутых пользователей, когда вы точно уверены, что удалённые компоненты из папки WinSxS вам не пригодятся. По сути, это усовершенствованная версия планировщика заданий из ранних операционных систем. Такой метод освобождения дискового пространства возможен в ОС Windows 10 и Windows Server 2016.

Dism.exe /online /Cleanup-Image /StartComponentCleanup

Очистка производится без ожидания 30 дней, а в течение часа.

Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

Dism.exe /online /Cleanup-Image /SPSuperseded

После этой команды не остается старых версий обновлений, к которым можно было бы вернуться.

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

Источник

DnD Сервис

В данной статье мы рассмотрим:

Один из часто задаваемых вопросов – можно ли удалить папку WinSxS, чтобы освободить место на диске? Если отвечать одним словом – нельзя.

Однако можно уменьшить размер папки WinSxS. Тут мы опишем разные способы для уменьшения размера папки WinSxS в работающей версии Windows 8.1, Windows 10.

Windows 8.1 и Windows Server 2012 R2, Windows 10 автоматически уменьшают размер папки WinSxS методами, аналогичными описанным в этом разделе, но при этом также используются внутренние процессы, в том числе удаление пакетов с компонентами, которые были заменены другими компонентами в новых версиях. Предыдущие версии некоторых компонентов хранятся в системе в течение некоторого времени, позволяя в случае необходимости выполнить откат. Через некоторое время эти компоненты удаляются из установки.

ВНИМАНИЕ: Удаление файлов из папки WinSxS или удаление всей папки WinSxS может нанести серьезный ущерб системе. В результате компьютер может не загружаться и его будет невозможно обновить.

Имеются несколько способов очистки папки WinSxS, приступим:

В Windows имеется задача StartComponentCleanup которая служит для автоматической регулярной очистки компонентов, когда система не используется. Эта задача запускается операционной системой. При автоматическом выполнении задача ожидает не менее 30 дней после установки какого либо обновления, а затем удаляет все старые версии этого обновления.
Хочу заметить, что при запускаете сей задачи действует время ожидания в 1 час, и задача может не полностью очистить все файлы.

Запуск задачи StartComponentCleanup в планировщике заданий

Если окно Планировщик заданий не открыто, запустите планировщик заданий. Сделать это можно просто командой, для этого нажимаем кнопки Win+R и вводим Taskschd.msc
Разворачиваем дерево консоли и перейдите к узлу

Библиотека планировщика заданий\Microsoft\Windows\Servicing\StartComponentCleanup.
В разделе Выбранный элемент нажимаем «Выполнить», как показано на рисунке ниже:

Данную задачу можно запустить из под командной строки, обязательно с правами Администратора:

schtasks.exe /Run /TN «\Microsoft\Windows\Servicing\StartComponentCleanup»

Система обслуживания образов развертывания и управления ими (DISM) – это программа командной строки, которая позволяет устанавливать, удалять, настраивать и обновлять компоненты Windows, пакеты, драйверы и региональные параметры.

Она уже в ходит в комплект Windows 7, 8.1, 10 (на других не проверял)

Параметр /Cleanup-Image программы Dism.exe предназначен для опытных пользователей и предоставляет дополнительные способы уменьшения размера папки WinSxS. Более подробная информация параметров командной строки DISM тут.

Использование параметра /StartComponentCleanup

Задание параметра /StartComponentCleanup программы Dism.exe в работающей версии Windows 8.1 дает результаты, аналогичные выполнению задачи StartComponentCleanup в планировщике заданий, но удаление старых версий запускается немедленно, без отсрочки в 30 дней, а так же не нужно будет ждать 1 час.

В командной строке с правами Администратора введите:

Dism.exe /online /Cleanup-Image /StartComponentCleanup

Использование ключа /ResetBase с параметром /StartComponentCleanup

Ключ /ResetBase с параметром /StartComponentCleanup программы DISM.exe удаляет все замененные версии для всех компонентов в хранилище компонентов.

В командной строке с правами Администратора введите:

Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

Обращаем внимание: После выполнения этой команды будет невозможно удалить никакие из существующих обновлений и пакетов обновления. Следующие обновления и пакеты обновления можно будет удалять.

Использование параметра /SPSuperseded

При использовании параметра /SPSuperseded будут удалены все резервные компоненты, необходимые для удаления пакета обновления. Пакет обновления представляет собой набор накопительных обновлений для определенного выпуска Windows.

В командной строке с правами Администратора введите:

Dism.exe /online /Cleanup-Image /SPSuperseded

Внимание: После выполнения этой команды будет невозможно удалить пакет обновления.

Очистка диска

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

Чтобы удалить временные файлы:

Если вам необходимо освободить больше места, вы можете также удалить системные файлы:

(данный метод применим в Windows 8, 10)

В Очистка диска, выберите Очистить системные файлы.

Источник

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Linux terminal для windows
  • Настройка rdp удаленного рабочего стола windows
  • Как вернуть меню пуск в windows 11 в первоначальное состояние
  • Windows 10 не пускает в сетевую папку
  • Перенос iso образа windows на флешку