
Введение
Перед выполнением полного резервного копирования системы 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После этого политика выполнения будет ослаблена для текущего пользователя, и скрипт запустится без ошибок.
Рекомендации по использованию
- Предварительная настройка cleanmgr: при первом запуске можно вручную выполнить
cleanmgr.exe /sageset:1
и выбрать нужные опции, затем скрипт автоматически запуститcleanmgr /sagerun:1. - Плановое выполнение: добавьте этот скрипт в Планировщик задач, чтобы автоматически очищать систему ежемесячно.
- Мониторинг: при частом недоступе дискового пространства можно увеличить частоту запуска.
Заключение
Комплексная очистка системы перед полным бэкапом позволит значительно снизить размер резервной копии, избавиться от устаревших и временных файлов, а также обеспечить целостность системных компонентов. После выполнения скрипта рекомендуется перезагрузить компьютер и проверить стабильность работы ключевых приложений.
- https://community.immy.bot/t/disk-cleanup-via-powershell/1440
- https://forums.powershell.org/t/automating-disk-cleanup-need-help/20720
- https://prosystech.nl/powershell-clean-up-hard-drive-c/
- https://www.reddit.com/r/PowerShell/comments/1bm3ewg/script_for_disk_cleanup/
- https://stackoverflow.com/questions/28852786/automate-process-of-disk-cleanup-cleanmgr-exe-without-user-intervention
- https://woshub.com/how-to-clean-up-and-compress-winsxs-folder-in-windows-8/
- https://www.powershellgallery.com/packages/ComputerCleanup/1.2.0/Content/Public%5CClear-BrowserCache.ps1
- https://www.youtube.com/watch?v=poTHnK1aEM0
- https://www.resize-c.com/howto/windows-server-2012-r2-disk-cleanup-powershell.html
- https://bobcares.com/blog/clean-up-and-compress-winsxs-folder-on-windows-server-windows-10/
- https://www.ninjaone.com/script-hub/clear-browser-cache-with-powershell/
- https://www.youtube.com/watch?v=Wn3lr1Vp0do
- https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/automating-disk-cleanup-in-azure-using-powershell-azure-resource-graph-and-lasto/4207185
- https://www.reddit.com/r/ImpMSNews/comments/1mcdh6d/how_to_analyse_and_clean_up_component_store/
- https://gist.github.com/mark05e/745afaf5604487b804ede2cdc38a977f
- https://www.youtube.com/watch?v=0COK00wIVzY
- https://www.hp.com/us-en/shop/tech-takes/how-to-use-disk-cleanup-windows-10
- https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/clean-up-the-winsxs-folder?view=windows-11
- https://www.reddit.com/r/sysadmin/comments/11s5r2s/powershell_script_to_programmatically_clear_edge/
- https://www.youtube.com/watch?v=_ERPi4Sqyz0
- https://github.com/anst-foto/Broom
- https://www.2-spyware.com/remove-yandex-browser.html
- https://www.powershellgallery.com/packages/ComputerCleanup/1.1.5/Content/Public%5CClear-BrowserCache.ps1
- https://cbchelpme.com/2024/09/14/powershell-script-to-automatically-delete-temp-files/
- https://www.ninjaone.com/blog/how-to-analyze-the-component-store/
- https://eurohoster.org/en/knowledgebase/1258/How+to+clear+the+site+cache+in+the+browser.html
- https://www.youtube.com/watch?v=XB8I0Or4BcQ
- https://patrickdomingues.com/2024/07/29/how-to-automate-disk-cleanup-with-powershell/
- https://www.geeksforgeeks.org/linux-unix/disk-cleanup-using-powershell-scripts/
- https://www.hexnode.com/mobile-device-management/help/script-to-clear-browser-cache-on-windows-devices/
- https://devblogs.microsoft.com/scripting/weekend-scripter-use-powershell-to-clean-out-temp-folders/
- https://www.reddit.com/r/windows/comments/aou6tc/powershell_commands_like_dism_cleanup_and_other/
- 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
- 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
- https://www.dell.com/support/kbdoc/en-tm/000126064/how-do-i-run-the-system-file-checker-in-microsoft-windows
- https://www.reddit.com/r/sysadmin/comments/147sbty/does_sfc_have_a_powershell_equivalent/
- https://www.youtube.com/watch?v=7KOMhjgW6j0
- https://www.blueskysystems.co.uk/about-us/knowledge-base/windows/windows-scripts-or-powershell/clean-winsxs-folder-on-remote-machines
- https://www.ninjaone.com/blog/use-system-file-checker-to-repair-system-files/
- https://sigmaos.com/tips/browsers/how-to-clear-cache-on-yandex-browser
- https://winbuzzer.com/2024/01/04/restore-windows-corrupted-files-using-sfc-scannow-xcxwbt/
- https://www.milesweb.com/hosting-faqs/cleanup-of-unused-files-under-the-winsxs-folder/
- https://browser.yandex.com/help/en/personal-data-protection/cache-memory
- https://gigperformer.com/docs/ultimate-guide-to-optimize-windows-for-stage/systemfilechecker.html
- https://yandex.ru/support/common/ru/browsers-settings/cache