Со временем компьютер забивается: временные файлы, кэш, остатки от программ, которые вы уже удалили — всё это копится и реально тормозит систему. Особенно заметно на машинах с небольшим SSD — место заканчивается быстро, а вместе с этим начинаются задержки при запуске, при обновлении, при записи файлов. Самый простой выход — не чистить вручную, а настроить автоматическую очистку по расписанию. Планировщик задач Windows прекрасно с этим справляется, и вам не нужно ставить сторонние утилиты вроде CCleaner — хотя о них я тоже скажу пару слов.
- Зачем вообще автоматизировать
- Подготовка: что нужно очищать и где это лежит
- Создание скрипта для очистки на основе PowerShell
- Базовый PowerShell-скрипт
- Если хотите ещё и корзину на всех дисках
- Как добавить скрипт в планировщик задач
- Альтернативный вариант: через командную строку
- Сравнение подходов
- Что выбрать в зависимости от вашей ситуации
- Частые ошибки при настройке
- Рекомендации: как лучше сделать
- Что делать, если задача не запускается
- Итог
01Зачем вообще автоматизировать
Если вы заходите раз в пару дней и вручную нажимаете «Очистить корзину» и «Удалить временные файлы» — скорее всего, вы делаете это не так часто, как нужно. Корзина может раздуться до десятков гигабайт, особенно если вы работаете с видео или тяжёлыми проектами. Папка Temp тоже любит разрастаться: некоторые программы создают временные файлы, но забывают их удалять.
Автоматизация решает несколько задач:
- Освобождается место на диске без вашего участия.
- Система работает стабильнее — нет конфликтов при обновлениях из-за нехватки места.
- Вы перестаёте об этом думать.
02Подготовка: что нужно очищать и где это лежит
Прежде чем пихать команды в планировщик, надо понять, что именно мы будем чистить. Вот основные цели:
- Корзина — по умолнию хранит удалённые файлы и может занимать значительный объём диска.
- Временные файлы Windows — обычно в C:\Windows\Temp.
- Пользовательские временные файлы — в %USERPROFILE%\AppData\Local\Temp.
- Кэш браузеров — если хотите освобождать ещё больше места.
- Файл гибернации — если не используете гибернацию, его можно удалять (это сэкономит несколько гигабайт).
- Папка загрузок — не удалять всё, но можно настроить удаление старых файлов, которым больше 30 дней.
03Создание скрипта для очистки на основе PowerShell
Почему именно он? Командная строка умеет очищать корзину через команду Clear-RecycleBin — это быстро и без лишних заморочек. А PowerShell даёт больше гибкости для работы с временными файлами, потому что там просто написать условия и исключения.
Базовый PowerShell-скрипт
Скопируйте этот текст в Блокнот и сохраните с расширением .ps1. Например, cleanup.ps1:
# Очищаем корзину текущего пользователя
Clear-RecycleBin -Force -ErrorAction SilentlyContinue
# Удаляем временные файлы Windows старше 1 дня
Get-ChildItem -Path "env:TEMP" -Recurse -Force -ErrorAction SilentlyContinue | Where-Object_.LastWriteTime -lt (Get-Date).AddDays(-1) } | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
# Удаляем системные временные файлы старше 1 дня
Get-ChildItem -Path "C:\Windows\Temp" -Recurse -Force -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-1) } | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
# Очищаем кэш обновлений Windows (если нужно)
Get-ChildItem -Path "C:\Windows\SoftwareDistribution\Download" -Recurse -Force -ErrorAction SilentlyContinue | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue Что здесь происходит: мы очищаем корзину без запроса подтверждения, удаляем из Temp всё, что старше 24 часов, и делаем то же самое для системной папки Temp. Параметр -ErrorAction SilentlyContinue нужен, чтобы скрипт не падал на заблокированных файлах — некоторые процессы держат временные файлы заблокированными, и удалять их всё равно нельзя.
Если хотите ещё и корзину на всех дисках
Базовая команда очищает корзину для текущего пользователя на всех дисках, но если у вас несколько учётных записей или вы хотите гарантированно почистить всё — можно добавить более агрессивный вариант:
# PowerShell-скрипт для расширенной очистки
# Создайте файл cleanup-advanced.ps1
# 1. Корзина на всех дисках
$shell = New-Object -ComObject Shell.Application
rb =shell.NameSpace(0x0a)
rb.Items() | ForEach-Object Remove-Item -Path_.Path -Recurse -Force -ErrorAction SilentlyContinue }
# 2. Пользовательский Temp
$tempPath = [System.IO.Path]::GetTempPath()
Get-ChildItem -Path tempPath -Recurse -Force -ErrorAction SilentlyContinue | Where-Object_.LastWriteTime -lt (Get-Date).AddDays(-1) } | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
# 3. Системный Temp
Get-ChildItem -Path "C:\Windows\Temp" -Recurse -Force -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-1) } | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
# 4. Prefetch
Get-ChildItem -Path "C:\Windows\Prefetch" -Force -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue
# 5. Недавние файлы (Recent Items)
Get-ChildItem -Path "$env:APPDATA\Microsoft\Windows\Recent" -Force -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue
# 6. Кэш缩略图 (Thumbnail Cache)
Get-ChildItem -Path "$env:LOCALAPPDATA\Microsoft\Windows\Explorer" -Filter "thumbcache_*" -Force -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue Этот скрипт обширнее: он чистит не только Temp и корзину, но и prefetch-файлы, недавние документы, кэш миниатюр проводника. Это совершенно безопасно — все эти данные генерируются заново при необходимости.
04Как добавить скрипт в планировщик задач
Теперь самое интересное — настроим автоматический запуск. Откройте «Планировщик заданий» (Task Scheduler) через поиск или командой taskschd.msc.
- В правой панели выберите «Создать задачу» (Create Task), а не «Создать простую задачу» — там меньше настроек.
- На вкладке «Общие» дайте задаче понятное имя, например «Автоочистка диска».
- Поставьте галочку «Выполнять с наивысшими привилегиями» — иначн корзина может не почиститься.
- На вкладке «Триггеры» нажмите «Создать» и выберите расписание. Рекомендую еженедельно в 3 часа ночи — в это время компьютер обычно простаивает.
- На вкладке «Действия» нажмите «Создать».
В поле «Программа или скрипт» введите:
powershell.exe В поле «Добавить аргументы»:
-NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\cleanup.ps1" Путь к скрипту укажите тот, где вы сохранили файл. Параметр -ExecutionPolicy Bypass обходит ограничения на запуск скриптов — без него Windows может заблокировать выполнение. -NoProfile ускоряет запуск, не загружая профиль пользователя.
- На вкладке «Условия» уберите галочку «Выполнять только при питании от сети», если у вас ноутбук и вы хотите, чтобы очистка срабатывала и от батареи.
- На вкладке «Параметры» можно поставить «При опоздании запускать как можно скорее», чтобы задача не пропускалась, если компьютер был выключен.
Нажмите ОК. Задача сохранена. Хотите проверить — нажмите правой кнопкой и выберите «Выполнить».
05Альтернативный вариант: через командную строку
Если PowerShell кажется избыточным, можно использовать штатную утилиту cleanmgr (Disk Cleanup) с параметрами командной строки:
cleanmgr /sagerun:1 Предварительно нужно один раз настроить параметры:
- Запустите
cleanmgr /sageset:1— откроется окно с чекбоксами. - Отметьте всё, что хотите очищать: временные файлы, корзину, кэш обновлений, файлы дампа памяти, и т.д.
- Нажмите ОК. Настройки сохраняются в реестре под номером 1.
- Теперь
cleanmgr /sagerun:1будет запускать очистку автоматически, без окон и запросов.
Добавить в планировщик ещё проще: программа cleanmgr, аргументы /sagerun:1. Но этот метод менее гибкий — вы не сможете задать условия вроде «удалять только файлы старше N дней».
06Сравнение подходов
| Критерий | PowerShell-скрипт | cleanmgr /sagerun | Сторонние утилиты |
|---|---|---|---|
| Гибкость | Высокая — любые папки, любые условия | Низкая — только то, что есть в списке | Средняя — зависит от программы |
| Безопасность | Зависит от вас: можно случайно удалить лишнее | Высокая — штатный механизм Windows | Разная, есть риск перейти на мусорные программы |
| Необходимость настройки | Нужно написать или скопировать скрипт | Один раз нажать чекбоксы | Установить и настроить программу |
| Контроль над логикой | Полный | Минимальный | Частичный |
| Подходит для нескольких пользователей | Да, если настроить права | Нет — настройки для каждого пользователя отдельно | Зависит от программы |
07Что выбрать в зависимости от вашей ситуации
У вас один компьютер, вы не хотите заморачиваться со скриптами. Используйте cleanmgr /sagerun:1 через планировщик. Настроили один раз — и забыли. Места освободится достаточно, система будет чувствовать себя бодрее.
Хотите тонко настроить, что именно чистится и по каким правилам. PowerShell-скрипт — ваш выбор. Можно добавить очистку кэша конкретного браузера, удаление логов определённых программ, архивирование старых файлов.
У вас несколько компьютеров дома или в офисе. Скрипт PowerShell, запускаемый через планировщик от имени администратора, проще всего развернуть на нескольких машинах — скопируйте один файл.
Вы не уверены, что не навредите себе скриптом. Начните со встроенной функции очистки диска. Это безопаснее, и вы не сможете случайно удалить что-то нужное.
08Частые ошибки при настройке
Запуск без прав администратора. Если задача запускается от обычного пользователя, корзина может не очиститься, а доступ к системной папке Temp будет ограничен. Всегда ставьте галочку «Выполнять с наивысшими привилегиями».
Удаление всего из Temp без фильтра по возрасту. Если удалить все файлы из Temp, включая те, которые созданы сегодня используемой программой, — программа может аварийно завершиться. Всегда добавляйте условие по дате: удалять только то, что не трогали больше суток.
Использование сторонних «оптимизаторов» с сомнительной репутацией. Многие из них не только чистят мусор, но и могут удалить нужные файлы, изменить настройки системы, а некоторые ещё и показывают навязчивую рекламу. Если и использовать — то только проверенные утилиты с хорошими отзывами.
09Рекомендации: как лучше сделать
- Храните скрипты в одном месте, например
C:\Scripts\. Не разбрасывайте по рабочему столу. - Перед первым запуском сделайте точку восстановления — на всякий случай.
- Проводите тестовый запуск вручную и проверьте, что удалилось. Если что-то важное пропало — скорректируйте скрипт.
- Не ставьте очистку слишком часто — еженедельно достаточно. Ежедневная очистка нужна только если вы постоянно работаете с огромными объёмами данных.
- Добавьте в скрипт логирование — хотя бы запись времени последнего выполнения в текстовый файл, чтобы видеть, что задача реально срабатывает.
Пример простого логирования в конец скрипта:
$logPath = "C:\Scripts\cleanup.log"
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Add-Content -Path logPath -Value "timestamp - Очистка выполнена" 10Что делать, если задача не запускается
Самая частая причина — политика выполнения скриптов. Если вы не добавили -ExecutionPolicy Bypass в аргументы, Windows заблокирует скрипт. Вторая причина — путь к скрипту содержит пробелы. В этом случае заключите путь в кавычки:
-File "C:\My Scripts\cleanup.ps1" Третья причина — антивирус. Некоторые антивирусы блокируют PowerShell-скрипты. Если после запуска ничего не происходит и в журнале нет записей — проверьте журнал антивируса.
11Итог
Настроить автоматическую очистку корзины и временных файлов через планировщик задач — дело на 10–15 минут. Если вы не хотите углубляться в скрипты — используйте cleanmgr /sagerun:1. Если нужен контроль и гибкость — напишите PowerShell-скрипт по примеру выше. Главное — не забывать про права администратора и фильтр по возрасту файлов в Temp-папках. После первой же недели вы заметите, что на диске появилось свободное место, а система стала отзывчивее.
Проверяем сообщения об ошибках и отмечаем существенные исправления в материале.


