TGViewer
Системный Администратор Windows Системный Администратор Windows @win_sysadmin · 3.09K subscribers
Post #72 3.22K
👋 Привет, админы!

Недавно столкнулся с ситуацией: на одном из серверов системный диск практически «забился» под завязку, а штатные чистилки мусора не помогали — свободного места оставалось критически мало. Оказалось, что куча старых файлов обновлений, временных логов и упаковок пакетов Windows Update съели не меньше 20 ГБ!

🔥 Чтобы оперативно и централизованно освободить место на C:, я использовал PowerShell-скрипт для сброса компонентов Windows Update и удаления временных файлов.


# 1. Остановим службы обновлений
Write-Host "Останавливаю службы Windows Update..." -ForegroundColor Cyan
Stop-Service -Name wuauserv -Force
Stop-Service -Name bits -Force
Stop-Service -Name cryptsvc -Force

# 2. Переименуем папки SoftwareDistribution и Catroot2 (чтобы сбросить кеш)
$sd = "C:\Windows\SoftwareDistribution"
$cr2 = "C:\Windows\System32\catroot2"
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
Write-Host "Переименовываю SoftwareDistribution и Catroot2..." -ForegroundColor Cyan
Rename-Item -Path $sd -NewName "SoftwareDistribution_$timestamp" -Force
Rename-Item -Path $cr2 -NewName "catroot2_$timestamp" -Force

# 3. Запустим службы обратно
Write-Host "Запускаю службы Windows Update..." -ForegroundColor Cyan
Start-Service -Name wuauserv
Start-Service -Name bits
Start-Service -Name cryptsvc

# 4. Удаляем временные файлы пользователя и систему temp
Write-Host "Удаляю временные файлы..." -ForegroundColor Cyan
Get-ChildItem "C:\Windows\Temp" -Recurse -Force | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
Get-ChildItem "$env:TEMP" -Recurse -Force | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue

# 5. Очищаем папку Prefetch (если нужно)
Write-Host "Очищаю Prefetch (опционально)..." -ForegroundColor Cyan
Get-ChildItem "C:\Windows\Prefetch" -Recurse -Force | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue

# 6. Запускаем анализ и дефрагментацию (для HDD/SDD команда отличается)
Write-Host "Запускаю оптимизацию диска (для HDD)..." -ForegroundColor Cyan
Optimize-Volume -DriveLetter C -ReTrim -Verbose

Write-Host "Готово! Освобождено место и сброшен кеш Windows Update." -ForegroundColor Green


🔍 Что делает скрипт:

1. Останавливает службы wuauserv, bits и cryptsvc, чтобы освободить доступ к файлам обновлений.
2. Переименовывает папки SoftwareDistribution и catroot2 — таким образом Windows создаёт новые «чистые» папки при следующем запуске службы обновлений.
3. Перезапускает службы, чтобы система могла продолжить получать обновления.
4. Удаляет старые временные файлы из C:\Windows\Temp и из переменной %TEMP% текущего пользователя.
5. (Опционально) Очищает папку Prefetch — пригодится, если вы хотите сбросить предзагрузку приложений (иногда помогает ускорить старт служб).
6. Запускает командлет Optimize-Volume с параметром –ReTrim (важно для SSD, если нужно, или дефрагментацию для HDD), что в итоге дополнительно освобождает свободное пространство и приводит метаданные диска в порядок.

💡 Лайфхак:

* Если вы работаете со множеством серверов, оберните этот скрипт в экспорт модуля или сохраните в виде .ps1, а затем запускайте его через Scheduled Task по расписанию раз в неделю/месяц.
* Можно добавить проверку свободного места перед выполнением очистки, чтобы скрипт запускался, только когда доступно меньше, скажем, 10 ГБ:


$freeGB = [math]::Round((Get-PSDrive -Name C).Free / 1GB, 2)
if ($freeGB -lt 10) {
# выполняем очистку
} else {
Write-Host "Достаточно места — пропускаю действия."
}

* Не забывайте тестировать на тестовых окружениях перед тем, как развертывать на продакшне.

💬 А как вы решаете проблему нехватки места на C:? Используете ли свои скрипты или предпочитаете готовые инструменты вроде CCleaner, TreeSize, WinDirStat, а может, связку PowerShell + SCCM/MDT? Делитесь в комментах своими рецептами!

👉 @win_sysadmin
  • 👍 9
  • ❤ 7
  • 🔥 5
More from @win_sysadmin
  1. Sep 29, 2026👋 Привет, админы! Однажды словил интересный баг с WinRM на новых машинах в домене. После…
  2. Sep 24, 2026👋 Привет, админы! Иногда нужно быстро понять — кто и когда логинился на сервер или важную…
  3. Sep 21, 2026👋 Привет, админы! Из жизни. На продакшн-сервере упал веб-сервис, выяснилось, что SSL-серт…
  4. Sep 16, 2026👋 Привет, админы! Сегодня расскажу про простой, но очень полезный трюк, который помогает…
  5. Sep 14, 2026👋 Привет, админы! На прошлой неделе в нашем кластере файловых серверов неожиданно начал б…
  6. Sep 11, 2026👋 Привет, админы! Как быстро проверить, какие пользователи имеют права администратора на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →