Set-ScheduledJobOption

更改计划作业的作业选项。

语法

Default (默认值)

Set-ScheduledJobOption
    [-InputObject] <ScheduledJobOptions>
    [-PassThru]
    [-RunElevated]
    [-HideInTaskScheduler]
    [-RestartOnIdleResume]
    [-MultipleInstancePolicy <TaskMultipleInstancePolicy>]
    [-DoNotAllowDemandStart]
    [-RequireNetwork]
    [-StopIfGoingOffIdle]
    [-WakeToRun]
    [-ContinueIfGoingOnBattery]
    [-StartIfOnBattery]
    [-IdleTimeout <TimeSpan>]
    [-IdleDuration <TimeSpan>]
    [-StartIfIdle]
    [<CommonParameters>]

说明

Set-ScheduledJobOptions cmdlet 更改计划作业的作业选项。

若要更改计划作业的选项,请首先使用 Get-ScheduledJobOption cmdlet 获取计划作业的作业选项。 然后,通过管道将选项传递给 Set-ScheduledJobOption 或保存变量中的选项,并使用 Set-ScheduledJobOption cmdlet 的 InputObject 参数来标识这些选项。 使用 Set-ScheduledJobOption 的剩余参数更改作业选项。

若要打开作业选项,请使用设置该选项的参数。 若要关闭选项,请键入参数名称、冒号(:)和$False)。 例如,若要关闭 RunElevated 选项,请键入 -RunElevated:$False

每个作业选项对象都包含一个包含计划作业的 JobDefinition 属性,因此在更改作业选项时保留与计划作业的关联。

计划作业选项确定作业在任务计划程序启动作业时如何运行。 使用 Start-Job cmdlet 启动计划作业时,这些选项不适用。

Set-ScheduledJobOption 是 WINDOWS PowerShell 中包含的 PSScheduledJob 模块中作业计划 cmdlet 的集合之一。

有关计划作业的详细信息,请参阅 PSScheduledJob 模块中的“关于”主题。 导入 PSScheduledJob 模块,然后键入:Get-Help about_Scheduled* 或查看about_Scheduled_Jobs。

此 cmdlet 已在 Windows PowerShell 3.0 中引入。

示例

示例 1:更改作业选项

PS C:\> Get-ScheduledJobOption -Name "DeployPackage"
StartIfOnBatteries     : False
StopIfGoingOnBatteries : True
WakeToRun              : False
StartIfNotIdle         : True
StopIfGoingOffIdle     : False
RestartOnIdleResume    : False
IdleDuration           : 00:10:00
IdleTimeout            : 01:00:00
ShowInTaskScheduler    : True
RunElevated            : False
RunWithoutNetwork      : False
DoNotAllowDemandStart  : False
MultipleInstancePolicy : IgnoreNew
JobDefinition          :

The second command uses the **Set-ScheduledJobOpton** cmdlet to change the job options so the values of the WakeToRun and RunWithoutNetwork properties are $True. The command uses the *Passthru* parameter to return the trigger after the change.
PS C:\> Get-ScheduledJobOption -Name "DeployPackage" | Set-ScheduledJobOption -WakeToRun -RequireNetwork:$False -Passthru
StartIfOnBatteries     : False
StopIfGoingOnBatteries : True
WakeToRun              : True
StartIfNotIdle         : True
StopIfGoingOffIdle     : False
RestartOnIdleResume    : False
IdleDuration           : 00:10:00
IdleTimeout            : 01:00:00
ShowInTaskScheduler    : True
RunElevated            : False
RunWithoutNetwork      : True
DoNotAllowDemandStart  : False
MultipleInstancePolicy : IgnoreNewJobDefinition          :

此示例演示如何更改本地计算机上的计划作业的选项。

第一个命令使用 Get-ScheduledJobOption cmdlet 获取 DeployPackage 计划作业的作业选项。 输出显示 WakeToRun 和 RunElevated 属性设置为$False。

不需要此命令;它仅包含以显示选项更改的效果。

示例 2:更改所有远程计划作业的选项

PS C:\> Invoke-Command -Computer "Server01" -ScriptBlock {Get-ScheduledJob | Get-ScheduledJobOption | Set-ScheduledJobOption -IdleTimeout 2:00:00}

此命令将 IdleTimeout 的值从一小时(默认值)更改为 Server01 计算机上所有计划作业的两小时。

该命令使用 Invoke-Command cmdlet 在 Server01 计算机上运行命令。

远程命令以获取计算机上的所有计划作业的 Get-ScheduledJob 命令开头。 计划作业通过管道传递给 Get-ScheduledJobOption cmdlet,该 cmdlet 获取计划作业的作业选项。 每个作业选项对象都包含一个 JobDefinition 属性,该属性包含计划作业,因此,即使已更改,选项对象仍与计划作业关联。

作业触发器通过管道传递给 Set-ScheduledJobOption cmdlet,该 cmdlet 会将 IdleTimeout 选项的值更改为两小时(2:00:00)。

参数

-ContinueIfGoingOnBattery

如果计算机在运行作业时切换到电池电源(与 AC 电源断开连接),请不要停止计划作业。 默认情况下,当计算机与 AC 电源断开连接时,计划作业将停止。

ContinueIfGoingOnBattery 参数将计划作业的 StopIfGoingOnBatteries 属性的值设置为 $True。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-DoNotAllowDemandStart

仅在触发作业时启动该作业。 用户无法手动启动作业,例如在任务计划程序中使用“运行”功能。

此参数仅影响任务计划程序。 它不会阻止用户使用 Start-Job cmdlet 启动作业。

DoNotAllowDemandStart 参数将计划作业的 DoNotAllowDemandStart 属性的值设置为 $True。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-HideInTaskScheduler

不要在任务计划程序中显示作业。 此值仅影响运行作业的计算机。 默认情况下,计划任务显示在任务计划程序中。

即使任务处于隐藏状态,用户也可以通过在任务计划程序中选择 显示隐藏任务 视图选项来显示任务。

HideInTaskScheduler 参数将计划作业的 ShowInTaskScheduler 属性的值设置为 $False。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-IdleDuration

指定在作业启动前计算机必须处于空闲状态的时间。 默认值为 10 分钟。 如果计算机在 IdleTimeout 的值过期之前指定的持续时间内未空闲,则计划作业在下次计划时间(如果有)之前不会运行。

输入时间跨度对象,例如由 New-TimeSpan cmdlet 生成的时间跨度对象,或在 <>小时<小时>中输入值:<>秒 格式,该格式自动转换为 TimeSpan 对象。

若要启用此值,请使用 StartIfIdle 参数。 默认情况下,计划作业的 StartIfNotIdle 属性设置为 $True,并且 Windows PowerShell 会忽略 IdleDuration 和 IdleTimeout 值。

参数属性

类型:TimeSpan
默认值:10 minutes
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-IdleTimeout

指定在作业启动前计算机必须处于空闲状态的时间。 默认值为 10 分钟。 如果计算机在 IdleTimeout 的值过期之前指定的持续时间内未空闲,则计划作业在下次计划时间(如果有)之前不会运行。

输入时间跨度对象,例如由 New-TimeSpan cmdlet 生成的时间跨度对象,或在 <>小时<小时>中输入值:<>秒 格式,该格式自动转换为 TimeSpan 对象。

若要启用此值,请使用 StartIfIdle 参数。 默认情况下,计划作业的 StartIfNotIdle 属性设置为 $True,并且 Windows PowerShell 会忽略 IdleDuration 和 IdleTimeout 值。

参数属性

类型:TimeSpan
默认值:10 minutes
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-InputObject

指定作业选项。 输入一个变量,其中包含 ScheduledJobOptions 对象,或键入获取 ScheduledJobOptions 对象(如 Get-ScheduledJobOption 命令)的命令或表达式。 还可以通过管道将 ScheduledJobOptions 对象传递给 Set-ScheduledJobOption

参数属性

类型:ScheduledJobOptions
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):False
来自剩余参数的值:False

-MultipleInstancePolicy

确定系统如何响应请求,以在作业的另一个实例运行时启动计划的作业实例。 此参数的可接受值为:

  • IgnoreNew 的 Button。 新的 Job 实例将被忽略。 这是默认值。
  • 平行。 新的作业实例将立即开始。
  • 队列。 新作业实例在当前实例完成后立即开始。
  • StopExisting 的 StopExisting 方法。 作业的当前实例停止并启动新实例。

若要运行作业,必须满足作业计划的所有条件。 例如,如果 RequireNetwork设置的条件、IdleDuration,并且不满足 IdleTimeout 参数,则不启动作业实例,而不考虑此参数的值。

参数属性

类型:TaskMultipleInstancePolicy
默认值:IgnoreNew
接受的值:None, IgnoreNew, Parallel, Queue, StopExisting
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-PassThru

返回一个对象,该对象表示你正在处理的项目。 默认情况下,此 cmdlet 不生成任何输出。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-RequireNetwork

仅在网络连接可用时运行计划作业。

如果指定此参数,并且网络在计划的开始时间不可用,则作业不会运行到下一个计划的开始时间(如果有)。

RequireNetwork 参数将计划作业的 RunWithoutNetwork 属性的值设置为 $False。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-RestartOnIdleResume

在计算机空闲时重启计划作业。 此参数适用于 StopIfGoingOffIdle 参数,如果计算机变为活动状态(离开空闲状态),它将挂起正在运行的计划作业。

RestartOnIdleResume 参数将计划作业的 RestartOnIdleResume 属性的值设置为 $True。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-RunElevated

使用运行作业的计算机上的 Administrators 组成员的权限运行计划的作业。

若要启用计划作业以管理员权限运行,请使用 Register-ScheduledJob 的 Credential 参数为作业提供显式凭据。

RunElevated 参数将计划作业的 RunElevated 属性的值设置为 True。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-StartIfIdle

如果计算机在 IdleTimeout 参数指定的时间过期之前 IdleDuration 参数指定的时间处于空闲状态,则启动计划作业。

默认情况下,IdleDurationIdleTimeout 参数将被忽略,即使计算机繁忙,作业也会在计划的开始时间启动。

如果指定此参数,并且计算机在计划的开始时间(未空闲),则作业不会运行,直到下一个计划的开始时间(如果有)。

StartIfIdle 参数将计划作业的 StartIfNotIdle 属性的值设置为 False。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-StartIfOnBattery

即使计算机在计划的开始时间在电池上运行,也会启动计划作业。 默认值为 False。

StartIfOnBattery 参数将计划作业的 StartIfOnBatteries 属性的值设置为$True。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-StopIfGoingOffIdle

如果计算机在运行作业时处于活动状态(未空闲),则挂起正在运行的计划作业。

默认情况下,当计算机再次处于空闲状态时,当计算机变为活动状态时暂停的计划作业。 若要更改此默认行为,请使用 RestartOnIdleResume 参数。

StopIfGoingOffIdle 参数将计划作业的 StopIfGoingOffIdle 属性的值设置为 $True。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-WakeToRun

在计划的开始时间从休眠状态或睡眠状态唤醒计算机,以便它可以运行作业。 默认情况下,如果计算机在计划的开始时间处于休眠状态或睡眠状态,则作业不会运行。

WakeToRun 参数将计划作业的 WakeToRun 属性的值设置为 $True。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

CommonParameters

此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters

输入

ScheduledJobOptions

可以通过管道将计划作业选项对象传递给 Set-ScheduledJobOption

输出

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobOptions

使用 Passthru 参数时,Set-ScheduledJobOption 返回更改的作业选项。 否则,此 cmdlet 不会生成任何输出。