1

Мне нужно запланировать задачу для запуска:

  • с понедельника по пятницу
  • Каждый час с 8 утра до 6 вечера

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

Я пытался использовать параметры -RepetitionDuration и -RepetitionInterval в командлете New-ScheduledTaskTrigger , но для его использования мне нужен -once parameter?

Пожалуйста, порекомендуйте!

1 ответ1

0

Это подход, документированный Microsoft для решения этой проблемы.

Примечание: Вы должны использовать параметры настройки, предоставленные в раскрывающихся списках, даже если GUI выглядит как поля произвольной формы, это не так.

Увидеть:

Настройка расширенных параметров запланированных задач с помощью PowerShell

Недостающие параметры

Отлично, теперь у нас есть сценарий, запланированное задание, которое запускает сценарий и запускается каждый раз при запуске сервера или рабочей станции. Но мы не смогли выполнить одно из требований; задание также должно повторяться каждые 10 минут в течение 1 дня. Если вы вернетесь назад и попытаетесь добавить интервал повторения или длительность повторения, вы заметите, что ни один из них не является параметром для параметра -AtStartup:

Через графический интерфейс доступны параметры запланированной задачи:

Но они недоступны с помощью командлета PowerShell New-ScheduledTaskTrigger, если вы выбрали параметр -AtStartup. Они доступны через параметр -Once, но это не соответствует требованиям. Решение состоит в том, чтобы напрямую изменить свойства задачи, используя ее схему XML. Поначалу это может показаться сложным, но на самом деле это очень просто и позволит вам изменить практически каждый параметр запланированной задачи.

Шаг 1 - Получить запланированное задание. Первый шаг - получить запланированное задание, которое вы только что создали, и сохранить его в объекте.

$Task = Get-ScheduledTask -TaskName "SampleScheduledTask"

Шаг 2 - Обновите конкретное свойство задачи, которую вы хотите изменить. Для этого примера мы хотим добавить длительность повторения и интервал повторения.

$Task.Triggers.Repetition.Duration = "P1D"
$Task.Triggers.Repetition.Interval = "PT10M"

Вы, наверное, задаетесь вопросом, откуда я знал, что P1D будет равняться продолжительности 1 дня, и как я знал, что PT10M будет равняться интервалу повторения 10 минут, поскольку ни типичные значения даты / времени, ни временные интервалы, с которыми вы, вероятно, привыкли работать. Чтобы получить эти значения, я просто настроил желаемую продолжительность и интервал через графический интерфейс, а затем просмотрел результат через Powershell с помощью следующей команды:

$Task.Triggers.Repetition | fl *

Шаг 3 - Сохраните новую конфигурацию в запланированном задании. Помните, что вы должны здесь повторно ввести учетные данные для задачи, иначе операция не удастся.

$Task | Set-ScheduledTask -User "NT AUTHORITY\SYSTEM"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .