Как запланировать выполнение задачи с помощью PowerShell каждый час с понедельника по пятницу с 8:00 до 18:00.

423
DivZ

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

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

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

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

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

Как запланировать выполнение задачи с помощью PowerShell каждый час с понедельника по пятницу с 8:00 до 18:00.

1
Какая версия PowerShell? Вы изучили импорт XML-файла запланированной задачи, для которого уже определено расписание? music2myear 6 лет назад 0

1 ответ на вопрос

0
postanote

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

Похожие вопросы