Короткий ответ

Сначала посмотрите, что заняло том: профили, дампы, 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, обновления
Служба не стартует при ещё свободном дискеслужбы

Возможные причины

  1. Дампы C:\Windows\MEMORY.DMP, Minidump, IIS logs C:\inetpub\logs.
  2. Компонентный склад WinSxS после патчей, оставшиеся rollback.
  3. WSUS WsusContent, SCCM, старые установщики в C:\Windows\Installer (нельзя вырезать вслепую).
  4. Профили на сервере с RDS.
  5. Теневые копии тома C:.
  6. Pagefile и hiberfil на маленьком C:.
  7. Кто-то перенёс данные пользователей на системный том.

Диагностика

На проблемном сервере (пример — 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, LastWriteTime

WinSxS (оценка, не удаление):

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 SilentlyContinue

CBS-логи можно сжать/усечь копии, не всю подсистему обслуживания.

Сценарий 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 на всех журналах «для гигабайта».