· 13 мин чтения

Очистка диска C на Windows Server: WinSxS, SoftwareDistribution и ещё 8 папок

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15 лет сопровождения Windows-серверов я каждый месяц минимум на одном клиенте получаю заявку «у нас диск C красный, срочно!». И каждый раз это одно и то же: кэш Windows Update разросся до 20 ГБ, WinSxS нахватал 45 ГБ, профили терминальных пользователей забили 80% тома. В статье — проверенный список того, что можно безопасно чистить на Windows Server 2019/2022, и конкретные команды. У меня на практике после такой очистки типично освобождается 40–60 ГБ на сервере, который «никуда не ест».

Куда уходит место на системном диске

ПапкаТипичный размерБезопасно чистить
C:\Windows\WinSxS15-50 ГБДа, через DISM
C:\Windows\SoftwareDistribution5-20 ГБДа, после остановки wuauserv
C:\Windows\Installer3-15 ГБЧастично, с осторожностью
C:\Windows\Logs\CBS2-10 ГБДа, после остановки trustedinstaller
C:\Windows\ccmcacheдо 30 ГБДа, через SCCM-клиент
C:\Users\*\AppData\Local\Temp1-10 ГБ на пользователяДа
C:\ProgramData\Microsoft\Windows Defender\Scans\History2-8 ГБДа
C:\Windows\Temp0.5-5 ГБДа
C:\pagefile.sysразмер RAMМожно перенести
C:\hiberfil.sys70% RAMОтключить на серверах

1. Чистим WinSxS через DISM

WinSxS — хранилище компонентов Windows. Содержит файлы для установки/отката всех ранее выпущенных обновлений. Без очистки за 3 года набирает 40–50 ГБ. Важно: нельзя удалять руками! Только через DISM.

# Анализ размера
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

# Очистка отменяемых обновлений
Dism.exe /Online /Cleanup-Image /StartComponentCleanup

# Агрессивная очистка (необратимо — нельзя будет откатить обновления)
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

# Проверка (должно занять 3-5 минут)
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

У нас на практике на Windows Server 2022, который в продуктиве 2 года, WinSxS с 48 ГБ после /StartComponentCleanup становится 18 ГБ, после /ResetBase — 11 ГБ.

2. Очистка кэша Windows Update

Папка C:\Windows\SoftwareDistribution\Download содержит скачанные обновления. После установки они там же и остаются, не удаляются сами. Чистка:

Stop-Service wuauserv, bits, cryptsvc, msiserver -Force
Remove-Item -Path "C:\Windows\SoftwareDistribution\Download\*" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Windows\System32\catroot2\*" -Recurse -Force -ErrorAction SilentlyContinue
Start-Service wuauserv, bits, cryptsvc, msiserver

Эта процедура — первое, что я делаю на любом сервере с забитым диском C. Среднее освобождение — 8–15 ГБ.

3. Чистим C:\Windows\Installer

Папка Installer хранит MSI/MSP установщиков. Нужна для удаления/восстановления установленных программ. Напрямую удалять нельзя, но можно использовать утилиту PatchCleaner, которая находит осиротевшие .msp-файлы (от удалённых программ):

# Скачиваем PatchCleaner (homedev.com.au/Free/PatchCleaner)
# Запускаем в Analyze Mode, смотрим orphaned files
# Move to another location (не delete, на всякий случай)

# Альтернативный способ через PowerShell-анализ
Get-WmiObject Win32_Product | Select-Object Name, LocalPackage, Version

Я всегда переношу в другую папку, а не удаляю. Если что-то отвалится — возвращаю обратно. После недели без проблем — удаляю окончательно.

4. Очистка логов CBS и Windows Update

# Очистка CBS.log (может быть до 10 ГБ)
Stop-Service trustedinstaller -Force
Remove-Item -Path "C:\Windows\Logs\CBS\*" -Recurse -Force
Start-Service trustedinstaller

# Журналы Windows Update
Remove-Item -Path "C:\Windows\WindowsUpdate.log" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Windows\Logs\WindowsUpdate\*" -Recurse -Force -ErrorAction SilentlyContinue

5. Встроенный cleanmgr в Windows Server 2019+

В Windows Server 2012R2 cleanmgr требовал установки роли. В 2019/2022 он доступен сразу. Настраиваем preset и запускаем:

# Настраиваем, что чистить (один раз)
cleanmgr /sageset:1
# Откроется окно — отмечаем галки:
# - Windows Update Cleanup
# - Temporary files
# - Recycle bin
# - Thumbnails
# - Delivery Optimization Files
# - Windows Error Reporting Files
# Нажимаем OK

# Запускаем очистку по сохранённому preset
cleanmgr /sagerun:1

# Можно добавить в планировщик на еженедельный запуск
schtasks /create /tn "Weekly Cleanup" /tr "cleanmgr /sagerun:1 /verylowdisk" /sc weekly /d SUN /st 03:00 /ru SYSTEM

6. Профили пользователей на RDS-сервере

На терминальных серверах самая агрессивная растущая папка — пользовательские профили. Особенно в C:\Users\*\AppData. Кэши Chrome/Edge, Teams, Outlook OST могут сожрать по 5–10 ГБ на одного пользователя.

# Топ-10 самых больших профилей
Get-ChildItem "C:\Users" -Directory | ForEach-Object {
  $size = (Get-ChildItem $_.FullName -Recurse -Force -ErrorAction SilentlyContinue |
           Measure-Object -Property Length -Sum).Sum / 1GB
  [PSCustomObject]@{Name=$_.Name; SizeGB=[math]::Round($size,2)}
} | Sort SizeGB -Descending | Select -First 10

# Удаление Temp-файлов у всех пользователей
Get-ChildItem "C:\Users" -Directory | ForEach-Object {
  $temp = "$($_.FullName)\AppData\Local\Temp"
  if (Test-Path $temp) {
    Remove-Item "$temp\*" -Recurse -Force -ErrorAction SilentlyContinue
  }
}

# Удаление старых профилей (не логинились > 90 дней)
Get-CimInstance Win32_UserProfile | Where-Object {
  $_.LastUseTime -lt (Get-Date).AddDays(-90) -and -not $_.Special -and -not $_.Loaded
} | Remove-CimInstance

7. Отключаем hiberfil.sys и уменьшаем pagefile

На сервере гибернация не нужна — файл C:\hiberfil.sys в 70% RAM просто занимает место. Отключаем:

powercfg /hibernate off
# Файл исчезнет, освободится 45 ГБ на сервере с 64 ГБ RAM

# Pagefile — если у вас 256 ГБ RAM, pagefile по умолчанию 256 ГБ
# Перенесём на отдельный диск D:
# Control Panel → System → Advanced system settings → Performance → Settings
# → Advanced → Virtual memory → Change
# Либо через powershell:
$pagefile = Get-WmiObject Win32_PageFileSetting
$pagefile.Name = "D:\pagefile.sys"
$pagefile.InitialSize = 8192
$pagefile.MaximumSize = 16384
$pagefile.Put()

8. Defender Scans History

# Очистка истории сканирования Defender
$defenderHistory = "C:\ProgramData\Microsoft\Windows Defender\Scans\History"
Remove-Item -Path "$defenderHistory\*" -Recurse -Force -ErrorAction SilentlyContinue

Скрипт полной автоочистки

Я всегда оставляю клиентам такой скрипт в C:\Scripts\ServerCleanup.ps1 и ставлю в Task Scheduler на еженедельное ночное выполнение:

# /Scripts/ServerCleanup.ps1
$LogFile = "C:\Scripts\cleanup-$(Get-Date -Format yyyyMMdd).log"
function Log($msg) { "$(Get-Date -Format 'HH:mm:ss') $msg" | Tee-Object -Append $LogFile }

Log "=== Cleanup start ==="

# WU cache
Stop-Service wuauserv, bits -Force
Remove-Item -Path "C:\Windows\SoftwareDistribution\Download\*" -Recurse -Force -ErrorAction SilentlyContinue
Start-Service wuauserv, bits
Log "Windows Update cache cleaned"

# Temp files
Remove-Item -Path "C:\Windows\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
Get-ChildItem "C:\Users" -Directory | ForEach-Object {
  Remove-Item "$($_.FullName)\AppData\Local\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
}
Log "Temp cleared"

# CBS logs
Stop-Service trustedinstaller -Force
Remove-Item -Path "C:\Windows\Logs\CBS\*" -Recurse -Force -ErrorAction SilentlyContinue
Start-Service trustedinstaller
Log "CBS cleaned"

# Defender
Remove-Item -Path "C:\ProgramData\Microsoft\Windows Defender\Scans\History\*" -Recurse -Force -ErrorAction SilentlyContinue
Log "Defender history cleaned"

# DISM
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /Quiet | Out-Null
Log "WinSxS cleaned"

# Диск после очистки
$drive = Get-PSDrive C
Log "Free: $([math]::Round($drive.Free/1GB,2)) GB / $([math]::Round(($drive.Used+$drive.Free)/1GB,2)) GB"
Log "=== Cleanup end ==="

Реальный кейс: освобождение 280 ГБ на терминальной ферме

В марте 2026 года к нам обратилась производственная компания — 3 терминальных сервера Windows Server 2019 на 60 пользователей каждый, диски C заполнены на 95–98%. Пользователи жаловались на медленную работу, периодически падал Outlook и Office.

Зашли по RDP на каждый сервер, разобрались по списку:

Итого на трёх серверах освободилось 280 ГБ. Диски C после очистки — 58%, 63%, 51% от заполнения. Пользователи отметили «заметно ускорился вход в сессию». Настроили автоматический скрипт очистки раз в неделю и алерт в Zabbix при > 80% заполнения. Работы заняли 3 часа, стоимость — 12 000 руб.

Типичные ошибки при очистке

Почистим и автоматизируем обслуживание Windows Server

Полная очистка диска C, настройка скриптов еженедельной автоочистки, мониторинг в Zabbix, обслуживание 1С-серверов и терминальных ферм. Работаем с Windows Server 2012R2/2016/2019/2022/2025 в составе ежемесячного сопровождения либо по разовому запросу.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы

Почему диск C на Windows Server постоянно забивается?
Главные виновники — кэш Windows Update (SoftwareDistribution), хранилище компонентов WinSxS, файлы CBS.log, установщики MSI в C:\Windows\Installer, профили пользователей с кэшем браузеров на RDS.
Безопасно ли чистить WinSxS?
Чистить через DISM с параметром /StartComponentCleanup — безопасно. Не удаляйте файлы руками. /ResetBase необратимо удаляет возможность отката обновлений.
Можно ли очистить SoftwareDistribution?
Да, останавливаете службу wuauserv, удаляете папку C:\Windows\SoftwareDistribution\Download, запускаете службу. Типично освобождается 5-20 ГБ.
Что такое CCMCache и когда его чистить?
CCMCache — кэш SCCM/MECM клиента в C:\Windows\ccmcache. Чистится через консоль SCCM Client (Control Panel → Configuration Manager → Cache → Delete).
Помогает ли cleanmgr на Server 2019+?
Да. В Windows Server 2019/2022 cleanmgr доступен по умолчанию. Команда cleanmgr /sagerun:1 после предварительной настройки /sageset:1 чистит системные файлы автоматически.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.