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

Библиотека Планировщика задач

Библиотека Планировщика задач (англ. Task Scheduler Library) — это программный компонент операционной системы Microsoft Windows, предоставляющий прикладной программный интерфейс (API) для создания, настройки, управления и выполнения автоматических задач по расписанию или при наступлении определённых системных событий. Библиотека является частью службы «Планировщик задач» (Task Scheduler) и служит для программного взаимодействия с этой службой.

История

Появление и развитие

Первая версия Планировщика задач появилась в Windows 95 как часть пакета Microsoft Plus! под названием System Agent. В Windows 98 он был встроен в систему, а его API был представлен как COM-объект. Однако полноценная Библиотека Планировщика задач (Task Scheduler Library) в современном виде была введена в Windows Vista (2006 год) и Windows Server 2008. Она пришла на смену устаревшей версии API, использовавшейся в Windows XP и более ранних системах.

Версии

  • Task Scheduler 1.0 — использовался в Windows 2000, Windows XP и Windows Server 2003. API был основан на COM и предоставлял ограниченные возможности.
  • Task Scheduler 2.0 — появился в Windows Vista и Windows Server 2008. Включает новую библиотеку (Task Scheduler 2.0 API), которая поддерживает XML-формат задач, триггеры на основе событий, условия и действия, а также улучшенную безопасность. Эта версия является основной для всех последующих версий Windows (7, 8, 10, 11 и соответствующих серверных редакций).

Архитектура и устройство

Компоненты

Библиотека Планировщика задач представляет собой набор COM-интерфейсов, реализованных в системных DLL-библиотеках (в первую очередь taskschd.dll). Основные компоненты:

  • ITaskService — главный интерфейс для подключения к службе Планировщика задач. Позволяет получить доступ к корневой папке задач.
  • ITaskFolder — представляет папку в иерархии задач. Позволяет перечислять, создавать, удалять и изменять задачи.
  • IRegisteredTask — представляет зарегистрированную задачу. Содержит методы для запуска, остановки, получения состояния и свойств задачи.
  • ITaskDefinition — определяет структуру задачи: триггеры, действия, условия, настройки и параметры безопасности.
  • ITrigger — базовый интерфейс для триггеров (запуск по расписанию, при входе в систему, при простое, при событии и т.д.).
  • IAction — базовый интерфейс для действий (запуск программы, отправка электронной почты, отображение сообщения).
  • ITaskSettings — настройки выполнения задачи (например, разрешение запуска при питании от батареи, перезапуск при сбое).
  • IRegistrationInfo — информация о задаче (автор, описание, дата создания).

Формат хранения

Задачи в Windows Vista и новее хранятся в XML-формате в файлах с расширением .job в папке %SystemRoot%\System32\Tasks и её подпапках. Библиотека позволяет программно создавать и редактировать эти XML-файлы через COM-объекты.

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

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

  • Временные триггеры:
  • Однократный запуск в заданное время.
  • Ежедневный, еженедельный, ежемесячный запуск.
  • Запуск по расписанию с повторением.
  • Событийные триггеры:
  • При запуске системы.
  • При входе пользователя в систему.
  • При простое системы.
  • При создании, изменении или удалении файла/папки.
  • При возникновении события в журнале Windows.
  • Комбинированные триггеры — могут сочетать несколько условий (например, запуск по расписанию, но только если компьютер простаивает).

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

  • Запуск программы — выполнение исполняемого файла (.exe, .bat, .cmd, .vbs и др.).
  • Отправка электронной почты — устаревшее действие (не рекомендуется в современных версиях Windows).
  • Отображение сообщения — устаревшее действие (не рекомендуется).
  • Запуск COM-объекта — выполнение скрипта или компонента через COM.

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

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

Применение

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

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

  • Автоматическое обновление системы (Windows Update).
  • Дефрагментация дисков.
  • Очистка диска (Disk Cleanup).
  • Создание точек восстановления системы.
  • Синхронизация времени.
  • Выполнение антивирусных сканирований (например, Microsoft Defender).

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

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

  • Резервное копирование данных.
  • Запуск скриптов очистки временных файлов.
  • Автоматический запуск приложений при входе в систему.
  • Мониторинг состояния системы и отправка уведомлений.

Программное использование

Разработчики могут программно создавать и управлять задачами через Библиотеку Планировщика задач. Это позволяет:

  • Интегрировать автоматизацию в сторонние приложения.
  • Создавать задачи для выполнения обновлений или обслуживания.
  • Управлять задачами удалённо через RPC.

Примеры использования

Создание задачи через PowerShell

В современных версиях Windows для управления задачами часто используется модуль ScheduledTasks в PowerShell. Пример создания задачи, запускающей блокнот каждый день в 10:00:

``powershell $Action = New-ScheduledTaskAction -Execute "notepad.exe" $Trigger = New-ScheduledTaskTrigger -Daily -At 10:00AM Register-ScheduledTask -TaskName "MyNotepadTask" -Action $Action -Trigger $Trigger ``

Создание задачи через COM-объект (C++)

```cpp

include <taskschd.h>

include <comdef.h>

// Инициализация COM, создание ITaskService, ITaskFolder, ITaskDefinition, ITrigger, IAction // и регистрация задачи. ```

Безопасность и права доступа

Учётные записи

Задачи могут выполняться от имени:

  • Текущего пользователя.
  • Системной учётной записи (SYSTEM).
  • Учётной записи службы.
  • Указанного пользователя (с паролем).

Требования к правам

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

Риски

Злоумышленники могут использовать Планировщик задач для:

  • Запуска вредоносного ПО с повышенными привилегиями.
  • Создания задач для постоянного присутствия в системе (persistence).
  • Выполнения команд с правами системы.

Ограничения и критика

Недостатки

  • Сложность для новичков — графический интерфейс Планировщика задач может быть перегружен, а программный API требует знания COM.
  • Устаревшие действия — действия по отправке почты и отображению сообщений не работают в современных версиях Windows.
  • Зависимость от службы — если служба «Планировщик задач» остановлена, все задачи не выполняются.
  • Проблемы с правами — для некоторых задач требуется хранение пароля в системе, что может быть небезопасно.

Альтернативы

  • Windows Task Scheduler — графический интерфейс для управления задачами.
  • PowerShell ScheduledTasks — модуль для автоматизации через командную строку.
  • Сторонние планировщики — например, cron в Unix-подобных системах, Task Scheduler в Linux (через systemd).

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

  • В Windows 10 и 11 Планировщик задач используется для выполнения более 200 системных задач по умолчанию.
  • Библиотека Планировщика задач поддерживает работу с удалёнными компьютерами через DCOM.
  • Формат хранения задач (XML) позволяет легко переносить задачи между системами или редактировать их вручную.

Источники

  • Microsoft Docs: Task Scheduler Reference
  • Windows Internals, Part 1 (7th edition) — Pavel Yosifovich, Mark E. Russinovich, David A. Solomon, Alex Ionescu
  • MSDN: Task Scheduler 2.0 API
  • Документация PowerShell: ScheduledTasks Module

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

На главную BFOmetr →