Короткий ответ
Сначала посмотрите, что заняло том: профили, дампы, IIS/WSUS, WinSxS, pagefile, не «удалить всё старше 30 дней в Windows». На контроллере домена нельзя трогать C:\Windows\NTDS, SYSVOL и живые журналы AD. Освободите несколько гигабайт безопасными кандидатами, затем разберитесь с ростом.
Ошибка 112 (нет места) на DC часто валит NTDS и SYSVOL — это уже недоступность каталога, не «надо почистить корзину».
Симптомы и как отличить
Get-Volumeпоказывает SizeRemaining около нуля на C:.- Службы падают, Windows Update не ставится, профиль не грузится.
- На DC: нет шары SYSVOL, LDAP нестабилен.
| Что заполнено | Не «просто C:» |
|---|---|
| Том данных SQL/файлов | чистите тот том, не WinSxS |
| Только после патча | WinSxS/CBS, обновления |
| Служба не стартует при ещё свободном диске | службы |
Возможные причины
- Дампы
C:\Windows\MEMORY.DMP,Minidump, IIS logsC:\inetpub\logs. - Компонентный склад WinSxS после патчей, оставшиеся rollback.
- WSUS
WsusContent, SCCM, старые установщики вC:\Windows\Installer(нельзя вырезать вслепую). - Профили на сервере с RDS.
- Теневые копии тома C:.
- Pagefile и hiberfil на маленьком C:.
- Кто-то перенёс данные пользователей на системный том.
Диагностика
На проблемном сервере (пример — DC01 или WS-042):
Get-Volume -DriveLetter C | Format-List DriveLetter, Size, SizeRemaining, FileSystem
Get-ChildItem C:\ -Force | Sort-Object { if ($_.PSIsContainer) { (Get-ChildItem $_.FullName -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum } else { $_.Length } } -Descending |
Select-Object -First 1Практичнее точечно:
Get-ChildItem C:\Windows -Force | Select-Object Name
Get-ChildItem C:\Windows\Logs\CBS -ErrorAction SilentlyContinue | Measure-Object Length -Sum
Get-ChildItem C:\Windows\Temp, C:\Temp -ErrorAction SilentlyContinue | Measure-Object Length -Sum
Get-ChildItem C:\Windows\Minidump, C:\Windows\MEMORY.DMP -ErrorAction SilentlyContinue |
Format-Table FullName, Length, LastWriteTimeWinSxS (оценка, не удаление):
Dism /Online /Cleanup-Image /AnalyzeComponentStoreНа DC дополнительно:
Get-SmbShare | Where-Object { $_.Name -in 'SYSVOL','NETLOGON' }
Get-Item C:\Windows\NTDS, C:\Windows\SYSVOL -ErrorAction SilentlyContinueНе копируйте ntds.dit «на другой диск поверх» при запущенном NTDS.
Решение
Сценарий A. Очевидный мусор
Кандидаты: MEMORY.DMP, старые minidump, C:\Windows\Temp, логи IIS старше политики хранения, экспортёры, забытые ISO.
Remove-Item C:\Windows\MEMORY.DMP -ErrorAction SilentlyContinueCBS-логи можно сжать/усечь копии, не всю подсистему обслуживания.
Сценарий B. WinSxS штатно
Dism /Online /Cleanup-Image /StartComponentCleanup/ResetBase убирает возможность удаления установленных пакетов. Делайте только когда место критично и rollback патчей уже не нужен.
Сценарий C. Теневые копии
vssadmin list shadowstorage
vssadmin list shadowsУменьшите лимит VSS для C: осмысленно, не delete shadows /all на сервере с единственной точкой отката без backup.
Сценарий D. DC, место кончилось, NTDS мёртв
Освободите C: безопасными файлами, затем:
Get-Service NTDS, DFSR, Netlogon
Start-Service NTDS, NetlogonЕсли база не монтируется — restore, не «сжать диск утилитой с форума». См. контроллер недоступен.
Сценарий E. Pagefile / гибернация
powercfg /h off на сервере без гибернации. Перенос pagefile — только с пониманием dump и квоты. Не ставьте pagefile=0 на DC.
Что мерить, прежде чем удалять
Постройте топ каталогов без сюрпризов WinSxS:
Get-ChildItem C:\inetpub\logs\LogFiles -Recurse -ErrorAction SilentlyContinue |
Measure-Object Length -Sum
Get-ChildItem 'C:\Windows\SoftwareDistribution\Download' -ErrorAction SilentlyContinue |
Measure-Object Length -Sum
Get-ChildItem C:\Users -Directory | ForEach-Object {
$sum = (Get-ChildItem $_.FullName -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum
[pscustomobject]@{ User = $_.Name; GB = [math]::Round(($sum / 1GB), 2) }
}WSUS на системном томе: контент живёт в WsusContent. Его чистят Decline + cleanup wizard, не Explorer. На DC WSUS держать не стоит: сначала место, потом вынос роли.
Дампы после BSOD занимают размер RAM. Если MEMORY.DMP 32 ГБ на диске 60 ГБ — это и есть авария «NTDS не стартует». Настройте малые dump, не полный, если полный crash dump вам не нужен каждый раз.
Теневые копии: vssadmin list shadowstorage с Used в десятки гигабайт на C: — уменьшите лимит, сохранив хотя бы одну точку, если нет внешнего backup. На контроллере домена теневая копия не заменяет system state.
После очистки не оставляйте 200 МБ «зелёных». Кумулятив 2022/2025 легко просит несколько гигабайт WinSxS плюс rollback. Цель — устойчивый запас и понимание, кто снова заполнит том завтра.
Как проверить, что проблема устранена
Get-Volume -DriveLetter C | Format-List SizeRemaining
Get-Service NTDS, DFSR, wuauserv -ErrorAction SilentlyContinueНа DC: шары SYSVOL на месте, dcdiag /test:Advertising. Windows Update больше не падает с 112. Оставьте запас (практически гигабайты, не «1% зелёный»).
Если не помогло
- C: снова забивается за сутки: найдите процесс (IIS, дампы, WSUS). Разовый DISM не лечит утечку логов.
- Занят
C:\Windows\Installer: это кэш MSI, удаление ломает Repair/Uninstall. Расширяйте том или переносите роли, не вырезайте GUID наугад. - Том NTFS повреждён:
chkdskв окно, не в боевой логон DC без плана. - Нужен постоянный запас — расширьте VHDX/LUN, не живите на 40 ГБ системном диске с WinSxS 2025 года.
Профилактика
- Алерт по свободному месту сильно раньше нуля.
- Логи IIS/приложений на отдельный том, ротация.
- NTDS и SYSVOL на томах с запасом; не складывать WSUS на DC.
- Перед патчем — место + проверка AD.
- Квоты профилей на RDS.
FAQ
Можно ли удалить папку NTDS.old или старый ntds.dit?
Только если это точно остаток после перемещения базы документированной процедурой и служба смотрит на новый путь. Иначе это ваша единственная копия.
Cleanmgr на Server безопасен?
Частично: дампы и Temporary files. Не отмечайте «Windows Update Cleanup» вслепую на DC в пятницу без отката.
Почему WinSxS «150 ГБ» и Analyze врёт?
Проводник считает жёсткие ссылки многократно. Верьте DISM AnalyzeComponentStore.
Стоит ли сжатие NTFS на C:\Windows?
Нет как метод спасения DC. CPU и сюрпризы обновлений.
Можно ли снести журналы Event Viewer, чтобы освободить место?
Файл Security.evtx на DC — аудит. Усекайте политикой размера, предварительно сняв копию, если идёт расследование. Не Clear-EventLog на всех журналах «для гигабайта».