Планировщик заданий
Планировщик заданий (англ. Task Scheduler) — компонент операционных систем семейства Microsoft Windows, предназначенный для автоматического запуска программ, скриптов или выполнения других действий по расписанию, при наступлении определённых событий или при выполнении заданных условий. Планировщик заданий входит в состав стандартных средств администрирования системы и позволяет автоматизировать рутинные операции, такие как обновление программного обеспечения, резервное копирование, очистка временных файлов и отправка отчётов.
История
Ранние версии
Впервые планировщик заданий появился в Windows 95 в составе дополнения Microsoft Plus! под названием System Agent. Он предоставлял базовые возможности для запуска программ по расписанию и имел простой графический интерфейс. В Windows 98 и Windows Me планировщик заданий стал встроенным компонентом системы, но его функциональность оставалась ограниченной: поддерживались только простые временные триггеры и один тип действия — запуск приложения.
Windows NT и Windows 2000
В Windows NT 4.0 и Windows 2000 планировщик заданий был переработан и получил название Task Scheduler 1.0. Он использовал службу (сервис) для выполнения заданий и хранил их в специальном файле с расширением .job. Однако управление заданиями осуществлялось через оснастку MMC (Microsoft Management Console), что усложняло работу для обычных пользователей. В этой версии появилась возможность задавать сложные расписания, включая ежедневный, еженедельный и ежемесячный запуск.
Windows Vista и более поздние версии
Начиная с Windows Vista (и в последующих версиях, включая Windows 7, 8, 10 и 11) планировщик заданий был полностью переписан и получил название Task Scheduler 2.0. Основные изменения включали:
- Новое хранилище заданий: задания стали храниться в XML-формате в папке
%SystemRoot%\System32\Tasks. - Расширенная система триггеров: помимо временных расписаний, появилась возможность запуска заданий при событиях в журнале Windows, при подключении или отключении пользователя, при блокировке или разблокировке рабочей станции, при изменении состояния системы (например, при переходе в режим питания от батареи).
- Условия и действия: добавлена возможность задавать условия выполнения (например, запускать задание только при простое компьютера или при наличии подключения к сети) и выполнять несколько действий в одном задании.
- Интеграция с системой безопасности: задания могут выполняться от имени определённого пользователя или системной учётной записи, с возможностью настройки прав доступа.
Устройство и характеристики
Архитектура
Планировщик заданий состоит из двух основных компонентов:
- Служба Task Scheduler (файл
svchost.exeс именем службыSchedule), которая работает в фоновом режиме и отвечает за хранение заданий, проверку триггеров и выполнение действий. - Оснастка консоли управления (файл
taskschd.msc), предоставляющая графический интерфейс для создания, просмотра, редактирования и удаления заданий.
Структура задания
Каждое задание в планировщике состоит из нескольких обязательных и опциональных элементов:
- Триггеры (Triggers): условия, при которых задание должно быть запущено. Типы триггеров:
- По расписанию (однократно, ежедневно, еженедельно, ежемесячно).
- При запуске системы.
- При входе пользователя в систему.
- При наступлении определённого события в журнале Windows.
- При подключении или отключении устройства.
- При изменении состояния питания (переход на батарею или от сети).
- Действия (Actions): операции, выполняемые при срабатывании триггера. Основные типы действий:
- Запуск программы или скрипта.
- Отправка электронного письма (устаревшая функция, не рекомендуется к использованию).
- Отображение сообщения (устаревшая функция).
- Условия (Conditions): дополнительные проверки, которые должны быть выполнены перед запуском задания. Например:
- Запускать только при простое компьютера.
- Запускать только при наличии подключения к сети.
- Запускать только при питании от сети (не от батареи).
- Настройки (Settings): параметры, управляющие поведением задания после запуска. Например:
- Разрешить выполнение по требованию.
- Запускать задание как можно скорее после пропущенного запланированного запуска.
- Останавливать задание, если оно выполняется дольше указанного времени.
- Не запускать новое задание, если предыдущее ещё выполняется.
Хранение и безопасность
Задания хранятся в файловой системе в виде XML-файлов в папке %SystemRoot%\System32\Tasks. Каждое задание имеет собственный идентификатор безопасности (SID), что позволяет разграничивать права доступа. Для выполнения заданий с повышенными привилегиями используется учётная запись SYSTEM или учётная запись администратора. Планировщик заданий также поддерживает выполнение заданий в контексте учётной записи текущего пользователя.
Применение
Системные задачи
Планировщик заданий используется операционной системой для выполнения множества фоновых задач, включая:
- Автоматическое обновление Windows и других компонентов.
- Дефрагментация дисков по расписанию.
- Создание точек восстановления системы.
- Очистка временных файлов (средство «Очистка диска»).
- Сбор и отправка диагностических данных (телеметрия).
Пользовательские задачи
Пользователи могут создавать собственные задания для автоматизации повседневных операций:
- Запуск антивирусного сканирования в определённое время.
- Резервное копирование важных папок или файлов.
- Отправка отчётов по электронной почте (через скрипты).
- Запуск программ, которые должны работать в определённое время (например, будильник или напоминание).
- Автоматический запуск скриптов PowerShell или командных файлов.
Корпоративное использование
В корпоративной среде планировщик заданий широко применяется для:
- Развёртывания и обновления программного обеспечения на множестве компьютеров.
- Сбора инвентаризационных данных.
- Запуска задач обслуживания серверов (например, очистка журналов событий).
- Выполнения заданий по расписанию в составе групповых политик.
Примеры
Пример 1: Запуск блокнота каждый день в 10:00
- Открыть оснастку «Планировщик заданий» (
taskschd.msc). - Создать задачу, указав имя «Запуск блокнота».
- В разделе «Триггеры» создать новый триггер: «Ежедневно», начать с 10:00.
- В разделе «Действия» создать новое действие: «Запуск программы», указать путь к
notepad.exe. - Нажать «ОК». Задание будет выполняться ежедневно в 10:00.
Пример 2: Очистка корзины при запуске системы
- Создать задачу с именем «Очистка корзины».
- Триггер: «При запуске системы».
- Действие: «Запуск программы», программа —
cmd.exe, аргументы:/c rd /s /q C:\$Recycle.bin. - Условия: отключить все условия (например, «Запускать только при простое»).
- Настройки: включить «Выполнять задачу с наивысшими привилегиями».
Интересные факты
- В Windows 10 и 11 планировщик заданий используется для запуска процесса «Сбор телеметрии» (Connected User Experiences and Telemetry), который собирает данные об использовании системы.
- Злоумышленники часто используют планировщик заданий для закрепления вредоносного ПО в системе, создавая задания, которые запускают вредоносные файлы при входе пользователя или через определённые промежутки времени.
- Планировщик заданий поддерживает выполнение заданий на удалённых компьютерах через службу удалённого управления Windows (WinRM).
- В Windows Server планировщик заданий используется для автоматизации задач резервного копирования, мониторинга и обслуживания.
Критика и ограничения
- Сложность для начинающих: графический интерфейс планировщика заданий может показаться перегруженным и неинтуитивным для пользователей, не знакомых с системным администрированием.
- Ограниченная документация: некоторые параметры и их влияние на выполнение заданий описаны недостаточно подробно, что может приводить к ошибкам при настройке.
- Проблемы с правами: задания, выполняемые от имени пользователя, могут не запускаться, если пользователь не вошёл в систему, что требует использования учётной записи SYSTEM или учётной записи с соответствующими правами.
- Устаревшие функции: отправка электронной почты и отображение сообщений помечены как устаревшие и не рекомендуются к использованию, что ограничивает возможности уведомлений.
Источники
- Microsoft Docs. «Task Scheduler». Документация по Windows.
- Руссинович М., Соломон Д. «Внутреннее устройство Microsoft Windows». 6-е издание.
- TechNet. «Understanding Task Scheduler». Статья из архива Microsoft.
- MSDN Magazine. «Task Scheduler 2.0 Internals».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →