Планировщик заданий (Windows)
Планировщик заданий (ранее также «Запланированные задания») — системная служба в операционных системах Microsoft Windows, предназначенная для запуска программ и скриптов в заранее определённое время или через определённые интервалы[1].[2] Впервые компонент был представлен компанией Microsoft в дополнительном пакете Microsoft Plus! для Windows 95 под названием «System Agent»[3]. Основной компонент реализован в виде одноимённой службы Windows[4]. Инфраструктура Планировщика заданий лежит в основе функции запланированных задач в Windows PowerShell, появившейся начиная с PowerShell версии 3[5].
Планировщик заданий можно сравнить с cron или anacron в Unix-подобных операционных системах. Данная служба не должна путаться с планировщиком задач операционной системы в ядре, который отвечает за распределение ресурсов процессора между уже выполняющимися процессами.
Общие сведения
| Планировщик заданий | |
|---|---|
| Тип | сервис Windows |
| Разработчик | Microsoft |
| Написана на | C++ |
| Первый выпуск | 1995 |
| Сайт | docs.microsoft.com/en-us… |
Версии
Планировщик заданий 1.0
Планировщик заданий 1.0 входит в состав Windows NT 4.0[6] (с Internet Explorer 4.0 и новее), Windows 2000[6], Windows XP[7] и Windows Server 2003[8]. Он реализован как служба Windows, а определения и расписания заданий хранятся в бинарных файлах с расширением .job. Управление заданиями осуществляется путём работы с этими файлами; каждое задание соответствует одному действию. В Windows 95 (с Internet Explorer 4.0 и новее), Windows 98 и Windows Me Планировщик заданий работает как обычная программа — mstask.exe. В Windows 95 и Windows 98 отображается пиктограмма в области уведомлений, в Windows Me работает как скрытая служба, которую при необходимости можно вывести в трее[9]. Доступ к службе программным способом осуществляется через шесть COM-интерфейсов[10]. Microsoft предоставляет DLL-агент для планирования, пример VBScript-сценария и файл настроек для автоматизации работы Планировщика[11].
Помимо графического интерфейса для управления из Панели управления, Windows предоставляет две командные утилиты: at.exe (устаревшая)[12] и schtasks.exe[4].[13][14] Однако at.exe не может управлять задачами, созданными или изменёнными через Панель управления или schtasks.exe[15]. Кроме того, задачи, созданные через at.exe, по умолчанию не являются интерактивными; для интерактивного выполнения эту опцию необходимо явно включать. Бинарные файлы заданий, создаваемые командой AT, размещаются в каталоге %WINDIR%\Tasks[16].[17]
Планировщик заданий 2.0
Планировщик заданий 2.0 был представлен в Windows Vista[18] и включён также в Windows Server 2008[19].[8] Обновлённый графический интерфейс теперь построен на основе Консоли управления (MMC). Помимо запуска заданий по расписанию или по интервалам времени, версия 2.0 поддерживает триггеры на события, например — запуск задания при появлении определённой записи в журнале событий, либо при срабатывании набора событий. Несколько заданий, вызванных одним событием, можно запускать одновременно или в заданной последовательности (цепочкой действий), не создавая для этого отдельных объектов. Можно конфигурировать задания для запуска при наступлении определённых состояний системы (например, простаивание в течение некоторого времени, запуск системы, выход из системы, только в один из периодов и т. д). Возможна фильтрация событий журналов с помощью выражений XPath, а также задержка выполнения после срабатывания триггера или повтор запуска при неудачах. Помимо запуска приложений, действие, связанное с триггером, может быть произвольным (отправка письма, показ окна сообщения, вызов COM-обработчика и пр.); возможны кастомные действия через API. Планировщик поддерживает ведение журнала всех запусков[20]. В Windows Vista Планировщик используется для запуска ряда системных заданий[21]; при этом отключить службу Планировщика более нельзя (кроме как с помощью изменений в реестре).
API версии 2.0 позволяет программам и скриптам создавать задания[19].[22] Он включает 42 COM-интерфейса[23]. Стандартная Windows API не содержит .NET-обёртки для работы с Планировщиком, однако существуют сторонние реализации с открытым исходным кодом[24]. Файлы заданий версии 2.0 основаны на XML и доступны для просмотра, совместимы со схемой Task Scheduler[19].[22]
Другие возможности
- Новые механизмы безопасности: хранение паролей на автономных компьютерах через Credential Manager, а на машинах в домене — через Active Directory, чтобы затруднить их получение; выполнение заданий для разных пользователей теперь происходит в отдельных сессиях.
- Возможность «будить» компьютер для выполнения задания (по таймеру BIOS или удалённо), а также продолжить выполнение отложенного задания после включения.
- Возможность создавать задания, привязанные к событиям напрямую из Просмотра событий.
Задания
Планировщик управляет объектами «задание» (Task), под которыми понимается действие или цепочка действий, привязанная к одному или нескольким триггерам. Задание определяется набором действий (например, запуск приложения или выполнение пользовательского скрипта) и триггеров (по времени или событию), а также метаданными, определяющими, как будет осуществляться его запуск — включая учётную запись. Файлы заданий сериализуются в формате .job и хранятся в специальной системной папке Task Folder с подкаталогами. Программный доступ к заданиям осуществляется через интерфейсы ITaskFolder и IRegisteredTask или соответствующие объекты в сценариях[25].
Колонка «Последний результат»
В столбце «Последний результат» отображается код завершения задания. Типовые коды для запланированных заданий:[26][27]
- 0 или 0x0: Операция успешно завершена.
- 1 или 0x1: Вызвана некорректная или неизвестная функция.
- 2 или 0x2: Файл не найден.
- 10 или 0xa: Некорректное окружение.
- 0x00041300: Задание готово к запуску при следующем времени по расписанию.
- 0x00041301: Задание в данный момент выполняется.
- 0x00041302: Задание отключено.
- 0x00041303: Задание ещё не запускалось.
- 0x00041304: Для данного задания больше нет запланированных запусков.
- 0x00041305: Не настроены необходимые параметры для запуска этого задания.
- 0x00041306: Последний запуск задания был прерван пользователем.
- 0x00041307: Нет триггеров либо все имеющиеся триггеры отключены или не настроены.
- 0x00041308: Для событийных триггеров не задано время запуска.
- 0x80010002: Вызов был отменён фильтром сообщений.
- 0x80041309: Не найден триггер задания.
- 0x8004130A: Не все обязательные свойства для запуска задания заданы.
- 0x8004130B: Нет выполняющихся экземпляров задания.
- 0x8004130C: Служба Планировщика заданий не установлена на этом компьютере.
- 0x8004130D: Не удалось открыть объект задания.
- 0x8004130E: Объект некорректен либо не является заданием.
- 0x8004130F: В базе безопасности Планировщика не найдены сведения об аккаунте для указанного задания.
- 0x80041310: Не удалось определить наличие указанной учётной записи.
- 0x80041311: Обнаружена повреждённая база безопасности Планировщика заданий.
- 0x80041312: Службы безопасности Планировщика доступны только в Windows NT.
- 0x80041313: Версия объекта задания не поддерживается или некорректна.
- 0x80041314: Для задания установлено неподдерживаемое сочетание параметров учётной записи и времени запуска.
- 0x80041315: Служба Планировщика заданий не запущена.
- 0x80041316: В XML задачи обнаружен неожиданный узел.
- 0x80041317: В XML задачи обнаружен элемент или атрибут из неожиданного пространства имён.
- 0x80041318: В XML задачи некорректно отформатировано или задано недопустимое значение.
- 0x80041319: В XML задачи отсутствует обязательный элемент или атрибут.
- 0x8004131A: XML задачи повреждён.
- 0x0004131B: Задание зарегистрировано, но не все заданные триггеры будут его запускать.
- 0x0004131C: Задание зарегистрировано, но его запуск может завершиться неудачей. Необходимо включить право интерактивного входа для пользователя.
- 0x8004131D: В XML задачи слишком много однотипных узлов.
- 0x8004131E: Задание нельзя запустить после окончания границы триггера.
- 0x8004131F: Экземпляр этого задания уже выполняется.
- 0x80041320: Задание не будет запущено, если пользователь не вошёл в систему.
- 0x80041321: Образ задания повреждён или модифицирован.
- 0x80041322: Служба Планировщика заданий недоступна.
- 0x80041323: Планировщик в данный момент слишком занят для обработки запроса.
- 0x80041324: Планировщик попытался запустить задание, но оно не было выполнено по причине ограничений, заданных в определении задачи.
- 0x00041325: Служба Планировщика попросила задание запуститься.
- 0x80041326: Задание отключено.
- 0x80041327: Свойства задания несовместимы со старыми версиями Windows.
- 0x80041328: Параметры задания запрещают запуск по требованию.
- 0x80070002: Файл задания не найден.
- 0x800710E0: Оператор или администратор отклонил запрос.
- 0xC000013A: Приложение завершено по сигналу CTRL+C.
- 0xC0000142: Не удалось корректно инициализировать приложение.
Ошибки
В Windows 2000 и Windows XP при подготовке компьютера к клонированию с помощью утилиты sysprep невозможен запуск заданий, настроенных для выполнения от имени учётной записи SYSTEM. После смены идентификатора безопасности sysprep не обновляет привязку заданий к SID, из-за чего выполнение таких заданий становится невозможным. Решить эту проблему невозможно, но можно повторно пересоздать задания вручную[28].
В Windows Vista и Windows Server 2008 может быть некорректно отображено «следующее время запуска» задания. Для устранения ошибки был выпущен патч[29].
См. также
Примечания
- ↑ Keep your Windows desktop in shape with Task Scheduler (англ.). TechRepublic (4 января 2002). Дата обращения: 7 июня 2024. Архивировано 16 августа 2022 года.
- ↑ What is Task Scheduler? (англ.). Computer Hope (30 ноября 2020). Дата обращения: 7 июня 2024. Архивировано 21 марта 2025 года.
- ↑ Al Fasoltd. Windows 98: Stable and fast, as well as 'new and improved'. The Syracuse Newspapers (29 марта 1998). Дата обращения: 6 октября 2007. Архивировано 21 марта 2025 года.
- ↑ 1 2 Windows Command Line Administration Instant Reference. — John Wiley & Sons, 2010. — ISBN 978-0470930908.
- ↑ Sams Teach Yourself Windows PowerShell in 24 Hours. — Sams Publishing, 2015. — ISBN 978-0134049359.
- ↑ 1 2 Maximum Windows 2000 Security. — Sams Publishing, 2002. — ISBN 978-0672319655.
- ↑ Sams Teach Yourself Microsoft Windows XP in 21 Days. — Sams Publishing, 2001. — ISBN 978-0132715539.
- ↑ 1 2 About the Task Scheduler. MSDN. Microsoft. Дата обращения: 6 октября 2007. Архивировано 21 февраля 2007 года.
- ↑ How to Enable the Scheduled Tasks Icon in Windows Me. Support. Microsoft (29 января 2007). Архивировано 30 января 2008 года.
- ↑ Task Scheduler 1.0 Interfaces. MSDN. Microsoft. Дата обращения: 30 мая 2014. Архивировано 25 октября 2011 года.
- ↑ Task Scheduler Using VBScript. Download Center. Microsoft (22 марта 2004). Архивировано 4 мая 2006 года.
- ↑ MS-DOS and Windows command line at command. Computer Hope. Дата обращения: 7 марта 2021. Архивировано 15 декабря 2024 года.
- ↑ Schtasks. Microsoft TechNet. Microsoft. Дата обращения: 18 мая 2014. Архивировано 15 декабря 2007 года.
- ↑ At. Microsoft TechNet. Microsoft. Дата обращения: 18 мая 2014. Архивировано 17 января 2008 года.
- ↑ How To Use the AT Command to Schedule Tasks. Support. Microsoft (30 октября 2006). Архивировано 9 ноября 2004 года.
- ↑ Winternals Defragmentation, Recovery, and Administration Field Guide. — Elsevier, 2006. — ISBN 978-0080489872.
- ↑ Applications Started with AT Are Not Interactive. Support. Microsoft (20 февраля 2007). Архивировано 29 октября 2004 года.
- ↑ Special Edition Using Microsoft Windows Vista. — Que Publishing, 2008. — ISBN 978-0789737816.
- ↑ 1 2 3 VBScript Programmer's Reference. — John Wiley & Sons, 2011. — ISBN 978-1118058695.
- ↑ Windows Vista Task Scheduler. Microsoft TechNet. Microsoft (3 марта 2006). Дата обращения: 24 апреля 2006. Архивировано 12 апреля 2006 года.
- ↑ Description of the scheduled tasks in Windows Vista (24 августа 2007). Архивировано 22 октября 2007 года.
- ↑ 1 2 Kenny Kerr. Task Scheduler 2.0. MSDN. Microsoft (октябрь 2007). Дата обращения: 6 октября 2007. Архивировано 26 декабря 2007 года.
- ↑ Task Scheduler 2.0 Interfaces. MSDN. Microsoft. Дата обращения: 30 мая 2014. Архивировано 15 июля 2013 года.
- ↑ C# API for Task Scheduler 2.0. Stack Overflow. Дата обращения: 24 июля 2019. Архивировано 15 декабря 2024 года.
- ↑ Tasks (Windows). MSDN. Microsoft. Дата обращения: 6 октября 2007. Архивировано 2 марта 2007 года.
- ↑ How to troubleshoot scheduled tasks in Windows XP and in Windows Server 2003. Support. Microsoft (22 мая 2013). Дата обращения: 3 сентября 2013. Архивировано 5 февраля 2006 года.
- ↑ Task Scheduler Error and Success Constants. MSDN. Microsoft. Архивировано 10 ноября 2012 года.
- ↑ Scheduled tasks may not start if you used a System Preparation image to install Windows XP or Windows 2000. Support. Microsoft (1 июля 2004). Дата обращения: 19 мая 2012. Архивировано 26 сентября 2008 года.
- ↑ The value in the Next Run Time field in Task Scheduler is incorrect in Windows Vista and in Windows Server 2008. Support. Microsoft (15 октября 2008). Архивировано 11 декабря 2008 года.
Для дальнейшего чтения
- Windows 10 All-in-One For Dummies. — John Wiley & Sons, 2021. — ISBN 978-1119680574.
- Windows 8.1 in Depth. — Que Publishing, 2014. — ISBN 978-0789752819.
- Windows 7 Inside Out. — Pearson Education, 2009. — ISBN 978-0735636842.
- Microsoft Windows Server 2008: The Complete Reference. — McGraw-Hill Education, 2008. — ISBN 978-0071596466.
- Special Edition Using Microsoft Windows Vista. — Que Publishing, 2008. — ISBN 978-0789737816.
Ссылки
- Документация по Task Scheduler на MSDN
- Проблемы с форматом журнала Task Scheduler — Веб-архив (16 октября 2007). Архивировано 16 октября 2007 года.
- Невозможно удалить текст из журнала Task Scheduler
- Служба Task Scheduler не запускается
- Запланированная программа не запускается в Task Scheduler — Веб-архив (21 августа 2006). Архивировано 21 августа 2006 года.
- Отключение Task Scheduler невозможно