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».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →