共用方式為


Set-ScheduledJobOption

變更排程作業的作業選項。

語法

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

Description

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 模組中的 About 主題。 匯入 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}

此命令會將 Server01 計算機上所有排程作業的 IdleTimeout 值從一小時(預設值)變更為兩小時。

此命令會使用 Invoke-Command Cmdlet 在 Server01 計算機上執行命令。

遠端命令會以取得電腦上所有排程工作的 Get-ScheduledJob 命令開始。 排程的工作會透過管線傳送至 Get-ScheduledJobOption Cmdlet,以取得排程作業的作業選項。 每個作業選項物件都包含包含排程工作的 JobDefinition 屬性,因此 options 物件會維持與排程工作相關聯的狀態,即使變更也一樣。

作業觸發器通過管道傳輸到 Set-ScheduledJobOption cmdlet,該 cmdlet 將 IdleTimeout 選項的值更改為兩小時 (2:00:00)。

參數

-ContinueIfGoingOnBattery

如果計算機在作業執行時切換到電池電源(與 AC 電源中斷連線),請勿停止排程工作。 根據預設,排程的工作會在計算機與 AC 電源中斷連線時停止。

ContinueIfGoingOnBattery 參數會將排程作業的 StopIfGoingOnBatteries 屬性值設定為 $True。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-DoNotAllowDemandStart

只有在觸發作業時才會啟動作業。 使用者無法手動啟動作業,例如使用工作排程器中的執行功能。

此參數只會影響工作排程器。 它不會防止使用者使用 Start-Job Cmdlet 來啟動作業。

DoNotAllowDemandStart 參數會將排程作業的 DoNotAllowDemandStart 屬性值設定為 $True。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-HideInTaskScheduler

請勿在工作排程器中顯示工作。 這個值只會影響作業執行所在的計算機。 根據預設,排程工作會出現在 [工作排程器] 中。

即使工作已隱藏,使用者也可以選取 [工作排程器] 中的 [顯示隱藏的工作 檢視] 選項來顯示工作。

HideInTaskScheduler 參數會將排程作業的 ShowInTaskScheduler 屬性值設定為 $False。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-IdleDuration

指定電腦在作業啟動前必須閑置多久。 預設值為 10 分鐘。 如果計算機在 IdleTime out 的值到期之前未在指定的持續時間閑置,排程工作就不會在下次排程時間之前執行,如果有的話。

輸入 timespan 物件(例如由 New-TimeSpan cmdlet 生成的物件 <),或輸入一個 hours>:<minutes>:<seconds> 格式的值,該值將自動轉換為 TimeSpan 物件。

若要啟用此值,請使用 StartIfIdle 參數。 根據預設,排程作業的 StartIfNotIdle 屬性會設定為 $True,而 Windows PowerShell 會忽略 IdleDuration,並 IdleTimeout 值。

類型:TimeSpan
Position:Named
預設值:10 minutes
必要:False
接受管線輸入:False
接受萬用字元:False

-IdleTimeout

指定電腦在作業啟動前必須閑置多久。 預設值為 10 分鐘。 如果計算機在 IdleTime out 的值到期之前未在指定的持續時間閑置,排程工作就不會在下次排程時間之前執行,如果有的話。

輸入 timespan 物件(例如由 New-TimeSpan cmdlet 生成的物件 <),或輸入一個 hours>:<minutes>:<seconds> 格式的值,該值將自動轉換為 TimeSpan 物件。

若要啟用此值,請使用 StartIfIdle 參數。 根據預設,排程作業的 StartIfNotIdle 屬性會設定為 $True,而 Windows PowerShell 會忽略 IdleDuration,並 IdleTimeout 值。

類型:TimeSpan
Position:Named
預設值:10 minutes
必要:False
接受管線輸入:False
接受萬用字元:False

-InputObject

指定作業選項。 輸入變數,其中包含 ScheduledJobOptions 物件,或輸入 ScheduledJobOptions 物件的命令或表達式,例如 Get-ScheduledJobOption 命令。 您也可以使用管線將 ScheduledJobOptions 物件 傳送至 set-ScheduledJobOption

類型:ScheduledJobOptions
Position:0
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-MultipleInstancePolicy

決定系統如何回應要求,以在作業的另一個實例執行時啟動排程工作的實例。 此參數可接受的值為:

  • IgnoreNew。 會忽略新的作業實例。 這是預設值。
  • 平行。 新的作業實例會立即啟動。
  • 佇列。 新的作業實例會在目前的實例完成時立即啟動。
  • StopExisting。 任務的當前實例停止,新實例啟動。

若要執行作業,必須符合作業排程的所有條件。 例如,如果 RequireNetwork所設定的條件、IdleDuration,以及 IdleTimeout 參數都不符合,則不論此參數的值為何,作業實例都不會啟動。

類型:TaskMultipleInstancePolicy
接受的值:None, IgnoreNew, Parallel, Queue, StopExisting
Position:Named
預設值:IgnoreNew
必要:False
接受管線輸入:False
接受萬用字元:False

-PassThru

返回一個物件,代表您正在處理的項目。 根據預設,此 Cmdlet 不會產生任何輸出。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-RequireNetwork

只有在網路連線可用時,才會執行排程的工作。

如果您指定此參數,且網路無法在排程的開始時間使用,則作業不會執行到下一個排程的開始時間,如果有的話。

RequireNetwork 參數會將排程作業的 RunWithoutNetwork 屬性值設定為 $False。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-RestartOnIdleResume

當計算機閑置時,重新啟動排程的工作。 此參數與 StopIfGoingOffIdle 參數搭配運作,如果計算機變成使用中狀態,則會暫停執行中的排程工作(離開閑置狀態)。

RestartOnIdleResume 參數會將排程作業的 RestartOnIdleResume 屬性值設定為 $True。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-RunElevated

在作業執行所在的計算機上,以 Administrators 群組成員的許可權執行排程工作。

若要讓排程作業以系統管理員許可權執行,請使用 Register-ScheduledJob 的 Credential 參數來提供作業的明確認證。

RunElevated 參數會將排程作業 RunElevated 屬性的值設定為 True。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-StartIfIdle

如果計算機在 IdleTimeout 參數指定的時間到期之前,已閑置 IdleDuration 參數所指定的時間,就會啟動排程工作。

根據預設,IdleDurationIdleTimeout 參數會被忽略,即使電腦忙碌,作業也會在排程的開始時間啟動。

如果您指定此參數,且計算機在排定的開始時間忙碌中(未閑置),則工作不會執行到下一個排程的開始時間,如果有的話。

StartIfIdle 參數會將排程作業的 startIfNotIdle 屬性值 設定為 False。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-StartIfOnBattery

即使計算機在排程的開始時間在電池上執行,也會啟動排程的工作。 預設值為 False。

StartIfOnBattery 參數將計劃作業的 StartIfOnBatteries 屬性的值設置為 $True。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-StopIfGoingOffIdle

如果計算機在執行中時變成作用中(未閑置),暫停執行中的排程工作。

根據預設,當計算機再次處於閑置狀態時,計算機會繼續執行時暫停的排程工作。 若要變更此預設行為,請使用 RestartOnIdleResume 參數。

StopIfGoingOffIdle 參數會將排程作業的 StopIfGoingOffIdle 屬性值設定為 $True。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-WakeToRun

在排定的開始時間從休眠或睡眠狀態喚醒計算機,讓計算機能夠執行作業。 根據預設,如果計算機在排定的開始時間處於休眠或睡眠狀態,則作業不會執行。

WakeToRun 參數會將排程作業的 WakeToRun 屬性值設定為 $True。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

ScheduledJobOptions

您可以使用管線將排程作業選項物件傳送至 Set-ScheduledJobOption

輸出

None or Microsoft.PowerShell.ScheduledJob.ScheduledJobOptions

當您使用 Passthru 參數時,Set-ScheduledJobOption 會傳回已變更的作業選項。 否則,此 Cmdlet 不會產生任何輸出。