Это подход, документированный 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"