New-JobTrigger

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

Синтаксис

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

Описание

Командлет New-JobTrigger создает триггер задания, который запускает запланированное задание в однократном или повторяющемся расписании или при возникновении события.

Можно использовать объект ScheduledJobTrigger, возвращаемый New-JobTrigger, чтобы задать триггер задания для нового или существующего запланированного задания. Можно также создать триггер задания с помощью командлета Get-JobTrigger для получения триггера задания существующего запланированного задания или с помощью хэш-табличного значения для представления триггера задания.

При создании триггера задания проверьте значения по умолчанию параметров, указанных командлетом New-ScheduledJobOption. Эти свойства, у которых допустимые значения и значения по умолчанию совпадают с соответствующими параметрами в Task Scheduler, влияют на график и периодичность запланированных заданий.

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

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

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

Примеры

Пример 1. Однократный график

PS C:\> New-JobTrigger -Once -At "1/20/2012 3:00 AM"

Эта команда использует командлет New-JobTrigger, чтобы создать триггер задания, который запускает запланированное задание только один раз. Значение параметра At представляет собой строку, которую Windows PowerShell преобразует в объект DateTime. Значение параметра At включает в себя не только время, но и дату в явном виде. Если дата была пропущена, триггер создается с текущей датой и временем 3:00, что с большой вероятностью относится ко времени в прошлом.

Пример 2. Ежедневное расписание

PS C:\> New-JobTrigger -Daily -At "4:15 AM" -DaysInterval 3
Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
0          Daily           9/21/2012 4:15:00 AM                           True

Эта команда создает триггер задания, который запускает запланированное задание каждые 3 дня в 4:15.

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

Пример 3. Еженедельное расписание

PS C:\> New-JobTrigger -Weekly -DaysOfWeek Monday, Wednesday, Friday -At "23:00" -WeeksInterval 4
Id Frequency Time                  DaysOfWeek                  Enabled
-- --------- ----                  ----------                  -------
0  Weekly    9/21/2012 11:00:00 PM {Monday, Wednesday, Friday} True

Эта команда создает триггер задания, который запускает запланированное задание каждые 4 недели в понедельник, среду и пятницу в 23:00.

Можно также ввести значение параметра DaysOfWeek в целых числах, например -DaysOfWeek 1, 5.

Пример 4. Расписание входа

PS C:\> New-JobTrigger -AtLogOn -User Domain01\Admin01

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

Пример 5. Использование случайной задержки

PS C:\> New-JobTrigger -Daily -At 1:00 -RandomDelay 00:20:00

Эта команда создает триггер задания, который запускает запланированное задание каждый день в 1:00. Команда использует параметр RandomDelay для указания максимальной задержки (до 20 минут). В результате задание выполняется ежедневно в интервале с 1:00 до 1:20, изменяющемся псевдослучайным образом.

Случайную задержку можно использовать для выборки, балансировки нагрузки и других административных задач. При задании значения задержки просмотрите действующие и стандартные значения командлета New-ScheduledJobOption и координирует задержку с параметрами параметра.

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

The first command uses the **New-JobTrigger** cmdlet to create a job trigger that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The command saves the job trigger in the $T variable.
PS C:\> $T = New-JobTrigger -Weekly -DaysOfWeek 1,3,5 -At 12:01AM


The second command uses the Register-ScheduledJob cmdlet to create a scheduled job that starts a job every Monday, Wednesday, and Friday at 12:01 AM. The value of the *Trigger* parameter is the trigger that is stored in the $T variable.
PS C:\> Register-ScheduledJob -Name Test-HelpFiles -FilePath C:\Scripts\Test-HelpFiles.ps1 -Trigger $T

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

Пример 7. Добавление триггера задания в запланированное задание

PS C:\> Add-JobTrigger -Name SynchronizeApps -Trigger (New-JobTrigger -Daily -At 3:10AM)

В этом примере показано, как добавить триггер задания в существующее запланированное задания. Для любого запланированного задания можно добавить несколько триггеров задания.

Команда использует командлет Add-JobTrigger для добавления триггера задания в запланированное задание SynchronizeApps. Значением параметра Trigger является команда New-JobTrigger, которая запускает задание каждый день в 3:10.

После завершения выполнения команды SynchronizeApps становится запланированным заданием, которое запускается во время, заданное триггером задания.

Пример 8. Создание триггера повторяющегося задания

PS C:\> New-JobTrigger -Once -At "09/12/2013 1:00:00" -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration (New-Timespan -Hours 48)

Эта команда создает триггер задания, который выполняет задание каждые 60 минут в течение 48 часов, начиная с 12 сентября 2013 г. в 1:00.

Пример 9. Остановка триггера повторяющегося задания

PS C:\> Get-JobTrigger -Name SecurityCheck | Set-JobTrigger -RepetitionInterval 0:00 -RepetitionDuration 0:00

Эта команда принудительно останавливает задание SecurityCheck, которое активируется для запуска каждые 60 минут до истечения срока действия триггера задания.

Чтобы предотвратить повторение задания, команда использует Get-JobTrigger для получения триггера задания SecurityCheck и командлета Set-JobTrigger, чтобы изменить интервал повторения и длительность повторения триггера задания на ноль (0).

Пример 10. Создание почасового триггера задания

PS C:\> New-JobTrigger -Once -At "9/21/2012 0am" -RepetitionInterval (New-TimeSpan -Hour 12) -RepetitionDuration ([TimeSpan]::MaxValue)

Следующая команда создает триггер задания, который запускает запланированное задание каждые 12 часов в течение неопределенного периода времени. Расписание начинается завтра (9/21/2012) в полночь (0:00).

Параметры

-At

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

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

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

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

-AtLogOn

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

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

-AtStartup

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

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

-Daily

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

Type:SwitchParameter
Position:0
Default value:None
Required:True
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

Указывает дни недели, по которым выполняется запланированное задание. Введите названия дней, например Monday, или целые числа от 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:True
Accept pipeline input:False
Accept wildcard characters:False

-Once

Задает разовое (неповторяющееся) или пользовательское расписание. Чтобы создать повторяющееся расписание, используйте параметр Once с параметрами RepetitionDuration и RepetitionInterval.

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

-RandomDelay

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

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

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.

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

Этот параметр активен, только если в команде также используются параметры Once, At и RepetitionInterval.

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, At и 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:0
Default value:None
Required:True
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

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

None

В этот командлет нельзя передать входные данные.

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

Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Примечания

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

  • New-JobTrigger не препятствует созданию триггера задания, который не будет выполнять запланированное задание, например одноразовый триггер для даты в прошлом.

  • Командлет Register-ScheduledJob принимает объект ScheduledJobTrigger, например объект New-JobTrigger или командлеты Get-JobTrigger, или хэш-таблицу со значениями триггеров.

    Чтобы отправить хэш-таблицу, используйте следующие ключи.

    @{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (или любая допустимая строка времени); DaysOfWeek="Monday", "Wednesday" (или любое сочетание имен дней); Interval=2 (или любой допустимый интервал частоты); RandomDelay="30minutes" (или любая допустимая строка интервала времени); User="Domain1\User01 (или любой допустимый пользователь; используется только со значением частоты AtLogon ) }