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.
Связанные ссылки
- about_Scheduled_Jobs
- Add-JobTrigger
- Disable-JobTrigger
- Disable-ScheduledJob
- Enable-JobTrigger
- Enable-ScheduledJob
- Get-JobTrigger
- Get-ScheduledJob
- Get-ScheduledJobOption
- New-JobTrigger
- New-ScheduledJobOption
- Register-ScheduledJob
- Remove-JobTrigger
- Set-JobTrigger
- Set-ScheduledJob
- Set-ScheduledJobOption
- Unregister-ScheduledJob