Поделиться через


Set-JobTrigger

Изменяет триггер задания для запланированного задания.

Синтаксис

Set-JobTrigger
   [-InputObject] <ScheduledJobTrigger[]>
   [-DaysInterval <Int32>]
   [-WeeksInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   [-At <DateTime>]
   [-User <String>]
   [-DaysOfWeek <DayOfWeek[]>]
   [-AtStartup]
   [-AtLogOn]
   [-Once]
   [-RepetitionInterval <TimeSpan>]
   [-RepetitionDuration <TimeSpan>]
   [-RepeatIndefinitely]
   [-Daily]
   [-Weekly]
   [-PassThru]
   [<CommonParameters>]

Описание

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

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

Чтобы изменить триггер задания запланированного задания, начните с помощью Get-JobTrigger командлета, чтобы получить триггер задания запланированного задания. Затем передайте триггер Set-JobTrigger или сохраните триггер в переменной и используйте параметр InputObject командлета для идентификации триггера Set-JobTrigger . Используйте оставшиеся параметры Set-JobTrigger для изменения триггера задания.

При изменении типа триггера задания, например при изменении триггера задания с ежедневного или еженедельного триггера на триггер AtLogon , удаляются исходные свойства триггера. Однако при изменении значений триггера, но не его типа, например, при изменении дней еженедельного триггера, изменяются только задаваемые свойства. Все остальные свойства исходного триггера задания сохраняются.

Set-JobTrigger — одна из коллекций командлетов планирования заданий в модуле PSScheduledJob, включенном в Windows PowerShell.

Дополнительные сведения о запланированных заданиях см. в разделах описания в модуле PSScheduledJob. Импортируйте модуль PSScheduledJob, а затем введите Get-Help about_Scheduled* или просмотрите about_Scheduled_Jobs.

Этот командлет впервые появился в Windows PowerShell 3.0.

Примеры

Пример 1. Изменение дней в триггере задания

В этом примере показано, как изменить дни в еженедельном триггере задания.

Get-JobTrigger -Name "DeployPackage"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Saturday}   True

Get-JobTrigger -Name "DeployPackage" | Set-JobTrigger -DaysOfWeek "Wednesday", "Sunday" -PassThru

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Sunday}     True

Первая команда использует Get-JobTrigger командлет для получения триггера задания запланированного DeployPackage задания. Выходные данные показывают, что триггер запускает задание в полночь по средам и субботам.

Вторая команда использует Get-JobTrigger командлет для получения триггера задания запланированного DeployPackage задания. Оператор конвейера (|) отправляет триггер в командлет, который изменяет триггер Set-JobTrigger задания таким образом, чтобы он запускал DeployPackage задание в среду и воскресенье. Команда использует параметр PassThru для возврата триггера после изменения.

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

Пример 2. Изменение типа триггера задания

В этом примере показано, как изменить тип триггера задания, который запускает задание. Команды в этом примере заменяют AtStartup триггер задания еженедельным триггером.

Get-JobTrigger -Name "Inventory"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          AtStartup                                                      True

Get-JobTrigger -Name "Inventory" -TriggerID 2 | Set-JobTrigger -Weekly -WeeksInterval 4 -DaysOfWeek Monday -At "12:00 AM"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          Weekly          10/31/2011 12:00:00 AM {Monday}                True

Первая команда использует Get-JobTrigger командлет для получения триггера задания запланированного Inventory задания. В выходных данных показано, что задание имеет два триггера ежедневного триггера и триггер AtStartup .

Вторая команда использует Get-JobTrigger командлет для получения триггера Inventory задания AtStartup задания. Команда использует параметр TriggerID для идентификации триггера задания. Оператор конвейера (|) отправляет триггер задания командлету, который изменяет его на еженедельный триггер Set-JobTrigger задания, который выполняется каждые четыре недели в понедельник в полночь. Команда использует параметр PassThru для возврата триггера после изменения.

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

Пример 3. Изменение пользователя в триггере удаленного задания

Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ScheduledJob | Get-JobTrigger | Where-Object {$_.User} | Set-JobTrigger -User "Domain01/Admin02"}

Эта команда изменяет пользователя во всех триггерах заданий AtLogon запланированных заданий на компьютере Server01.

Команда использует Invoke-Command командлет для выполнения команды на компьютере Server01.

Удаленная команда начинается с Get-ScheduledJob команды, которая получает все запланированные задания на компьютере. Запланированные задания передаются Get-JobTrigger командлету, который получает триггеры задания запланированных заданий. Каждый триггер задания содержит свойство JobDefinition , содержащее запланированное задание, поэтому триггер остается связанным с запланированным заданием даже при изменении.

Триггеры задания передаются Where-Object в командлет, который получает триггеры задания с свойством User . Выбранные триггеры задания передаются командлету Set-JobTrigger , который изменяет пользователя Domain01\Admin02на .

Пример 4. Изменение одного из нескольких триггеров задания

Get-JobTrigger -Name "SecurityCheck"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           4/24/2013 3:00:00 AM                           True
2          Weekly          4/24/2013 4:00:00 PM   {Sunday}                True
3          Once            4/24/2013 4:00:00 PM                           True

Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *

At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:00:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)
Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *

At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:30:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Команды в этом примере изменяют интервал повторения триггера задания "Один раз " запланированного SecurityCheck задания каждые 60 минут на каждые 90 минут. Запланированное SecurityCheck задание имеет три триггера задания, поэтому команды используют параметр Get-JobTrigger TriggerId командлета для идентификации измененного триггера задания.

Первая команда использует Get-JobTrigger командлет для получения всех триггеров задания запланированного SecurityCheck задания. Выходные данные, отображающие идентификаторы триггеров задания, показывают, что триггер задания "После создания" имеет идентификатор3.

Вторая команда использует параметр Get-JobTrigger TriggerID командлета для получения триггера после запланированного SecurityCheck задания. Командная команда передает триггер Format-List командлету, который отображает все свойства триггера задания "Один раз ". В выходных данных показано, что триггер запускает задание один раз в час (ПовторениеInterval составляет 1 час) в течение одного дня (Повторение — 1 день).

Третья команда изменяет интервал повторения триггера задания с одного часа до 90 минут. Команда не возвращает выходные данные.

Четвертая команда отображает эффект изменения. Выходные данные показывают, что триггер запускает задание каждые 90 минут (ПовторениеInterval составляет 1 час, 30 минут) в течение одного дня (повторение — 1 день).

Параметры

-At

Запускает задание в указанный день и указанное время. Введите объект DateTime, например возвращаемый Get-Date командлетом, или строку, которую можно преобразовать в время, например April 19, 2012 15:00, 12/31/2013 9:00 PMили 3am.

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

При использовании параметра "После" задайте для параметра At определенное значение даты и времени. Так как дата по умолчанию в объекте DateTime является текущей датой, установка времени до текущего времени без явной даты приводит к триггеру задания в течение времени в прошлом.

Объекты DateTime и строки, преобразованные в объекты DateTime, автоматически настраиваются для совместимости с форматами даты и времени, выбранными для локального компьютера в регионе и языке в панель управления.

Тип:DateTime
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AtLogOn

Запускает запланированное задание при входе указанных пользователей на компьютер. Чтобы указать пользователя, используйте параметр User .

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AtStartup

Запускает запланированное задание при запуске Windows.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Daily

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DaysInterval

Указывает количество дней между выполнениями для ежедневного расписания. Например, значение запуска запланированного 3 задания в днях 147 и т. д. Значение по умолчанию — 1.

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DaysOfWeek

Указывает дни недели, по которым выполняется запланированное задание. Введите имена дней, например MondayThursday, целые-06 числа, где 0 представляет воскресенье или звездочку (*) для каждого дня. Этот параметр требуется в еженедельном наборе параметров.

Названия дней преобразуются в их целочисленные значения в триггере задания. При закрытии имен дней в кавычки в команде заключите каждое имя дня в отдельные кавычки, например "Monday", "Tuesday". Если заключить несколько названий дней в одну пару одинарных кавычек, соответствующие целые значения суммируются. Например, "Monday, Tuesday" (1 + 2) приводит к значению Wednesday (3).

Тип:DayOfWeek[]
Допустимые значения:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InputObject

Указывает триггеры задания. Введите переменную, содержащую объекты ScheduledJobTrigger, или введите команду или выражение, которое получает объекты ScheduledJobTrigger, например Get-JobTrigger команду. Вы также можете передать объект Set-JobTriggerScheduledJobTrigger в .

Если указать несколько триггеров заданий, Set-JobTrigger внесите одинаковые изменения во все триггеры задания.

Тип:ScheduledJobTrigger[]
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Once

Задает разовое (неповторяющееся) расписание.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-PassThru

Возвращает изменившиеся триггеры задания. По умолчанию этот командлет не создает выходные данные.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-RandomDelay

Включает случайную задержку, которая начинается в запланированное время начала, и задает максимальное значение этой задержки. Длительность задержки задается для каждого запуска псевдослучайным образом и лежит в диапазоне от нуля до значения этого параметра. Значение по умолчанию, ноль (00:00:00), отключает случайную задержку.

Введите объект timepan, например один, возвращаемый New-TimeSpan командлетом, или введите значение в формате, которое автоматически преобразуется в <hours>:<minutes>:<seconds> объект timepan.

Тип:TimeSpan
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-RepeatIndefinitely

Этот параметр, доступный начиная с Windows PowerShell 4.0, устраняет необходимость указания значения TimeSpan.MaxValue для параметра RepetitionDuration для многократного выполнения запланированного задания в течение неопределенного периода.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-RepetitionDuration

Повторяет задание до истечения заданного времени. Частота повторения определяется значением параметра RepetitionInterval . Например, если значение "Повторение" равно 5 минутам, а значение "Повторение " составляет 2 часа, задание запускается каждые пять минут в течение двух часов.

Введите объект timepan, например New-TimeSpan возвращаемый командлетом или строку, которую можно преобразовать в объект timepan, например 1:05:30.

Чтобы запустить задание на неопределенный срок, добавьте вместо него параметр RepeatIndefinitely .

Чтобы остановить задание до истечения срока действия повторения триггера задания, задайте для значения "Повторение ", равное нулю (0).

Чтобы изменить длительность повторения или интервал повторения триггера задания "После ", команда должна включать параметры "Повторение" и "Повторение ". Чтобы изменить длительность повторения или интервалы повторения других типов триггеров заданий, команда должна включать параметры "Один раз", "At", "Повторение" и "Повторение".

Тип:TimeSpan
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-RepetitionInterval

Повторяет задание с определенным интервалом. Например, если значение этого параметра равно 2 часам, задание активируется каждые два часа. Значение по умолчанию не 0повторяет задание.

Введите объект timepan, например New-TimeSpan возвращаемый командлетом или строку, которую можно преобразовать в объект timepan, например 1:05:30.

Чтобы изменить длительность повторения или интервал повторения триггера задания "После ", команда должна включать параметры "Повторение" и "Повторение ". Чтобы изменить длительность повторения или интервалы повторения других типов триггеров заданий, команда должна включать параметры "Один раз", "At", "Повторение" и "Повторение".

Тип:TimeSpan
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-User

Указывает пользователей, которые активируют начало запланированного задания AtLogon . Введите имя пользователя в <UserName> формате или формате или <Domain>\<Username> введите звездочку (*) для представления всех пользователей. По умолчанию заданы все пользователи.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Weekly

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WeeksInterval

Указывает количество недель между выполнениями для еженедельного расписания. Например, значение запуска запланированного 3 задания в неделях 147 и т. д. Значение по умолчанию — 1.

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

ScheduledJobTrigger

Триггер задания можно передать этому командлету.

Выходные данные

None

По умолчанию этот командлет не возвращает выходные данные.

ScheduledJobTrigger

При использовании параметра PassThru этот командлет возвращает триггеры задания, которые он изменил.

Примечания

  • Триггеры задания имеют свойство JobDefinition , которое связывает их с запланированным заданием. При изменении триггера запланированного заданий изменяется и это задание. Для применения измененного триггера к запланированному заданию не требуется использовать Set-ScheduledJob команду.