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. Изменение дней в триггере задания

PS C:\> Get-JobTrigger -Name "DeployPackage"
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Saturday}   True

The second command uses the Get-JobTrigger cmdlet to get the job trigger of the DeployPackage scheduled job. A pipeline operator (|) sends the trigger to the **Set-JobTrigger** cmdlet, which changes the job trigger so that it starts the DeployPackage job on Wednesdays and Sundays. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> 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. Выходные данные показывают, что триггер запускает задание в полночь по средам и субботам.

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

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

PS C:\> Get-JobTrigger -Name "Inventory"
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          AtStartup                                                      True

The second command uses the **Get-JobTrigger** cmdlet to get the *AtStartup* job trigger of the Inventory job. The command uses the *TriggerID* parameter to identify the job trigger. A pipeline operator (|) sends the job trigger to the **Set-JobTrigger** cmdlet, which changes it to a weekly job trigger that runs every four weeks on Monday at midnight. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> 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

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

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

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

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

PS C:\> 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. Изменение одного из нескольких триггеров задания

PS C:\> 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

The second command uses the **TriggerID** parameter of the **Get-JobTrigger** cmdlet to get the *Once* trigger of the SecurityCheck scheduled job. The command pipes the trigger to the Format-List cmdlet, which displays all of the properties of the *Once* job trigger.The output shows that the trigger starts the job once every hour (RepetitionInterval = 1 hour) for one day (RepetitionDuration = 1 day).
PS C:\> 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

The third command changes the repetition interval of the job trigger from one hour to 90 minutes. The command does not return any output.
PS C:\> Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)

The fourth command displays the effect of the change.The output shows that the trigger starts the job once every 90 minutes (RepetitionInterval = 1 hour, 30 minutes) for one day (RepetitionDuration = 1 day).
PS C:\> 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

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

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

Параметры

-At

Запускает задание в указанный день и указанное время. Введите объект DateTime , например объект, возвращаемый командлетом Get-Date, или строку, которая может быть преобразована в определенное время, например "19 апреля 2012 15:00", "12.31.2013 9:00" или "3 утра".

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

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

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

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AtLogOn

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AtStartup

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Daily

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DaysInterval

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

Type:Int32
Position:Named
Default value:1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DaysOfWeek

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

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

Type:DayOfWeek[]
Accepted values:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

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

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

Type:ScheduledJobTrigger[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Once

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RandomDelay

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

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

Type:TimeSpan
Position:Named
Default value:00:00:00
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepeatIndefinitely

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionDuration

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

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

Для бессрочного выполнения задания добавьте вместо этого параметр RepeatIndefinitely.

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

Чтобы изменить длительность повторения или интервал повторения триггера задания Once, команда должна содержать оба параметра RepetitionInterval и RepetitionDuration. Чтобы изменить длительность повторения или интервалы повторения других типов триггеров задания, команда должна содержать параметры Once, At, RepetitionInterval и RepetitionDuration.

Type:TimeSpan
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionInterval

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

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

Чтобы изменить длительность повторения или интервал повторения триггера задания Once, команда должна содержать оба параметра RepetitionInterval и RepetitionDuration. Чтобы изменить длительность повторения или интервалы повторения других типов триггеров задания, команда должна содержать параметры Once, At, RepetitionInterval и RepetitionDuration.

Type:TimeSpan
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-User

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

Type:String
Position:Named
Default value:All users
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Weekly

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WeeksInterval

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

Type:Int32
Position:Named
Default value:1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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

Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Вы можете передать несколько триггеров заданий в Set-JobTrigger.

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

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

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

Примечания

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