PowerShell для создания запланированной задачи, которая выполняется ежемесячно.

Вопрос или проблема

Я пытаюсь создать запланированную задачу с помощью PowerShell, задача должна выполняться 1-го числа каждого месяца, но я не могу разобраться, как использовать New-ScheduledTaskTrigger с ежемесячным интервалом.
Например:

$jobName = "Backup_EMR_Data"  
$action = New-ScheduledTaskAction -Execute $actionName -Argument  $arg -WorkingDirectory $SSISPackagePath  
$trigger = New-ScheduledTaskTrigger -Daily -At 12:30AM   
$settings = New-ScheduledTaskSettingsSet  
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings  

Register-ScheduledTask $jobName -InputObject $task -TaskPath $taskPath -User $userName -Password $password

Я не могу разобраться, как использовать New-ScheduledTaskTrigger с ежемесячным интервалом.

$triggers = $TaskDefinition.Triggers
$trigger = $triggers.Create(1) # Создать триггер "Однократно"

Теперь, если мы хотим запускать задачу более одного раза, например, ежемесячно, нам нужно изменить и добавить немного кода. В коде выше используется Create(1), что означает, что триггер установлен на однократную работу.

$trigger = $triggers.Create(1) # Создать триггер "Однократно"

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

TASK_TRIGGER_EVENT                   0
TASK_TRIGGER_TIME                    1
TASK_TRIGGER_DAILY                   2
TASK_TRIGGER_WEEKLY                  3
TASK_TRIGGER_MONTHLY                 4
TASK_TRIGGER_MONTHLYDOW              5
TASK_TRIGGER_IDLE                    6
TASK_TRIGGER_REGISTRATION            7
TASK_TRIGGER_BOOT                    8
TASK_TRIGGER_LOGON                   9
TASK_TRIGGER_SESSION_STATE_CHANGE   11

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

$trigger = $triggers.Create(4)
$trigger.DaysOfMonth = 1

Источник PowerShell – Создание запланированных задач с помощью PowerShell версии 3

Ответ или решение

Создание запланированной задачи в PowerShell, которая выполняется ежемесячно, может показаться сложной задачей, особенно если вы не знакомы с параметрами и способами использования New-ScheduledTaskTrigger. Предоставлю вам детализированное руководство по этой задаче.

Что необходимо сделать

  1. Инициализация переменных: убедитесь, что у вас есть все необходимые данные для выполнения задачи, такие как имя задания ($jobName), действие ($actionName), аргументы, рабочий каталог, и аутентификационные данные.

  2. Создание действия: Используйте New-ScheduledTaskAction для указания программы или скрипта, который необходимо запустить. Например:

    $action = New-ScheduledTaskAction -Execute "C:\Scripts\BackupScript.ps1"
  3. Создание триггера с ежемесячным интервалом: Чтобы задать запуск задачи в первый день каждого месяца, используйте параметр -Monthly с указанием дня. Это можно сделать с помощью .Trigers.Create(4):

    $triggers = $TaskDefinition.Triggers
    $trigger = $triggers.Create(4)
    $trigger.DaysOfMonth = 1
    $trigger.StartBoundary = "2023-01-01T00:00:00"

    Альтернативный вариант с New-ScheduledTaskTrigger может выглядеть как:

    $trigger = New-ScheduledTaskTrigger -Monthly -DaysOfMonth 1 -At "00:00AM"
  4. Настройки задачи: Используйте New-ScheduledTaskSettingsSet для указания различных параметров настроек задачи, например, что она может выполняться от имени другого пользователя или поддерживает зону энергосбережения.

  5. Создание задачи: Объедините действие, триггер и настройки в одну задачу:

    $task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
  6. Регистрация задачи: Используйте Register-ScheduledTask для регистрации задачи в системе, предоставив ей уникальное имя и необходимые параметры безопасности.

    Register-ScheduledTask -TaskName $jobName -InputObject $task -User $userName -Password $password

Завершение

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

Оцените материал
Добавить комментарий

Капча загружается...