Очистка Microsoft Windows от мусора и ненужных файлов перед полным бэкапом

Clean Windows

Введение

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

  • Очистка корзины, временных папок, папки Prefetch
  • Удаление устаревших пакетов обновлений (WinSxS) через DISM и планировщик заданий
  • Очистка папок SoftwareDistribution и Installer PatchCache
  • Запуск средства проверки системных файлов (SFC)
  • Очистка кешей браузеров Microsoft Edge, Google Chrome и Yandex Browser

Требования

  • Windows 10/11/12 или Windows Server 2012+
  • Запуск PowerShell от имени администратора
  • Права на создание и выполнение заданий в Планировщике задач

Скрипт очистки (Cleanup-Windows.ps1)

<#
.SYNOPSIS
Комплексная очистка Windows перед резервным копированием
.DESCRIPTION
Скрипт удаляет временные файлы, очищает хранилище компонентов,
удаляет кеши браузеров Edge, Chrome, Yandex и выполняет проверку системных файлов.
.NOTES
Author: Mikhail Deynekin
Site: https://deynekin.com
Email: mid1977@gmail.com
#>


# Проверка запуска от администратора
If (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Error "Запустите скрипт от имени администратора."
Exit 1
}

# Функция: Очистка заданных путей
Function Clear-Paths {
Param([string[]]$Paths)
foreach ($p in $Paths) {
If (Test-Path $p) {
Remove-Item -Path $p\* -Recurse -Force -ErrorAction SilentlyContinue
}
}
}

# 1. Очистка корзины
$shell = New-Object -ComObject Shell.Application
$recycle = $shell.Namespace(0xA)
$recycle.Items() | ForEach-Object { Remove-Item $_.Path -Recurse -Force -ErrorAction SilentlyContinue }

# 2. Очистка временных папок и Prefetch
$tempPaths = @(
"$env:WinDir\Temp",
"$env:LocalAppData\Temp",
"$env:Temp",
"$env:WinDir\Prefetch"
)
Clear-Paths -Paths $tempPaths

# 3. Удаление SoftwareDistribution и PatchCache
Clear-Paths -Paths @("$env:WinDir\SoftwareDistribution","$env:WinDir\Installer\$PatchCache$")

# 4. Оптимизация хранилища компонентов WinSxS
# Запуск через планировщик (StartComponentCleanup)
schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"
# Запуск DISM команд
$dism = "Dism.exe"
& $dism /Online /Cleanup-Image /StartComponentCleanup
& $dism /Online /Cleanup-Image /SPSuperseded
& $dism /Online /Cleanup-Image /AnalyzeComponentStore
& $dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase

# 5. Очистка кешей браузеров
Function Clear-BrowserCache {
Param([string]$UserProfile)
# Chrome
$chrome = "$UserProfile\AppData\Local\Google\Chrome\User Data\Default"
"Cache","Cache2\entries","Cookies","History","Media Cache" | ForEach-Object {
Remove-Item -Path "$chrome\$_\*" -Recurse -Force -ErrorAction SilentlyContinue
}
# Edge (Chromium)
$edge = "$UserProfile\AppData\Local\Microsoft\Edge\User Data\Default"
"Cache","Cache2\entries","Cookies","History","Media Cache" | ForEach-Object {
Remove-Item -Path "$edge\$_\*" -Recurse -Force -ErrorAction SilentlyContinue
}
# Yandex
$yandex = "$UserProfile\AppData\Local\Yandex\YandexBrowser\User Data\Default"
"Cache","Code Cache","Media Cache" | ForEach-Object {
Remove-Item -Path "$yandex\$_\*" -Recurse -Force -ErrorAction SilentlyContinue
}
}

Get-ChildItem C:\Users -Directory | Where-Object {
$_.Name -notin @('Public','Default','Default User')
} | ForEach-Object {
Clear-BrowserCache -UserProfile $_.FullName
}

# 6. Проверка целостности системных файлов
sfc /scannow | Out-Host

Write-Host "Очистка завершена. Рекомендуется перезагрузить систему перед резервным копированием." -ForegroundColor Green

Примечания по запуску скрипта

1. Скрипт необходимо выполнять от имени администратора

Для успешного резервного копирования и восстановления папки активации SPP store PowerShell должен иметь права администратора. Запустите PowerShell через «Запуск от имени администратора» перед выполнением скрипта.

2. Разрешение выполнения скриптов (Execution Policy)

Если при попытке запуска скрипта появляется ошибка вида:

Cleanup-Windows.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies

то выполните следующие шаги в PowerShell от имени администратора:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

После этого политика выполнения будет ослаблена для текущего пользователя, и скрипт запустится без ошибок.

Рекомендации по использованию

  1. Предварительная настройка cleanmgr: при первом запуске можно вручную выполнить
    cleanmgr.exe /sageset:1
    и выбрать нужные опции, затем скрипт автоматически запустит cleanmgr /sagerun:1.
  2. Плановое выполнение: добавьте этот скрипт в Планировщик задач, чтобы автоматически очищать систему ежемесячно.
  3. Мониторинг: при частом недоступе дискового пространства можно увеличить частоту запуска.

Заключение

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

  1. https://community.immy.bot/t/disk-cleanup-via-powershell/1440
  2. https://forums.powershell.org/t/automating-disk-cleanup-need-help/20720
  3. https://prosystech.nl/powershell-clean-up-hard-drive-c/
  4. https://www.reddit.com/r/PowerShell/comments/1bm3ewg/script_for_disk_cleanup/
  5. https://stackoverflow.com/questions/28852786/automate-process-of-disk-cleanup-cleanmgr-exe-without-user-intervention
  6. https://woshub.com/how-to-clean-up-and-compress-winsxs-folder-in-windows-8/
  7. https://www.powershellgallery.com/packages/ComputerCleanup/1.2.0/Content/Public%5CClear-BrowserCache.ps1
  8. https://www.youtube.com/watch?v=poTHnK1aEM0
  9. https://www.resize-c.com/howto/windows-server-2012-r2-disk-cleanup-powershell.html
  10. https://bobcares.com/blog/clean-up-and-compress-winsxs-folder-on-windows-server-windows-10/
  11. https://www.ninjaone.com/script-hub/clear-browser-cache-with-powershell/
  12. https://www.youtube.com/watch?v=Wn3lr1Vp0do
  13. https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/automating-disk-cleanup-in-azure-using-powershell-azure-resource-graph-and-lasto/4207185
  14. https://www.reddit.com/r/ImpMSNews/comments/1mcdh6d/how_to_analyse_and_clean_up_component_store/
  15. https://gist.github.com/mark05e/745afaf5604487b804ede2cdc38a977f
  16. https://www.youtube.com/watch?v=0COK00wIVzY
  17. https://www.hp.com/us-en/shop/tech-takes/how-to-use-disk-cleanup-windows-10
  18. https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/clean-up-the-winsxs-folder?view=windows-11
  19. https://www.reddit.com/r/sysadmin/comments/11s5r2s/powershell_script_to_programmatically_clear_edge/
  20. https://www.youtube.com/watch?v=_ERPi4Sqyz0
  21. https://github.com/anst-foto/Broom
  22. https://www.2-spyware.com/remove-yandex-browser.html
  23. https://www.powershellgallery.com/packages/ComputerCleanup/1.1.5/Content/Public%5CClear-BrowserCache.ps1
  24. https://cbchelpme.com/2024/09/14/powershell-script-to-automatically-delete-temp-files/
  25. https://www.ninjaone.com/blog/how-to-analyze-the-component-store/
  26. https://eurohoster.org/en/knowledgebase/1258/How+to+clear+the+site+cache+in+the+browser.html
  27. https://www.youtube.com/watch?v=XB8I0Or4BcQ
  28. https://patrickdomingues.com/2024/07/29/how-to-automate-disk-cleanup-with-powershell/
  29. https://www.geeksforgeeks.org/linux-unix/disk-cleanup-using-powershell-scripts/
  30. https://www.hexnode.com/mobile-device-management/help/script-to-clear-browser-cache-on-windows-devices/
  31. https://devblogs.microsoft.com/scripting/weekend-scripter-use-powershell-to-clean-out-temp-folders/
  32. https://www.reddit.com/r/windows/comments/aou6tc/powershell_commands_like_dism_cleanup_and_other/
  33. https://support.microsoft.com/en-us/topic/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system-files-79aa86cb-ca52-166a-92a3-966e85d4094e
  34. https://support.microsoft.com/ru-ru/topic/%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B8-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D1%85-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2-%D0%B4%D0%BB%D1%8F-%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B8%D1%85-%D0%B8%D0%BB%D0%B8-%D0%BF%D0%BE%D0%B2%D1%80%D0%B5%D0%B6%D0%B4%D0%B5%D0%BD%D0%BD%D1%8B%D1%85-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D1%85-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2-79aa86cb-ca52-166a-92a3-966e85d4094e
  35. https://www.dell.com/support/kbdoc/en-tm/000126064/how-do-i-run-the-system-file-checker-in-microsoft-windows
  36. https://www.reddit.com/r/sysadmin/comments/147sbty/does_sfc_have_a_powershell_equivalent/
  37. https://www.youtube.com/watch?v=7KOMhjgW6j0
  38. https://www.blueskysystems.co.uk/about-us/knowledge-base/windows/windows-scripts-or-powershell/clean-winsxs-folder-on-remote-machines
  39. https://www.ninjaone.com/blog/use-system-file-checker-to-repair-system-files/
  40. https://sigmaos.com/tips/browsers/how-to-clear-cache-on-yandex-browser
  41. https://winbuzzer.com/2024/01/04/restore-windows-corrupted-files-using-sfc-scannow-xcxwbt/
  42. https://www.milesweb.com/hosting-faqs/cleanup-of-unused-files-under-the-winsxs-folder/
  43. https://browser.yandex.com/help/en/personal-data-protection/cache-memory
  44. https://gigperformer.com/docs/ultimate-guide-to-optimize-windows-for-stage/systemfilechecker.html
  45. https://yandex.ru/support/common/ru/browsers-settings/cache

Добавить комментарий

Разработка и продвижение сайтов webseed.ru
Прокрутить вверх