New-JobTrigger
建立排程作業的作業觸發程式。
Syntax
New-JobTrigger
[-RandomDelay <TimeSpan>]
-At <DateTime>
[-Once]
[-RepetitionInterval <TimeSpan>]
[-RepetitionDuration <TimeSpan>]
[-RepeatIndefinitely]
[<CommonParameters>]
New-JobTrigger
[-DaysInterval <Int32>]
[-RandomDelay <TimeSpan>]
-At <DateTime>
[-Daily]
[<CommonParameters>]
New-JobTrigger
[-WeeksInterval <Int32>]
[-RandomDelay <TimeSpan>]
-At <DateTime>
-DaysOfWeek<DayOfWeek[]>
[-Weekly]
[<CommonParameters>]
New-JobTrigger
[-RandomDelay <TimeSpan>]
[-AtStartup]
[<CommonParameters>]
New-JobTrigger
[-RandomDelay <TimeSpan>]
[-User <String>]
[-AtLogOn]
[<CommonParameters>]
Description
Cmdlet New-JobTrigger
會建立作業觸發程式,以一次性或週期性排程啟動排程工作,或事件發生時啟動排程工作。
您可以使用傳回的 ScheduledJobTrigger 物件 New-JobTrigger
,為新的或現有的排程工作設定作業觸發程式。 您也可以使用 Get-JobTrigger
Cmdlet 建立作業觸發程式,以取得現有排程工作的工作觸發程式,或使用哈希表值來表示作業觸發程式。
建立作業觸發程式時,請檢閱 Cmdlet 所 New-ScheduledJobOption
指定選項的預設值。 這些選項與工作排程器中對應的選項具有相同有效和預設值,會影響排程工作的排程和時間。
New-JobTrigger
是 WINDOWS PowerShell 隨附的 PSScheduledJob 模組中作業排程 Cmdlet 的其中一個集合。
如需排程工作的詳細資訊,請參閱 PSScheduledJob 模組中的 About 主題。 匯入 PSScheduledJob 模組,然後輸入: Get-Help about_Scheduled*
或查看 about_Scheduled_Jobs。
此 Cmdlet 已在 Windows PowerShell 3.0 中引進。
範例
範例 1:排程一次
此範例會建立作業觸發程式,只啟動排程工作一次。
New-JobTrigger -Once -At "1/20/2012 3:00 AM"
建立 New-JobTrigger
作業觸發程式的 Cmdlet 只會啟動排程工作一次。 At 參數的值是 Windows PowerShell 轉換成 DateTime 物件的字串。
At 參數值包含明確的日期,而不只是時間。 如果省略日期,就會使用目前的日期和上午 3:00 時間來建立觸發程式,這可能代表過去的時間。
範例 2:每日排程
此範例會建立新的作業觸發程式,以每隔第三天啟動排程工作。
New-JobTrigger -Daily -At "4:15 AM" -DaysInterval 3
此命令會建立作業觸發程式,每隔 3 天於上午 4:15 啟動排程工作。
由於 At 參數的值不包含日期,因此目前的日期會當做 DateTime 物件中的日期值使用。 如果日期和時間過去,排程的工作會在下一次發生時啟動,也就是 3 天后從 At 參數值開始。
範例 3:每周排程
此範例會建立作業觸發程式,該觸發程式會在該周的指定天數每隔第四周啟動排程工作。
New-JobTrigger -Weekly -DaysOfWeek Monday, Wednesday, Friday -At "23:00" -WeeksInterval 4
Id Frequency Time DaysOfWeek Enabled
-- --------- ---- ---------- -------
0 Weekly 9/21/2012 11:00:00 PM {Monday, Wednesday, Friday} True
此命令會建立作業觸發程式,以每隔 4 周 2300 小時(下午 11:00)開始排程工作。
您也可以在整數中輸入 DaysOfWeek 參數值,例如 -DaysOfWeek 1, 5
。
範例 4:登入排程
此範例會建立作業觸發程式,以在特定使用者的登入時啟動排程工作。
New-JobTrigger -AtLogOn -User Domain01\Admin01
此命令會建立作業觸發程式,以在網域系統管理員登入計算機時啟動排程工作。
範例 5:使用隨機延遲
此範例會建立具有隨機時間範圍延遲的新作業觸發程式。
New-JobTrigger -Daily -At 1:00 -RandomDelay 00:20:00
此命令會建立作業觸發程式,每天上午 1:00 啟動排程工作。 此命令會 使用 RandomDelay 參數,將延遲上限設定為 20 分鐘。 因此,作業每天在上午 1:00 到上午 1:20 之間執行,間隔會隨機變化。
您可以使用隨機延遲進行取樣、負載平衡和其他系統管理工作。 設定延遲值時,請檢閱 Cmdlet 的有效和 New-ScheduledJobOption
預設值,並使用選項設定來協調延遲。
範例 6:為新的排程工作建立作業觸發程式
這些範例會使用作業觸發程式來建立新的排程工作。
$t = New-JobTrigger -Weekly -DaysOfWeek 1,3,5 -At 12:01AM
Register-ScheduledJob -Name Test-HelpFiles -FilePath C:\Scripts\Test-HelpFiles.ps1 -Trigger $t
第一個命令會 New-JobTrigger
使用 Cmdlet 建立作業觸發程式,以在上午 12:01 開始作業。 命令會將作業觸發程式儲存在變數中 $t
。
第二個命令會 Register-ScheduledJob
使用 Cmdlet 來建立排程工作,以在每個星期一、星期三和星期五上午 12:01 啟動作業。 Trigger 參數的值是儲存在變數中的$t
觸發程式。
範例 7:將作業觸發程式新增至排程工作
此範例示範如何將作業觸發程式新增至現有的排程工作。
Add-JobTrigger -Name SynchronizeApps -Trigger (New-JobTrigger -Daily -At 3:10AM)
您可以將多個作業觸發程式新增至任何排程的作業。
命令會 Add-JobTrigger
使用 Cmdlet 將作業觸發程式新增至 SynchronizeApps 排程工作。 Trigger 參數的值是一個New-JobTrigger
命令,每天上午 3:10 執行作業。
當命令完成時, SynchronizeApps 是排程的作業,會在作業觸發程式指定的時間執行。
範例 8:建立重複作業觸發程式
此範例會建立重複的作業觸發程式,只執行特定時間。
New-JobTrigger -Once -At "09/12/2013 1:00:00" -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration (New-Timespan -Hours 48)
此命令會建立作業觸發程式,從 2013 年 9 月 12 日上午 1:00 開始,每隔 60 分鐘執行一次作業 48 小時。
範例 9:停止重複作業觸發程式
此範例會停止重複的工作觸發程式。
Get-JobTrigger -Name SecurityCheck | Set-JobTrigger -RepetitionInterval 0:00 -RepetitionDuration 0:00
此命令會強制停止 SecurityCheck 作業,此作業會觸發每隔 60 分鐘執行一次,直到其工作觸發程式到期為止。
為了防止作業重複,命令會使用 Get-JobTrigger
取得 SecurityCheck 作業的作業Set-JobTrigger
觸發程式和 Cmdlet,將作業觸發程式的重複間隔和重複持續時間變更為零 (0
)。
範例 10:建立每小時作業觸發程式
此範例會建立無限期執行的重複作業觸發程式。
New-JobTrigger -Once -At "9/21/2012 0am" -RepetitionInterval (New-TimeSpan -Hour 12) -RepetitionDuration ([TimeSpan]::MaxValue)
下列命令會建立作業觸發程式,每隔 12 小時執行一次排程工作一次,以無限期的時間執行一次。 時程表將於明天(2012年9月21日)午夜(上午0:00)開始。
參數
-At
在指定的日期和時間啟動作業。 輸入 DateTime 物件,例如 Get-Date
Cmdlet 傳回的物件,或可轉換成日期和時間的字串,例如 April 19, 2012 15:00
、 12/31
或 3am
。 如果您未指定日期的專案,例如年份,觸發程式中的日期就會有目前日期的對應專案。
使用 Once 參數時,將 At 參數的值設定為未來的日期和時間。 由於 DateTime 物件中的預設日期是目前日期,因此如果您指定目前時間之前的時間,而沒有明確日期,則會針對過去的時間建立作業觸發程式。
轉換成 DateTime 物件的 DateTime 物件和字串會自動調整為與 控制台 中針對本機電腦選取的日期和時間格式相容。
Type: | DateTime |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AtLogOn
當指定的使用者登入計算機時,啟動排程工作。 若要指定使用者,請使用 User 參數。
Type: | SwitchParameter |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AtStartup
在 Windows 啟動時啟動排程工作。
Type: | SwitchParameter |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Daily
指定週期性每日作業排程。 使用 Daily 參數集中的其他參數來指定排程詳細數據。
Type: | SwitchParameter |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DaysInterval
指定每日排程發生次數之間的天數。 例如,的值 3
會在天數 1
、 4
、 7
等等啟動排程工作。 預設值是 1
。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DaysOfWeek
指定每周排程工作執行的一周天數。 輸入日名稱,例如 Monday
或 整數6
0
- ,其中 0
代表星期日。 每周參數集中需要此參數。
日名稱會轉換成作業觸發程式中的整數值。 當您在命令中以引號括住日名稱時,請以個別的引號括住每日名稱,例如 "Monday", "Tuesday"
。 如果您以單引號組括住多天名稱,則會加總對應的整數值。 例如, "Monday, Tuesday"
(1 + 2
) 會產生 (3
) 的值Wednesday
。
Type: | DayOfWeek[] |
Accepted values: | Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Once
指定非週期性(一次)或自定義重複排程。 若要建立重複排程,請使用 Once 參數搭配 RepetitionDuration 和 RepetitionInterval 參數。
Type: | SwitchParameter |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RandomDelay
啟用從排程開始時間開始的隨機延遲,並設定最大延遲值。
延遲的長度會針對每個開始進行虛擬隨機設定,而且不會延遲到此參數的值所指定的時間。 預設值零 (00:00:00
), 會停用隨機延遲。
輸入 timespan 物件,例如 Cmdlet 所 New-TimeSpan
傳回的物件,或以格式輸入值,這個格式 <hours>:<minutes>:<seconds>
會自動轉換成 TimeSpan 物件。
Type: | TimeSpan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RepeatIndefinitely
此參數可從 Windows PowerShell 4.0 開始提供,因此不需要指定 RepetitionDuration 參數的 TimeSpan.MaxValue 值,以重複執行排程工作,以無限期執行。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RepetitionDuration
重複工作,直到指定的時間到期為止。 重複頻率取決於 RepetitionInterval 參數的值。 例如,如果 RepetitionInterval 的值是 5 分鐘,而 RepetitionDuration 的值是 2 小時,則會每隔五分鐘觸發一次工作兩個小時。
輸入 timespan 物件,例如 New-TimeSpan
Cmdlet 傳回的物件,或是可以轉換成 timespan 物件的字串,例如 1:05:30
。
若要無限期執行作業,請改為新增 RepeatIndefinitely 參數。
若要在作業觸發程式重複持續時間到期之前停止作業,請使用 Set-JobTrigger
Cmdlet 將 RepetitionDuration 值設定為零 (0
)。
只有當命令中使用 Once、At 和 RepetitionInterval 參數時,此參數才有效。
Type: | TimeSpan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RepetitionInterval
在指定的時間間隔重複作業。 例如,如果此參數的值是 2 小時,則會每隔兩小時觸發一次作業。 預設值 0
, 不會重複作業。
輸入 timespan 物件,例如 New-TimeSpan
Cmdlet 傳回的物件,或是可以轉換成 timespan 物件的字串,例如 1:05:30
。
只有當命令中使用 Once、At 和 RepetitionDuration 參數時,此參數才有效。
Type: | TimeSpan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-User
指定觸發 排程作業之 AtLogon 開始的使用者。 以 或 格式輸入使用者 <UserName>
的名稱, <Domain\Username>
或輸入星號 (*
) 來代表所有使用者。 預設值為所有使用者。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Weekly
指定週期性每周作業排程。 使用 Weekly 參數集中的其他參數來指定排程詳細數據。
Type: | SwitchParameter |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WeeksInterval
指定每周作業排程中發生次數之間的周數。 例如,的值3
會在周 1
、、 4
7
等上啟動排程工作。 預設值是 1
。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
None
您無法使用管線將物件傳送至此 Cmdlet。
輸出
此 Cmdlet 會傳 回代表所建立觸發程式的 ScheduledJobTrigger 物件。
備註
作業觸發程式不會儲存至磁碟。 不過,排程工作會儲存至磁碟,而您可以使用
Get-JobTrigger
來取得任何排程作業的作業觸發程式。New-JobTrigger
不會阻止您建立不會執行排程作業的作業觸發程式,例如過去日期的一次性觸發程式。Cmdlet
Register-ScheduledJob
接受 ScheduledJobTrigger 物件,例如 或Get-JobTrigger
Cmdlet 所New-JobTrigger
傳回的物件,或具有觸發值的哈希表。若要提交哈希表,請使用下列索引鍵。
- Frequency:
Once
、、Daily
、Weekly
、AtStartup
或AtLogon
- 時間:任何有效的時間字串,例如
3am
- DaysOfWeek:日名稱的任何組合,例如字串
"Monday", "Wednesday"
- 間隔:任何有效的頻率間隔做為整數
- RandomDelay:任何有效的時間範圍字串,例如
30minutes
- 使用者:任何有效的使用者,例如
Domain1\User01
;僅搭配 AtLogon 頻率值使用
- Frequency:
相關連結
- 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
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應