New-ScheduledJobOption
建立物件,其中包含排程工作的進階選項。
語法
New-ScheduledJobOption
[-RunElevated]
[-HideInTaskScheduler]
[-RestartOnIdleResume]
[-MultipleInstancePolicy <TaskMultipleInstancePolicy>]
[-DoNotAllowDemandStart]
[-RequireNetwork]
[-StopIfGoingOffIdle]
[-WakeToRun]
[-ContinueIfGoingOnBattery]
[-StartIfOnBattery]
[-IdleTimeout <TimeSpan>]
[-IdleDuration <TimeSpan>]
[-StartIfIdle]
[<CommonParameters>]
Description
New-ScheduledJobOption Cmdlet 會建立物件,其中包含排程工作的進階選項。
您可以使用 ScheduledJobOptions 物件,New-ScheduledJobOption 傳回來設定新或現有排程工作的工作選項。 或者,您可以使用 Get-ScheduledJobOption Cmdlet 來設定作業選項,以取得現有排程作業的作業選項,或使用哈希表值來表示作業選項。
如果沒有參數,New-ScheduledJobOption 會產生物件,其中包含所有選項的預設值。 因為您可以編輯 JobDefinition 屬性以外的所有屬性,因此您可以使用產生的物件做為範本,併為企業建立標準選項物件。
建立排程工作並設定排程工作選項時,請檢閱所有排程工作選項的預設值。 只有在滿足為其執行設定的所有條件時,排程工作才會執行。
New-ScheduledJobOption 是 Windows PowerShell 中 PSScheduledJob 模組中作業排程 Cmdlet 的其中一個集合。
如需排程工作的詳細資訊,請參閱 PSScheduledJob 模組中的 About 主題。
匯入 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
此範例示範如何使用 ScheduledJobOptions 物件,New-ScheduledJobOption 傳回以設定新排程工作的選項。
範例 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 物件及其 Properties 屬性的 PSObject 屬性。 命令接著會將屬性對象傳送至 Sort-Object Cmdlet,以依名稱依字母順序排序屬性,然後傳送至 Format-Table Cmdlet,以顯示數據表中屬性的名稱和值。
此格式可讓您更輕鬆地在 $Options 中尋找 ScheduledJobOptions 物件的 WakeToRun 屬性,並確認其值已從$False變更為$True。
參數
-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 所產生的物件,或以 <小時>輸入值:<分鐘>:<秒> 格式,自動轉換成 TimeSpan 物件。
若要啟用此值,請使用 StartIfIdle 參數。 根據預設,排程作業的 StartIfNotIdle 屬性會設定為 $True,而 Windows PowerShell 會忽略 IdleDuration,並 IdleTimeout 值。
類型: | TimeSpan |
Position: | Named |
預設值: | 10 minutes (00:10:00) |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-IdleTimeout
指定排程工作等待計算機閑置的時間長度。 如果此逾時會在計算機在 IdleDuration 參數所指定的時段內保持閑置,則作業不會在下次排程時間之前執行。如果有的話。 預設值為一小時。
輸入 TimeSpan 物件,例如 New-TimeSpan Cmdlet 所產生的物件,或以 <小時>輸入值:<分鐘>:<秒> 格式,自動轉換成 TimeSpan 物件。
若要啟用此值,請使用 StartIfIdle 參數。 根據預設,排程作業的 StartIfNotIdle 屬性會設定為 $True,而 Windows PowerShell 會忽略 IdleDuration,並 IdleTimeout 值。
類型: | TimeSpan |
Position: | Named |
預設值: | 1 hour (1:00:00) |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-MultipleInstancePolicy
決定系統如何回應要求,以在作業的另一個實例執行時啟動排程工作的實例。 預設值為 IgnoreNew。 此參數可接受的值為:
- IgnoreNew。 會忽略新的作業實例。
- 平行。 新的作業實例會立即啟動。
- 佇列。 新的作業實例會在目前的實例完成時立即啟動。
- StopExisting。 作業的目前實例會停止,而新的實例就會啟動。
若要執行作業,必須符合作業排程的所有條件。 例如,如果 RequireNetwork所設定的條件、IdleDuration,以及 IdleTimeout 參數都不符合,則不論此參數的值為何,作業實例都不會啟動。
類型: | TaskMultipleInstancePolicy |
接受的值: | None, IgnoreNew, Parallel, Queue, StopExisting |
Position: | Named |
預設值: | IgnoreNew |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-RequireNetwork
只有在網路連線可用時,才會執行排程的工作。
如果您指定此參數,且網路無法在排程的開始時間使用,則作業不會執行到下一個排程的開始時間,如果有的話。
RequireNetwork 參數會將排程作業的 RunWithoutNetwork 屬性值設定為 $False。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | 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 參數所指定的時間,就會啟動排程工作。
根據預設,IdleDuration 和 IdleTimeout 參數會被忽略,即使電腦忙碌,作業也會在排程的開始時間啟動。
如果您指定此參數,且計算機在排定的開始時間忙碌中(未閑置),則工作不會執行到下一個排程的開始時間,如果有的話。
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 |
輸入
None
您無法使用管線將輸入傳送至此 Cmdlet。
輸出
備註
您可以使用 ScheduledJobOptions 物件,New-ScheduledJobOption 建立做為 Register-ScheduledJob Cmdlet ScheduledJobOption 參數的值。 不過,ScheduledJobOption 參數也可以採用哈希表值,指定 ScheduledJobOptions 物件及其值的屬性,例如:
@{ShowInTaskScheduler=$False; RunElevated=$True; IdleDuration="00:05"}
相關連結
- about_Scheduled_Jobs
- 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