Set-ScheduledJob
Изменяет запланированные задания.
Синтаксис
Set-ScheduledJob
[-Name <String>]
[-ScriptBlock <ScriptBlock>]
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-InputObject] <ScheduledJobDefinition>
[-MaxResultCount <Int32>]
[-PassThru]
[-ArgumentList <Object[]>]
[-RunNow]
[-RunEvery <TimeSpan>]
[<CommonParameters>]
Set-ScheduledJob
[-Name <String>]
[-FilePath <String>]
[-Trigger <ScheduledJobTrigger[]>]
[-InitializationScript <ScriptBlock>]
[-RunAs32]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-ScheduledJobOption <ScheduledJobOptions>]
[-InputObject] <ScheduledJobDefinition>
[-MaxResultCount <Int32>]
[-PassThru]
[-ArgumentList <Object[]>]
[-RunNow]
[-RunEvery <TimeSpan>]
[<CommonParameters>]
Set-ScheduledJob
[-InputObject] <ScheduledJobDefinition>
[-ClearExecutionHistory]
[-PassThru]
[<CommonParameters>]
Описание
Командлет Set-ScheduledJob изменяет свойства запланированных заданий, например, команды, которые выполняют задания, или учетные данные, необходимые для выполнения задания. Его также можно использовать для очистки журнала выполнения запланированного задания.
Чтобы использовать этот командлет, начните с Get-ScheduledJob командлета, чтобы получить запланированное задание. Затем передайте запланированное задание в Set-ScheduledJob или сохраните задание в переменной и используйте параметр InputObject для идентификации задания. Используйте остальные параметры Set-ScheduledJob для изменения свойств задания или очистки журнала выполнения.
Хотя для изменения триггеров и параметров запланированного задания можно использовать Set-ScheduledJob , командлеты Add-JobTrigger, Set-JobTrigger и Set-ScheduledJobOption предоставляют гораздо более простые способы выполнения этих задач. Чтобы создать новое запланированное задание, используйте командлет Register-ScheduledJob.
Параметр Triggerобъекта Set-ScheduledJob добавляет один или несколько триггеров задания, запускающих задание. Параметр Trigger необязателен, поэтому вы можете добавлять триггеры при создании запланированного задания, добавлять триггеры задания позже, добавлять параметр RunNow для немедленного запуска задания, использовать командлет Start-Job для немедленного запуска задания или сохранять незапланированное запланированное задание в качестве шаблона для других заданий.
Set-ScheduledJob — это одна из коллекций командлетов планирования заданий в модуле PSScheduledJob, включенном в Windows PowerShell.
Дополнительные сведения о запланированных заданиях см. в разделах описания в модуле PSScheduledJob.
Импортируйте модуль PSScheduledJob, а затем введите Get-Help about_Scheduled*
или просмотрите статью about_Scheduled_Jobs.
Этот командлет впервые появился в Windows PowerShell 3.0.
Примеры
Пример 1. Изменение скрипта, выполняемого заданием
PS C:\> Get-ScheduledJob -Name "Inventory"
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-Inventory.ps1 True
The second command uses the Get-ScheduledJob cmdlet to get the Inventory scheduled job. A pipeline operator (|) sends the scheduled job to the **Set-ScheduledJob** cmdlet. The **Set-ScheduledJob** cmdlet uses the *Script* parameter to specify a new script, Get-FullInventory.ps1. The command uses the *Passthru* parameter to return the scheduled job after the change.
PS C:\> Get-ScheduledJob -Name "Inventory" | Set-ScheduledJob -FilePath "C:\Scripts\Get-FullInventory.ps1" -Passthru
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
1 Inventory {1} C:\Scripts\Get-FullInventory.ps1 True
В этом примере показано, как изменить сценарий, который выполняется в запланированном задании.
Первая команда использует командлет Get-ScheduledJob для получения запланированного задания инвентаризации. Выходные данные показывают, что задание выполняет сценарий Get-Inventory.ps1.
Эта команда не является обязательной, она включена только для того, чтобы показать эффект изменения сценария.
Пример 2. Удаление журнала выполнения запланированного задания
PS C:\> Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory
Эта команда удаляет текущий журнал выполнения и сохраненные результаты задания для запланированного задания BackupArchive.
Команда использует командлет Get-ScheduledJob для получения запланированного задания BackupArchive. Конвейерный оператор (|) отправляет задание в командлет Set-ScheduledJob, который изменяет его. Командлет Set-ScheduledJob использует параметр ClearExecutionHistory для удаления журнала выполнения и сохранения результатов.
Дополнительные сведения о журнале выполнения и сохраненных результатах задания для запланированных заданий см. в описании about_Scheduled_Jobs.
Пример 3. Изменение запланированных заданий на удаленном компьютере
PS C:\> Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob | Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}
Эта команда изменяет сценарий инициализации во всех запланированных заданиях на компьютерах Server01 и Server02.
Команда использует командлет Invoke-Command для выполнения команды на компьютерах Server01 и Server02.
Удаленная команда начинается с команды Get-ScheduledJob, которая получает все запланированные задания на компьютере. Запланированные задания передаются в командлет Set-ScheduledJob , который изменяет скрипт инициализации на SetForRun.ps1.
Параметры
-ArgumentList
Указывает значения для параметров сценария, который определяется параметром FilePath, или для команды, которая определяется параметром ScriptBlock.
Type: | Object[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Authentication
Задает механизм, используемый при проверке подлинности учетных данных пользователя. Допустимые значения для этого параметра:
- Значение по умолчанию
- Basic
- Credssp
- Digest (дайджест)
- Kerberos
- Согласование
- NegotiateWithImplicitCredential
Значение по умолчанию — Default. Дополнительные сведения о значениях этого параметра см. в описании перечисления AuthenticationMechanism в библиотеке MSDN.
Внимание! Аутентификация CredSSP, в рамках которой учетные данные пользователя передаются на удаленный компьютер для проверки, предназначена для команд, требующих аутентификацию нескольких ресурсов, например для доступа к удаленной сетевой папке. Этот механизм повышает риск безопасности удаленной операции. Если удаленный компьютер скомпрометирован, учетные данные, передаваемые ему, могут использоваться для управления сетевым сеансом.
Type: | AuthenticationMechanism |
Accepted values: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | Default |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ClearExecutionHistory
Удаляет текущий журнал выполнения и сохраненные результаты запланированного задания.
Журнал выполнения заданий и результаты задания сохраняются вместе с запланированным заданием в каталоге $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs на компьютере, где это задание создано. Чтобы просмотреть журнал выполнения, используйте командлет Get-Job. Чтобы получить результаты задания, используйте командлет Receive-Job.
Этот параметр не влияет на события, которые планировщик записывает в журналы событий Windows, и не запрещает Windows PowerShell сохранять результаты заданий. Чтобы управлять объемом сохраняемых результатов заданий, используйте параметр MaxResultCount.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Указывает учетную запись пользователя, обладающую разрешением для выполнения запланированного задания. По умолчанию используется текущий пользователь.
Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential , например из командлета Get-Credential. Если ввести только имя пользователя, появится приглашение ввести пароль.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Указывает сценарий, запускаемый запланированным заданием. Введите путь к PS1-файлу на локальном компьютере. Чтобы задать значения по умолчанию для параметров сценария, используйте параметр ArgumentList. Каждое запланированное задание должно иметь либо значение ScriptBlock, либо значение FilePath.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InitializationScript
Указывает полный путь к сценарию Windows PowerShell (PS1). Сценарий инициализации выполняется в сеансе, который создается для фонового задания перед командами, которые задаются параметром ScriptBlock, или сценарием, который задается параметром FilePath. Сценарий инициализации можно использовать для настройки сеанса, например, для добавления файлов, функций или псевдонимов, создания каталогов или проверки наличия необходимых компонентов.
Чтобы задать сценарий, который выполняет команды основного задания, используйте параметр FilePath.
Если скрипт инициализации создает ошибку, включая неустранимую ошибку, текущий экземпляр запланированного задания не запускается и его состояние завершается сбоем.
Type: | ScriptBlock |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Задает изменяемое запланированное задание. Введите переменную, содержащую объекты ScheduledJobDefinition , или введите команду или выражение, которое получает объекты ScheduledJobDefinition , например команду Get-ScheduledJob. Можно также передать объект ScheduledJobDefinition в Set-ScheduledJob.
При указании нескольких запланированных заданий Set-ScheduledJob вносит одинаковые изменения во все задания.
Type: | ScheduledJobDefinition |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MaxResultCount
Указывает, сколько записей результатов задания хранится для запланированного задания. Значение по умолчанию: 32.
Windows PowerShell сохраняет журнал выполнения и результаты каждого активированного экземпляра запланированного задания на диске. Значение этого параметра определяет количество результатов экземпляра задания, сохраняемых для данного запланированного задания. Когда число результатов экземпляра задания превышает это значение, Windows PowerShell удаляет результаты самого старого экземпляра задания, чтобы освободить место для результатов более нового экземпляра задания.
Журнал выполнения задания и результаты задания сохраняются в каталоге $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp> на компьютере, на котором создается задание. Чтобы просмотреть журнал выполнения, используйте командлет Get-Job. Чтобы получить результаты задания, используйте командлет Receive-Job.
Параметр MaxResultCount задает значение свойства ExecutionHistoryLength для запланированного задания.
Чтобы удалить текущие результаты задания и журнал выполнения, используйте параметр ClearExecutionHistory.
Type: | Int32 |
Position: | Named |
Default value: | 32 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Указывает новое имя для запланированного задания и его экземпляров. Это имя должно быть уникальным на локальном компьютере.
Чтобы определить запланированное задание, который необходимо изменить, используйте параметр InputObject или передайте запланированное задание из Get-ScheduledJob в Set-ScheduledJob.
Этот параметр не изменяет имена экземпляров задания на диске. Он затрагивает только те экземпляры задания, которые запускаются после выполнения этой команды.
Type: | String |
Position: | Named |
Default value: | None |
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 |
-RunAs32
Запускает запланированное задание в 32-разрядном процессе.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunEvery
Используется для указания частоты выполнения задания. Например, используйте этот параметр для выполнения задания каждые 15 минут.
Type: | TimeSpan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunNow
Немедленно запускает задание после запуска командлета Set-ScheduledJob . Этот параметр устраняет необходимость запуска планировщика заданий для выполнения сценария Windows PowerShell сразу после регистрации и не требует от пользователей создания триггера, который указывает начальную дату и время.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ScheduledJobOption
Задает параметры для запланированного задания. Введите объект ScheduledJobOptions , например объект, создаваемый с помощью командлета New-ScheduledJobOption или хэш-таблицы.
Параметры запланированного задания можно задать при регистрации запланированного задания или использовать командлеты Set-ScheduledJobOption или Set-ScheduledJob для задания или изменения параметров.
Многие параметры и их значения по умолчанию определяют, запускается ли запланированное задание и когда это происходит. Обязательно просмотрите эти параметры перед планированием задания. Описание параметров запланированного задания, включая значения по умолчанию, см. в разделе New-ScheduledJobOption.
Чтобы отправить хэш-таблицу, используйте следующие ключи. Ключи в следующей хэш-таблице ключи приведены со значениями по умолчанию.
@{# Power SettingsStartIfOnBattery=$False;StopIfGoingOnBattery=$True; WakeToRun=$False; # Idle SettingsStartIfNotIdle=$False; IdleDuration="00:10:00"; IdleTimeout="01:00:00"; StopIfGoingOffIdle=$True; RestartOnIdleResume=$False;# Security settingsShowInTaskScheduler=$TrueRunElevated=$False;# MiscRunWithoutNetwork=$False;DoNotAllowDemandStart=$False;MultipleInstancePolicy=IgnoreNew# Can be IgnoreNew, Parallel, Queue, StopExisting}
Type: | ScheduledJobOptions |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ScriptBlock
Указывает команды, выполняемые запланированным заданием. Чтобы создать блок скрипта, заключите команды в скобки ( { } ). Чтобы задать значения по умолчанию для параметров команды, используйте параметр ArgumentList.
Каждая команда Register-ScheduledJob должна использовать либо параметр ScriptBlock, либо параметр FilePath.
Type: | ScriptBlock |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Trigger
Задает триггеры для запланированного задания. Введите один или несколько объектов ScheduledJobTrigger , например объекты, возвращаемые командлетом New-JobTrigger, или хэш-таблицу ключей и значений триггера задания.
Триггер задания запускает запланированное задание автоматически в однократном или повторяющемся расписании или при возникновении события.
Триггеры задания не являются обязательными. Триггер можно добавить при создании запланированного задания, использовать командлеты Add-JobTrigger или Set-ScheduledJob для добавления триггеров позже или использовать командлет Start-Job для немедленного запуска запланированного задания. Можно также создать и поддерживать запланированное задание, которое не имеет триггеров задания.
Чтобы отправить хэш-таблицу, используйте следующие ключи.
@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am"
(или любая допустимая строка времени); DaysOfWeek="Monday", "Wednesday"
(или любое сочетание имен дней); Interval=2
(или любой допустимый интервал частоты); RandomDelay="30minutes"
(или любая допустимая строка интервала времени); User="Domain1\User01"
(или любой допустимый пользователь; используется только со значением частоты AtLogon)
}
Type: | ScheduledJobTrigger[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
Можно передать запланированные задания в Set-ScheduledJob.
Выходные данные
None or Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
При использовании параметра Passthru командлет 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