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

Служба планировщика MSTask

Служба планировщика MSTask (англ. Task Scheduler, также известная как «Планировщик заданий») — компонент операционных систем семейства Microsoft Windows, предназначенный для автоматического запуска программ, скриптов и выполнения системных задач по заданному расписанию или при наступлении определённых событий. Служба предоставляет графический интерфейс (оснастка taskschd.msc) и программный интерфейс (API) для создания, управления и мониторинга задач. Входит в состав всех версий Windows, начиная с Windows 95 (как дополнение Plus! для Windows 95) и встроена в Windows NT 4.0 (Resource Kit), а с Windows 98 и Windows 2000 — в базовую поставку.

История

Ранние версии (Windows 95 — Windows XP)

Первая версия планировщика, называвшаяся Scheduled Tasks, появилась в составе дополнения Microsoft Plus! для Windows 95. В Windows 98 она была включена в стандартную установку, а в Windows 2000 и Windows XP получила название Task Scheduler 1.0. В этот период служба работала как отдельный процесс mstask.exe и хранила задачи в бинарном формате .job в каталоге %SystemRoot%\Tasks. Функциональность была ограничена: поддерживалось только простое расписание (ежедневно, еженедельно, ежемесячно), отсутствовали триггеры по событиям и условия запуска.

Task Scheduler 2.0 (Windows Vista и новее)

С выходом Windows Vista была внедрена полностью переработанная версия — Task Scheduler 2.0. Она использует формат хранения задач на основе XML (файлы с расширением .xml в каталоге %SystemRoot%\System32\Tasks), что повысило гибкость и читаемость. Служба стала работать как процесс svchost.exe (в контексте службы Schedule). Появились:

  • триггеры по событиям (системным, приложений, журналов);
  • условия запуска (простой системы, питание от сети, подключение к сети);
  • действия (запуск программы, отправка email, отображение сообщения);
  • настройки безопасности (запуск от имени указанного пользователя, с наивысшими привилегиями).

В Windows 7, 8, 10 и 11 функциональность расширялась незначительно, в основном за счёт улучшения интерфейса и интеграции с новыми возможностями ОС (например, поддержка PowerShell, триггеры по событиям Hyper-V).

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

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

Исполняемый файл службы — svchost.exe -k netsvcs (внутреннее имя службы: Schedule). Отвечает за:

  • загрузку и хранение задач в памяти;
  • проверку триггеров и условий;
  • запуск задач в указанное время или при наступлении события;
  • управление историей выполнения (журнал событий Microsoft-Windows-TaskScheduler/Operational).

Оснастка управления (MMC)

Графический интерфейс — оснастка консоли управления Microsoft (MMC) taskschd.msc. Позволяет:

  • просматривать, создавать, изменять и удалять задачи;
  • включать/отключать задачи;
  • просматривать историю выполнения (успешные, неудачные, пропущенные запуски);
  • управлять состоянием службы (запуск, остановка, перезапуск).

Командная строка и PowerShell

Для автоматизации управления задачами используются утилиты:

  • schtasks.exe — классическая консольная утилита (доступна с Windows 2000). Поддерживает создание, изменение, удаление, запуск и остановку задач.
  • Get-ScheduledTask, Set-ScheduledTask, New-ScheduledTask, Register-ScheduledTask, Unregister-ScheduledTask — командлеты PowerShell (модуль ScheduledTasks), доступные с Windows 8/Server 2012.

Программный интерфейс (API)

Для разработчиков доступны:

  • COM-интерфейсы (ITaskScheduler, ITask, ITaskTrigger) — для Task Scheduler 1.0.
  • COM-интерфейсы (ITaskService, ITaskDefinition, ITaskFolder) — для Task Scheduler 2.0.
  • .NET-библиотека Microsoft.Win32.TaskScheduler (доступна через NuGet).

Классификация задач

По типу триггера

  • Временные триггеры: запуск по расписанию (однократно, ежедневно, еженедельно, ежемесячно, по определённому дню недели или месяца, при запуске системы, при входе пользователя, при простое системы).
  • Событийные триггеры: запуск при возникновении определённого события в журнале Windows (например, ошибка приложения, достижение порога диска, подключение USB-устройства).
  • Триггеры по состоянию: при подключении к сети, при переходе на питание от батареи, при блокировке/разблокировке рабочей станции.

По контексту выполнения

  • Задачи от имени системы (SYSTEM) — выполняются с наивысшими привилегиями, независимо от того, какой пользователь вошёл в систему.
  • Задачи от имени пользователя — выполняются в контексте учётной записи указанного пользователя. Могут требовать ввода пароля или использования сохранённых учётных данных.
  • Задачи с наивысшими привилегиями — запускаются с правами администратора (требуют согласия UAC, если пользователь не администратор).

По типу действия

  • Запуск программы — выполнение исполняемого файла (.exe, .bat, .cmd, .ps1).
  • Отправка email — отправка сообщения по протоколу SMTP (устаревшая функция, не рекомендуется).
  • Отображение сообщения — вывод диалогового окна с текстом (устаревшая функция, не рекомендуется).
  • COM-объект — запуск COM-объекта (поддерживается только в Task Scheduler 2.0).

Применение

Системные задачи

Планировщик используется самой операционной системой для выполнения критических фоновых операций:

  • Дефрагментация диска (еженедельно по расписанию).
  • Обновление Windows (проверка и установка обновлений).
  • Создание точек восстановления системы (перед установкой драйверов или обновлений).
  • Очистка диска (автоматическая очистка временных файлов).
  • Сбор телеметрии (отправка диагностических данных в Microsoft).
  • Запуск антивирусного сканирования (Windows Defender).

Пользовательские задачи

Пользователи и администраторы могут создавать задачи для автоматизации рутинных действий:

  • резервное копирование файлов и баз данных;
  • запуск скриптов обслуживания (очистка логов, перезапуск служб);
  • отправка отчётов по электронной почте;
  • запуск приложений при входе в систему (например, мессенджеры, утилиты);
  • выполнение команд по расписанию (например, обновление DNS-записей).

Корпоративное использование

В доменных средах (Active Directory) планировщик может управляться через групповые политики (GPO). Администраторы могут централизованно разворачивать задачи на всех компьютерах домена, используя schtasks.exe или PowerShell с удалённым управлением.

Безопасность и уязвимости

Привилегии и UAC

Задачи, запускаемые от имени пользователя с правами администратора, могут требовать согласия UAC (User Account Control). Для автоматического выполнения без вмешательства пользователя задача должна быть настроена на запуск с наивысшими привилегиями, а учётная запись — иметь соответствующие права.

Использование злоумышленниками

Планировщик задач часто используется вредоносным ПО для обеспечения персистентности (автозагрузки). Злоумышленники создают задачи, которые запускаются при входе пользователя или при старте системы, чтобы восстановить доступ после перезагрузки. Для защиты рекомендуется:

  • регулярно проверять список задач на наличие подозрительных;
  • ограничивать права на создание задач для обычных пользователей;
  • использовать аудит событий планировщика (журнал Microsoft-Windows-TaskScheduler/Operational).

Известные уязвимости

В истории Windows были зафиксированы уязвимости, связанные с планировщиком:

  • CVE-2010-3338 — повышение привилегий через некорректную обработку задач (Windows Vista/7).
  • CVE-2018-8440 — уязвимость в планировщике задач Windows (Windows 7/8.1/10), позволявшая злоумышленнику повысить привилегии до SYSTEM.
  • CVE-2022-21874 — уязвимость в планировщике задач Windows (Windows 10/11), позволявшая обойти контроль учётных записей (UAC).

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

  • В Windows 10 и 11 планировщик задач используется для запуска функции «Автоматическое обслуживание» (Automatic Maintenance), которая выполняет дефрагментацию, обновление антивирусных баз, проверку диска и другие задачи в фоновом режиме, когда система не используется.
  • Планировщик задач может запускать задачи даже при выключенном компьютере, если настроена функция Wake-on-LAN и задача имеет соответствующий триггер (требуется поддержка BIOS/UEFI).
  • В Windows Server планировщик задач используется для выполнения заданий резервного копирования, обновления баз данных, отправки отчётов и других административных задач.
  • Формат XML-файлов задач (Task Scheduler 2.0) позволяет легко переносить задачи между компьютерами, редактировать их в текстовом редакторе и использовать в системах управления конфигурациями (например, Ansible, Puppet).

Источники

  • Microsoft Docs: «Task Scheduler Overview» (Windows Client Management)
  • Microsoft Docs: «Task Scheduler Reference» (Win32 API)
  • Windows Internals, Part 1 (7th Edition) — Pavel Yosifovich, Mark Russinovich, David Solomon, Alex Ionescu
  • CVE Details: CVE-2010-3338, CVE-2018-8440, CVE-2022-21874
  • TechNet Magazine: «Understanding the Task Scheduler» (2007)

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

На главную BFOmetr →