Открыть сервис

Task Scheduler 2.0

Task Scheduler 2.0 — это компонент операционных систем Microsoft Windows, начиная с Windows Vista и Windows Server 2008, выполняющий роль планировщика задач. Он пришёл на смену Task Scheduler 1.0, который использовался в более ранних версиях Windows (Windows 2000, Windows XP, Windows Server 2003). Task Scheduler 2.0 представляет собой полностью переработанную систему, основанную на новой архитектуре, использующей COM-интерфейсы, XML-формат для хранения задач и расширенный набор триггеров и условий запуска.

История и предпосылки

Планировщик задач в Windows впервые появился в Windows 95 (как часть Microsoft Plus! для Windows 95). В Windows 2000 и Windows XP он был представлен как служба с ограниченным функционалом (Task Scheduler 1.0). Задачи хранились в бинарном формате (.job), управление было возможно только через локальный интерфейс, а возможности по настройке условий запуска были минимальными.

С выходом Windows Vista компания Microsoft полностью переписала планировщик, создав Task Scheduler 2.0. Основными причинами стали:

Архитектура и компоненты

Task Scheduler 2.0 состоит из нескольких ключевых компонентов, работающих как в пользовательском режиме, так и в режиме ядра.

Служба планировщика задач (Task Scheduler Service)

Это основная служба Windows (файл svchost.exe, исполняемый модуль taskschd.dll), которая отвечает за:

Служба запускается автоматически при старте системы и работает в фоновом режиме. Её состояние можно проверить через оснастку services.msc (имя службы: Schedule).

Хранилище задач (Task Folder)

Задачи хранятся в виде отдельных XML-файлов в папке %SystemRoot%\System32\Tasks. Каждый файл имеет расширение .xml и содержит полное описание задачи: триггеры, действия, условия, параметры безопасности, настройки питания и т.д. Структура папок внутри Tasks соответствует иерархии папок, отображаемой в графическом интерфейсе планировщика. Например, задачи, созданные пользователем, обычно находятся в папке \Tasks\Microsoft\Windows\....

COM-интерфейсы (API)

Task Scheduler 2.0 предоставляет набор COM-интерфейсов для программного управления задачами. Основные из них:

API доступен для использования в скриптах (VBScript, PowerShell) и в приложениях на C++, C#, Visual Basic .NET.

Основные возможности и отличия от версии 1.0

ХарактеристикаTask Scheduler 1.0 (Windows XP/2000)Task Scheduler 2.0 (Windows Vista и новее)
Формат хранения задачБинарный (.job)XML (.xml)
ТриггерыТолько по времени (однократно, ежедневно, еженедельно, ежемесячно)Время, события (Event Log), вход в систему, запуск системы, состояние простоя, блокировка/разблокировка рабочей станции, подключение/отключение от сети, изменение системного времени, создание/изменение файла и др.
Условия запускаМинимальные (только питание от сети)Мощные: питание от сети/батареи, состояние сети (подключено/отключено), состояние простоя (Idle), наличие/отсутствие пользователя, загрузка ЦП, свободное место на диске и др.
ДействияТолько запуск приложения/скриптаЗапуск приложения, отправка электронной почты (устарело), показ сообщения (устарело), запуск COM-обработчика
БезопасностьЗапуск от имени текущего пользователяЗапуск от имени любого пользователя (включая SYSTEM), с возможностью повышения привилегий (Run with highest privileges), изоляция задач, аутентификация через SID
УправлениеЧерез оснастку taskschd.msc (ограниченная)Расширенная оснастка taskschd.msc, командлеты PowerShell (Get-ScheduledTask, New-ScheduledTask, Register-ScheduledTask), COM-API
Удалённое управлениеОграниченное (через RPC)Полноценное через COM/DCOM, WinRM, PowerShell Remoting
ВерсионированиеНетПоддержка версий задач (Task Scheduler 2.0, 2.1, 2.2)

Типы триггеров

Task Scheduler 2.0 поддерживает следующие основные типы триггеров:

  1. TimeTrigger (Временной триггер): запуск по расписанию (однократно, ежедневно, еженедельно, ежемесячно, при запуске системы, при входе пользователя). Гибкая настройка повторения.
  2. EventTrigger (Событийный триггер): запуск при регистрации определённого события в системном журнале Event Log (например, ошибка диска, событие безопасности, событие приложения).
  3. LogonTrigger (Триггер входа в систему): запуск при входе любого или конкретного пользователя.
  4. BootTrigger (Триггер загрузки системы): запуск после завершения загрузки операционной системы.
  5. IdleTrigger (Триггер простоя): запуск, когда система переходит в состояние простоя (Idle) в течение заданного времени.
  6. SessionStateChangeTrigger (Триггер изменения состояния сеанса): запуск при блокировке, разблокировке рабочей станции, подключении или отключении удалённого рабочего стола (RDP).
  7. RegistrationTrigger (Триггер регистрации задачи): запуск сразу после создания или изменения задачи.
  8. CustomTrigger (Пользовательский триггер): позволяет создавать триггеры на основе XML-запросов к WMI (Windows Management Instrumentation).

Типы действий

Для каждой задачи можно задать одно или несколько действий, которые выполняются последовательно при срабатывании триггера. Основные типы:

Условия и настройки

Задача может содержать набор условий, которые должны быть выполнены для её запуска, а также настройки, определяющие поведение после запуска.

Условия (Conditions):

Настройки (Settings):

Управление и администрирование

Для управления задачами в Windows существует несколько инструментов:

  1. Графическая оснастка taskschd.msc: основной интерфейс для создания, изменения, удаления и просмотра задач. Отображает иерархию папок, журнал выполнения и список активных задач.
  2. Командлеты PowerShell: модуль ScheduledTasks предоставляет мощные командлеты для автоматизации управления:
  1. Команда schtasks.exe: утилита командной строки, присутствующая во всех версиях Windows с Task Scheduler. Позволяет создавать, изменять, запускать и удалять задачи, а также запрашивать их состояние. Синтаксис: schtasks /create /?.
  2. COM-API: для разработчиков, встраивающих планировщик в свои приложения.

Применение

Task Scheduler 2.0 используется в самых разных сценариях:

Безопасность и ограничения

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →