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 возвращает запланированное задание, которое было изменено. В противном случае командлет не формирует никаких выходных данных.