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

New-ScheduledTaskTrigger

New-ScheduledTaskTrigger — это командлет (cmdlet) в среде Windows PowerShell, предназначенный для создания объекта-триггера, который определяет условия и время запуска запланированной задачи в планировщике задач Windows (Task Scheduler). Командлет входит в модуль ScheduledTasks, доступный в операционных системах Windows, начиная с Windows 8 и Windows Server 2012, а также в более поздних версиях. New-ScheduledTaskTrigger позволяет программно задавать различные типы расписаний, такие как однократный запуск, ежедневное, еженедельное, ежемесячное выполнение, запуск при загрузке системы, при входе пользователя, при простое или при возникновении определённого события в журнале Windows.

Назначение и контекст использования

Командлет New-ScheduledTaskTrigger является частью инфраструктуры управления задачами Windows через PowerShell. Он используется в сочетании с другими командлетами модуля ScheduledTasks, такими как Register-ScheduledTask, Set-ScheduledTask и New-ScheduledTaskAction, для создания полностью настраиваемых запланированных задач без использования графического интерфейса планировщика задач. Основное назначение командлета — генерация объекта CimInstance типа MSFT_TaskTrigger, который затем передаётся в качестве параметра -Trigger при регистрации или изменении задачи.

Применение New-ScheduledTaskTrigger особенно актуально в сценариях автоматизации администрирования, развёртывания конфигураций на множестве компьютеров, создания задач обслуживания системы или выполнения скриптов по расписанию. Командлет позволяет точно задавать временные параметры, включая дату начала, продолжительность выполнения, интервалы повторения и ограничения по дням недели.

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

Командлет имеет несколько наборов параметров (parameter sets), каждый из которых соответствует определённому типу триггера. Основные наборы параметров включают:

Общие параметры (применимы ко всем типам триггеров):

Типы триггеров

New-ScheduledTaskTrigger поддерживает все основные типы триггеров, определённые в планировщике задач Windows. Ниже приведена классификация с кратким описанием.

Тип триггераПараметр командлетаОписание
Однократный-OnceЗадача выполняется один раз в указанное время.
Ежедневный-DailyЗадача выполняется ежедневно или с заданным интервалом в днях.
Еженедельный-WeeklyЗадача выполняется в определённые дни недели с заданным интервалом в неделях.
Ежемесячный по дням-MonthlyЗадача выполняется в определённые числа месяца (например, 1, 15) в указанные месяцы.
Ежемесячный по дням недели-MonthlyDayOfWeekЗадача выполняется в определённые дни недели на заданных неделях месяца (например, первый понедельник каждого месяца).
При загрузке-AtStartupЗадача запускается при старте операционной системы.
При входе-AtLogOnЗадача запускается при входе любого или указанного пользователя.
При простое-IdleЗадача запускается, когда система находится в состоянии простоя (определяется планировщиком).
При регистрации-RegistrationЗадача запускается сразу после её создания или изменения.
По событию-EventЗадача запускается при записи определённого события в журнал Windows (системный, приложений, безопасности и т.д.).

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

Создание ежедневного триггера

``powershell $Trigger = New-ScheduledTaskTrigger -Daily -At "09:00" ``

Данный пример создаёт триггер, который будет срабатывать ежедневно в 9:00.

Создание еженедельного триггера с повторением

``powershell $Trigger = New-ScheduledTaskTrigger -Weekly -At "10:30" -DaysOfWeek Monday, Wednesday, Friday -WeeksInterval 2 -RepetitionInterval (New-TimeSpan -Minutes 15) -RepetitionDuration (New-TimeSpan -Hours 2) ``

Этот триггер срабатывает каждый второй понедельник, среду и пятницу в 10:30, после чего задача повторяется каждые 15 минут в течение 2 часов.

Создание триггера при загрузке системы

``powershell $Trigger = New-ScheduledTaskTrigger -AtStartup -RandomDelay (New-TimeSpan -Minutes 5) ``

Триггер запускает задачу при загрузке системы со случайной задержкой до 5 минут.

Создание триггера по событию

``powershell $Trigger = New-ScheduledTaskTrigger -EventTriggerEnabled -EventId 1000 -EventSource "MyApp" -EventLog "Application" ``

Триггер срабатывает при записи события с ID 1000 от источника "MyApp" в журнале приложений.

Взаимодействие с другими командлетами

New-ScheduledTaskTrigger обычно используется в конвейере с командлетами, создающими или изменяющими задачу. Типичный сценарий:

``powershell $Action = New-ScheduledTaskAction -Execute "C:\Scripts\backup.ps1" $Trigger = New-ScheduledTaskTrigger -Daily -At "03:00" $Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries Register-ScheduledTask -TaskName "DailyBackup" -Action $Action -Trigger $Trigger -Settings $Settings -User "SYSTEM" ``

В этом примере создаётся задача с именем "DailyBackup", которая запускает скрипт ежедневно в 3:00 от имени системы.

Ограничения и особенности

Применение в автоматизации

New-ScheduledTaskTrigger широко используется в сценариях автоматизации администрирования, таких как:

Использование командлета позволяет администраторам создавать единообразные, документируемые и воспроизводимые конфигурации задач, что снижает вероятность ошибок, связанных с ручным вводом параметров в графическом интерфейсе.

Источники

  1. Microsoft Docs: "New-ScheduledTaskTrigger" — официальная документация командлета (Windows PowerShell).
  2. Microsoft Learn: "ScheduledTasks Module" — описание модуля и его командлетов.
  3. Windows Task Scheduler Reference — техническая документация по планировщику задач Windows.
  4. PowerShell Team Blog — публикации о работе с запланированными задачами в PowerShell.
  5. TechNet Script Center — примеры скриптов для автоматизации задач администрирования Windows.

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

На главную BFOmetr →