New-ScheduledJobOption
创建一个对象,该对象包含计划作业的高级选项。
语法
Default (默认值)
New-ScheduledJobOption
[-RunElevated]
[-HideInTaskScheduler]
[-RestartOnIdleResume]
[-MultipleInstancePolicy <TaskMultipleInstancePolicy>]
[-DoNotAllowDemandStart]
[-RequireNetwork]
[-StopIfGoingOffIdle]
[-WakeToRun]
[-ContinueIfGoingOnBattery]
[-StartIfOnBattery]
[-IdleTimeout <TimeSpan>]
[-IdleDuration <TimeSpan>]
[-StartIfIdle]
[<CommonParameters>]
说明
New-ScheduledJobOption cmdlet 创建包含计划作业的高级选项的对象。
可以使用 New-ScheduledJobOption 返回的 ScheduledJobOptions 对象来设置新作业或现有计划作业的作业选项。 或者,可以使用 Get-ScheduledJobOption cmdlet 设置作业选项以获取现有计划作业的作业选项,也可以使用哈希表值来表示作业选项。
如果没有参数,New-ScheduledJobOption 将生成一个对象,该对象包含所有选项的默认值。 由于可以编辑 JobDefinition 属性之外的所有属性,因此可以使用生成的对象作为模板,并为企业创建标准选项对象。
创建计划作业和设置计划的作业选项时,请查看所有计划作业选项的默认值。 仅当满足为其执行设置的所有条件时,计划作业才会运行。
New-ScheduledJobOption 是 PSScheduledJob 模块中包含的作业计划 cmdlet 集合之一。
有关计划作业的详细信息,请参阅 PSScheduledJob 模块中的“关于”主题。
导入 PSScheduledJob 模块,然后键入:Get-Help about_Scheduled* 或查看about_Scheduled_Jobs。
此 cmdlet 已在 Windows PowerShell 3.0 中引入。
示例
示例 1:创建具有默认值的计划作业选项对象
PS C:\> New-ScheduledJobOption
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 : True
DoNotAllowDemandStart : False
MultipleInstancePolicy : Ignore
NewJobDefinition :
此命令创建具有所有默认值的计划作业选项对象。
示例 2:使用自定义值创建计划作业选项对象
PS C:\> New-ScheduledJobOption -RequireNetwork -StartIfOnBattery
StartIfOnBatteries : True
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 : Ignore
NewJobDefinition :
以下命令创建一个计划作业对象,该对象需要网络并运行计划作业,即使计算机未连接到 AC 电源。
输出显示 RequireNetwork 参数将 RunWithoutNetwork 属性的值更改为 $False,StartIfOnBattery 参数将 StartIfOnBatteries 属性的值更改为 $True。
示例 3:设置新计划作业的选项
The first command creates a **ScheduledJobOptions** object with the *RunElevated* parameter. It saves the object in the $RunAsAdmin variable.
PS C:\> $RunAsAdmin = New-ScheduledJobOption -RunElevated
The second command uses the Register-ScheduledJob cmdlet to create a new scheduled job. The value of the *ScheduledJobOption* parameter is the option object in the value of the $RunAsAdmin variable.
PS C:\> Register-ScheduledJob -Name Backup -FilePath D:\Scripts\Backup.ps1 -Trigger $Mondays -ScheduledJobOption $RunAsAdmin
The third command uses the Get-ScheduledJobOption cmdlet to get the job options of the Backup scheduled job.The cmdlet output shows that the RunElevated property is set to $True and the JobDefinition property of the job option object is now populated with the scheduled job object for the Backup scheduled job.
PS C:\> Get-ScheduledJobOption -Name Backup
StartIfOnBatteries : False
StopIfGoingOnBatteries : True
WakeToRun : False
StartIfNotIdle : True
StopIfGoingOffIdle : False
RestartOnIdleResume : False
IdleDuration : 00:10:00
IdleTimeout : 01:00:00
ShowInTaskScheduler : True
RunElevated : True
RunWithoutNetwork : True
DoNotAllowDemandStart : False
MultipleInstancePolicy : IgnoreNew
JobDefinition : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
此示例演示如何使用 New-ScheduledJobOption 返回的 ScheduledJobOptions 对象来设置新计划作业的选项。
示例 4:对计划作业选项对象的属性进行排序
PS C:\> $Options = New-ScheduledJobOption -WakeToRun
PS C:\> $Options.PSObject.Properties | Sort-Object -Property Name | Format-Table -Property Name, Value -Autosize
Name Value
---- -----
DoNotAllowDemandStart False
IdleDuration 00:10:00
IdleTimeout 01:00:00
JobDefinition
MultipleInstancePolicy IgnoreNew
RestartOnIdleResume False
RunElevated False
RunWithoutNetwork True
ShowInTaskScheduler True
StartIfNotIdle True
StartIfOnBatteries False
StopIfGoingOffIdle False
StopIfGoingOnBatteries True
WakeToRun True
此示例演示如何按字母顺序对 ScheduledJobOptions 对象的属性进行排序,以便轻松阅读。
第一个命令使用 New-ScheduledJobOption cmdlet 创建 ScheduledJobOptions 对象。 该命令使用 WakeToRun 参数,并将生成的对象保存在$Options变量中。
若要获取$Options作为对象的属性,第二个命令使用所有 Windows PowerShell 对象的 PSObject 属性及其 Properties 属性。 然后,该命令将属性对象通过管道传递给 Sort-Object cmdlet,该 cmdlet 按名称按字母顺序对属性进行排序,然后传递给 Format-Table cmdlet,该 cmdlet 显示表中属性的名称和值。
通过此格式,可以更轻松地在 $Options 中找到 ScheduledJobOptions 对象的 WakeToRun 属性,并验证其值是否已从 $False 更改为 $True。
参数
-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 的值过期之前指定的持续时间内未空闲,则计划作业在下次计划时间(如果有)之前不会运行。
输入 TimeSpan 对象(例如由 New-TimeSpan cmdlet 生成的对象 <),或输入一个 hours>:<minutes>:<seconds> 格式的值,该值将自动转换为 TimeSpan 对象。
若要启用此值,请使用 StartIfIdle 参数。 默认情况下,计划作业的 StartIfNotIdle 属性设置为 $True,并且 Windows PowerShell 会忽略 IdleDuration 和 IdleTimeout 值。
参数属性
| 类型: | TimeSpan |
| 默认值: | 10 minutes (00:10:00) |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-IdleTimeout
指定计划作业等待计算机空闲的时间。 如果此超时在计算机在由 IdleDuration 参数指定的时间段内保持空闲状态之前过期,则作业不会在下一个计划时间(如果有)之前运行。 默认值为 1 小时。
输入 TimeSpan 对象(例如由 New-TimeSpan cmdlet 生成的对象 <),或输入一个 hours>:<minutes>:<seconds> 格式的值,该值将自动转换为 TimeSpan 对象。
若要启用此值,请使用 StartIfIdle 参数。 默认情况下,计划作业的 StartIfNotIdle 属性设置为 $True,并且 Windows PowerShell 会忽略 IdleDuration 和 IdleTimeout 值。
参数属性
| 类型: | TimeSpan |
| 默认值: | 1 hour (1:00:00) |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-MultipleInstancePolicy
确定系统如何响应请求,以在作业的另一个实例运行时启动计划的作业实例。 默认值为 IgnoreNew。 此参数的可接受值为:
- IgnoreNew 的 Button。 新的 Job 实例将被忽略。
- 平行。 新的作业实例将立即开始。
- 队列。 新作业实例在当前实例完成后立即开始。
- StopExisting 的 StopExisting 方法。 作业的当前实例将停止,新实例将启动。
若要运行作业,必须满足作业计划的所有条件。 例如,如果 RequireNetwork设置的条件、IdleDuration,并且不满足 IdleTimeout 参数,则不启动作业实例,而不考虑此参数的值。
参数属性
| 类型: | TaskMultipleInstancePolicy |
| 默认值: | IgnoreNew |
| 接受的值: | None, IgnoreNew, Parallel, Queue, StopExisting |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-RequireNetwork
仅在网络连接可用时运行计划作业。
如果指定此参数,并且网络在计划的开始时间不可用,则作业不会运行到下一个计划的开始时间(如果有)。
RequireNetwork 参数将计划作业的 RunWithoutNetwork 属性的值设置为 $False。
参数属性
| 类型: | SwitchParameter |
| 默认值: | False |
| 支持通配符: | 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 参数指定的时间处于空闲状态,则启动计划作业。
默认情况下,IdleDuration 和 IdleTimeout 参数将被忽略,即使计算机繁忙,作业也会在计划的开始时间启动。
如果指定此参数,并且计算机在计划的开始时间(未空闲),则作业不会运行,直到下一个计划的开始时间(如果有)。
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。
输入
None
不能通过管道将输入传递给此 cmdlet。
输出
ScheduledJobOptions
备注
可以使用 New-ScheduledJobOption 创建的 ScheduledJobOptions 对象作为 Register-ScheduledJob cmdlet 的 ScheduledJobOption 参数的值。 但是,ScheduledJobOption 参数还可以采用哈希表值,该值指定 ScheduledJobOptions 对象的属性及其值,例如:
@{ShowInTaskScheduler=$False; RunElevated=$True; IdleDuration="00:05"}
相关链接
- 关于计划任务
- 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