Поделиться через


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-JobTriggerSet-JobTriggerкомандлеты и Set-ScheduledJobOption командлеты обеспечивают гораздо более простые способы выполнения этих задач. Чтобы создать запланированное задание, используйте Register-ScheduledJob командлет.

Параметр триггераSet-ScheduledJob добавляет один или несколько триггеров задания, запускающих задание. Параметр триггера необязателен, поэтому можно добавлять триггеры при создании запланированного задания, добавлять триггеры задания позже, добавлять параметр RunNow для немедленного запуска задания, использовать Start-Job командлет для запуска задания немедленно или сохранять незапланированное запланированное задание в качестве шаблона для других заданий.

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

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

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

Примеры

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

В этом примере показано, как изменить сценарий, который выполняется в запланированном задании.

Get-ScheduledJob -Name "Inventory"

Id         Name            Triggers        Command                                  Enabled
--         ----            --------        -------                                  -------
1          Inventory       {1}             C:\Scripts\Get-Inventory.ps1             True

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.

Вторая команда использует Get-ScheduledJob командлет для получения запланированного задания инвентаризации. Оператор конвейера (|) отправляет запланированное задание командлету Set-ScheduledJob . Командлет Set-ScheduledJob использует параметр script для указания нового скрипта Get-FullInventory.ps1. Команда использует параметр Passthru для возврата запланированного задания после изменения.

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

Пример 2. Удаление журнала выполнения запланированного задания

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

Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory

Команда использует Get-ScheduledJob командлет для получения запланированного задания BackupArchive. Оператор конвейера (|) отправляет задание командлету Set-ScheduledJob , чтобы изменить его. Командлет Set-ScheduledJob использует параметр ClearExecutionHistory для удаления журнала выполнения и сохраненных результатов.

Дополнительные сведения о журнале выполнения и сохраненных результатах задания запланированных заданий см. в about_Scheduled_Jobs.

Пример 3. Изменение запланированных заданий на удаленном компьютере

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

Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob |
    Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}

Команда использует 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

Задает механизм, используемый при проверке подлинности учетных данных пользователя. Допустимые значения для этого параметра:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Значение по умолчанию — Default. Дополнительные сведения о значениях этого параметра см. в разделе "Перечисление AuthenticationMechanism" в пакете SDK Для PowerShell.

Внимание

Проверка подлинности поставщика поддержки безопасности учетных данных (CredSSP), при которой учетные данные пользователя передаются на удаленный компьютер, который будет проходить проверку подлинности, предназначен для команд, требующих проверки подлинности на нескольких ресурсах, таких как доступ к удаленному сетевому ресурсу. Этот механизм повышает риск безопасности удаленной операции. Если удаленный компьютер скомпрометирован, учетные данные, передаваемые ему, могут использоваться для управления сетевым сеансом.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
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:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

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

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential , например из командлета Get-Credential . Если ввести только имя пользователя, появится приглашение ввести пароль.

Type:PSCredential
Position:Named
Default value:None
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 команду. Можно также передать объект Set-ScheduledJobScheduledJobDefinition в .

Если указать несколько запланированных заданий, 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:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

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

Чтобы определить запланированное задание для изменения, используйте параметр InputObject или переведите запланированное задание из Get-ScheduledJobSet-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:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAs32

Запускает запланированное задание в 32-разрядном процессе.

Type:SwitchParameter
Position:Named
Default value:None
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-ScheduledJobOptionSet-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

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

ScheduledJobDefinition

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

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

None

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

ScheduledJobDefinition

При использовании параметра PassThru этот командлет возвращает запланированное задание, которое оно изменило.