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

Start-ScheduledTask

Start-ScheduledTask — это командлет командной оболочки PowerShell, предназначенный для немедленного запуска одной или нескольких запланированных задач в операционной системе Windows. Командлет относится к модулю ScheduledTasks и выполняет задачу вне зависимости от её настроенного расписания, триггеров или условий запуска.

Синтаксис и параметры

Командлет имеет следующий базовый синтаксис:

`` Start-ScheduledTask [-TaskPath] <String[]> [[-TaskName] <String[]>] [-CimSession <CimSession[]>] [-ThrottleLimit <Int32>] [-AsJob] [<CommonParameters>] ``

Основные параметры:

  • -TaskName — имя запускаемой задачи. Можно указать одно имя или массив имён. Если имя содержит подстановочные знаки (например, *), командлет запустит все задачи, соответствующие шаблону.
  • -TaskPath — путь к задаче в иерархии планировщика задач (например, \Microsoft\Windows\). По умолчанию используется корневая папка \. Если параметр не указан, командлет ищет задачу во всех папках.
  • -CimSession — позволяет выполнить команду на удалённом компьютере через сеанс CIM (Common Information Model). Если параметр опущен, команда выполняется локально.
  • -ThrottleLimit — ограничивает количество одновременных операций при работе с удалёнными сессиями. Значение по умолчанию — 32.
  • -AsJob — запускает командлет как фоновое задание PowerShell. Это полезно для длительных операций или при работе с большим количеством задач.

Командлет также поддерживает общие параметры PowerShell, такие как -Verbose, -Debug, -ErrorAction и -WarningAction.

История и версии

Командлет Start-ScheduledTask впервые появился в Windows PowerShell 4.0, выпущенном вместе с Windows 8.1 и Windows Server 2012 R2. Он является частью модуля ScheduledTasks, который предоставляет полный набор командлетов для управления планировщиком задач Windows (Task Scheduler). В последующих версиях Windows (10, 11) и Windows Server (2016, 2019, 2022) командлет остался без существенных изменений, но его функциональность была расширена за счёт улучшенной поддержки удалённого управления через CIM и WinRM.

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

Запуск конкретной задачи

``powershell Start-ScheduledTask -TaskName "MyBackupTask" ``

Эта команда немедленно запускает задачу с именем MyBackupTask, независимо от её расписания.

Запуск задачи из определённой папки

``powershell Start-ScheduledTask -TaskPath "\Microsoft\Windows\Defrag\" -TaskName "ScheduledDefrag" ``

Запускает задачу ScheduledDefrag, расположенную в папке \Microsoft\Windows\Defrag\.

Запуск нескольких задач по шаблону

``powershell Start-ScheduledTask -TaskName "Update*" ``

Запускает все задачи, имена которых начинаются с Update.

Запуск задачи на удалённом компьютере

``powershell $Session = New-CimSession -ComputerName "Server01" Start-ScheduledTask -CimSession $Session -TaskName "DailyReport" Remove-CimSession $Session ``

Сначала создаётся сеанс CIM с удалённым компьютером Server01, затем запускается задача DailyReport, после чего сеанс закрывается.

Поведение и особенности

  • Игнорирование условий — командлет запускает задачу немедленно, не проверяя её триггеры, расписание, условия простоя компьютера или требования к питанию (например, работа от батареи). Если задача настроена на запуск только при простое системы или при подключении к сети, Start-ScheduledTask всё равно выполнит её.
  • Права доступа — для выполнения команды требуется права администратора на локальном компьютере или соответствующие права на удалённом. Пользователь должен быть членом группы «Администраторы» или иметь делегированные разрешения на управление задачами.
  • Состояние задачи — если задача уже запущена, командлет не создаёт второй экземпляр (если задача не настроена на параллельный запуск). В этом случае он возвращает ошибку, сообщающую, что задача уже выполняется.
  • Возвращаемое значение — командлет не возвращает объект задачи или её статус. Для проверки результата запуска следует использовать командлет Get-ScheduledTask или Get-ScheduledTaskInfo.

Ошибки и диагностика

Наиболее частые ошибки при использовании Start-ScheduledTask:

  • Задача не найдена — возникает, если указано неверное имя или путь. Решение: проверить имя с помощью Get-ScheduledTask -TaskName "*".
  • Недостаточно прав — командлет возвращает ошибку доступа. Решение: запустить PowerShell от имени администратора.
  • Задача уже выполняется — если задача не поддерживает множественные экземпляры. Решение: дождаться завершения текущего выполнения или остановить его командлетом Stop-ScheduledTask.
  • Удалённый компьютер недоступен — при использовании -CimSession может возникнуть ошибка подключения. Решение: проверить доступность компьютера по сети и настройки брандмауэра.

Связь с другими командлетами

Start-ScheduledTask входит в экосистему командлетов модуля ScheduledTasks, которая включает:

  • Get-ScheduledTask — получение списка задач и их свойств.
  • Set-ScheduledTask — изменение параметров задачи.
  • New-ScheduledTask — создание новой задачи.
  • Register-ScheduledTask — регистрация задачи в планировщике.
  • Stop-ScheduledTask — остановка выполняющейся задачи.
  • Disable-ScheduledTask / Enable-ScheduledTask — отключение или включение задачи.
  • Get-ScheduledTaskInfo — получение информации о последних выполнениях задачи.

Применение в сценариях

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

  • Обновление программного обеспечения — запуск задач обновления сразу после установки пакетов.
  • Тестирование расписания — проверка корректности работы задачи без ожидания её триггера.
  • Аварийное выполнение — немедленный запуск резервного копирования или очистки диска при критических событиях.
  • Удалённое управление — централизованный запуск задач на множестве серверов через CIM-сессии.

Источники

  • Microsoft Docs. «Start-ScheduledTask (ScheduledTasks)».
  • Windows PowerShell 4.0: Technical Overview. Microsoft Corporation, 2013.
  • «PowerShell for Sysadmins: Task Automation and Configuration Management» by Adam Bertram, 2019.
  • TechNet Library. «Managing Scheduled Tasks with PowerShell».
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru