schtasks create

排定工作。

語法

schtasks /create /sc <scheduletype> /tn <taskname> /tr <taskrun> [/s <computer> [/u [<domain>\]<user> [/p <password>]]] [/ru {[<domain>\]<user> | system}] [/rp <password>] [/mo <modifier>] [/d <day>[,<day>...] | *] [/m <month>[,<month>...]] [/i <idletime>] [/st <starttime>] [/ri <interval>] [{/et <endtime> | /du <duration>} [/k]] [/sd <startdate>] [/ed <enddate>] [/it] [/np] [/z] [/xml <xmlfile>] [/v1] [/f] [/rl <level>] [/delay <delaytime>] [/hresult]

參數

參數 描述
/sc <scheduletype> 指定排程類型。 有效值包括:
  • MINUTE - 指定工作執行前應該經過的分鐘數。
  • HOURLY - 指定工作執行前應該經過的時數。
  • DAILY - 指定工作執行前應該經過的天數。
  • WEEKLY 指定工作執行前應該經過的週數。
  • MONTHLY - 指定工作執行前應該經過的月數。
  • ONCE - 指定工作在指定的日期和時間執行一次。
  • ONSTART - 指定工作在每次系統啟動時執行。 您可以指定開始日期,或是在下次系統啟動時執行工作。
  • ONLOGON - 指定工作在每當使用者 (任何使用者) 登入時執行。 您可以指定日期,或是在下次使用者登入時執行工作。
  • ONIDLE - 指定工作在每當系統閒置一段時間時執行。 您可以指定日期,或是在下次系統閒置時執行工作。
  • ONEVENT - 指定工作會根據符合系統事件記錄檔之資訊 (包括 EventID) 的事件執行。
/tn <taskname> 指定工作的名稱。‏ 系統上的每個工作都必須有唯一的名稱,而且必須符合檔名的規則,不超過 238 個字元。 使用引號括住包含空格的名稱。 若要將排定的工作儲存在不同的資料夾中,請執行 /tn<folder name\task name>
/tr <Taskrun> 指定工作執行的程式或命令。 輸入可執行檔、指令碼檔案或批次檔的完整路徑和檔名。 路徑不能超過 262 個字元。 如果您未新增路徑,schtasks 會假設檔案位於 <systemroot>\System32 目錄中。
/s <computer> 指定遠端電腦的名稱或 IP 位址 (包含或不含反斜線)。 預設是本機電腦。
/u [<domain>] 以指定使用者帳戶的權限來執行此命令。 預設值是本機電腦目前使用者的權限。 只有在您使用 /s 時,/u/p 參數才有效。 會使用指定帳戶的權限來排定工作和執行工作。 若要以不同使用者的權限執行工作,請使用 /ru 參數。 使用者帳戶必須是遠端電腦之系統管理員群組的成員。 此外,本機電腦必須位於與遠端電腦相同的網域中,或必須位於遠端電腦網域信任的網域中。
/p <password> 指定 /u 參數中指定的使用者帳戶密碼。 如果您使用 /u 參數時不含 /p 參數或密碼引數,schtasks 會提示您輸入密碼。 只有在您使用 /s 時,/u/p 參數才有效。
/ru {[<domain>]<user> | system} 以指定使用者帳戶的權限執行工作。 根據預設,工作會以本機電腦目前使用者的權限執行,或使用 /u 參數所指定之使用者的權限執行。 在本機或遠端電腦上排定工作時,/ru 參數是有效的。 有效選項包括:
  • Domain - 指定替代使用者帳戶。
  • System - 指定本機系統帳戶,這是作業系統和系統服務所使用具高度權限的帳戶。
/rp <password> 指定現有使用者帳戶的新密碼,或 /ru 參數所指定的使用者帳戶。 如果您在指定使用者帳戶時未使用此參數,SchTasks.exe下次登入時會提示您輸入密碼。 請勿針對以系統帳戶認證 (/ru System) 執行的工作使用 /rp 參數。 系統帳戶沒有密碼,而且 SchTasks.exe 不會提示輸入密碼。
/mo <modifiers> 指定工作在其排程類型內執行的頻率。 有效選項包括:
  • MINUTE - 指定工作每隔 n<> 分鐘執行一次。 您可以使用 1 到 1439 分鐘之間的任何值。 預設為 1 分鐘。
  • HOURLY - 指定工作每隔 n<> 小時執行一次。 您可以使用 1 到 23 小時之間的任何值。 預設為 1 小時。
  • DAILY - 指定工作每隔 n<> 天執行一次。 您可以使用 1 到 365 天之間的任何值。 預設為 1 天。
  • WEEKLY - 指定工作每隔 n<> 週執行一次。 您可以使用 1 到 52 週之間的任何值。 預設為 1 週。
  • MONTHLY - 指定工作每 n<> 個月執行一次。 您也可以使用下列任一值:
    • 介於 1 到 12 個月之間的數字
    • LASTDAY- 在當月的最後一天執行工作
    • FIRST、SECOND、THIRD 或 FOURTH 以及 /d <day> 參數 - 指定執行工作的特定週和天。 例如,在當月的第三個星期三。
  • ONCE - 指定工作執行一次。
  • ONSTART - 指定工作在啟動時執行。
  • ONLOGON - 指定工作會在 /ru 參數所指定的使用者登入時執行。
  • ONIDLE - 指定工作在系統閒置 /i 參數指定的分鐘數後執行,
/d DAY[,DAY...] 指定工作在其排程類型內執行的頻率。 有效選項包括:
  • WEEKLY - 透過提供介於 1-52 週之間的值來指定工作每週執行。 或者,您也可以藉由新增 MON - SUN 的值或 [MON - SUN...]) 範圍來新增一週的特定一天。
  • MONTHLY - 透過提供 FIRST、SECOND、THIRD、FOURTH、LAST 的值來指定工作每週執行一次。 或者,您也可以藉由新增 MON - SUN 的值,或提供介於 1 到 12 個月之間的數字,來新增一週的特定一天。 如果您使用此選項,也可以藉由提供介於 1 到 31 之間的數字,來新增該月的特定日期。

    注意:日期值 1 - 31 只有在沒有 /mo 參數或是 /mo 參數是每月 (1 - 12) 的情況下才有效。 預設值為第 1 天 (當月的第一天)。

/m MONTH[,MONTH...] 指定一年中排定的工作應該在該期間執行的一個或多個月份。 有效選項包括 JAN - DEC 和 * (每個月)。 /m 參數僅適用於 MONTHLY 排程。 這在使用 LASTDAY 修飾詞時是必要的。 否則,這是選擇性的,預設值是 * (每個月)。
/i <Idletime> 指定工作在電腦閒置多少分鐘後開始。 有效值為從 1 到 999 的整數。 此參數僅在搭配 ONIDLE 排程時有效,而且是必要的。
/st <Starttime> 使用 24 小時時間格式 HH:mm 指定工作的開始時間。 預設值是本機電腦上的目前時間。 /st 參數在搭配 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 和 ONCE 排程時有效。 這對於 ONCE 排程是必要的。
/ri <interval> 指定排定的工作的重複間隔,以分鐘為單位。 這不適用於排程類型:MINUTE、HOURLY、ONSTART、ONLOGON、ONIDLE 和 ONEVENT。 有效範圍是 1 - 599940 (599940 分鐘 = 9999 小時)。 如果指定了 /et/du 參數,則預設值為 10 分鐘
/et <endtime> 以 <HH:MM> 24 小時格式指定按分鐘或小時的工作排程結束的當日時間。 在指定的結束時間之後,schtasks 會等到開始時間再發生後再次開始該工作。 根據預設,工作排程沒有結束時間。 此參數是選擇性的,且僅適用於 MINUTE 或 HOURLY 排程。
/du <duration> 以 <HHHH:MM> 24 小時格式指定按分鐘或小時排程的時間長度上限。 在經過指定的時間之後,schtasks 會等到開始時間再發生後再次開始該工作。 根據預設,工作排程沒有最大持續時間。 此參數是選擇性的,且僅適用於 MINUTE 或 HOURLY 排程。
/k 停止工作在 /et/du 所指定的時間執行的程式。 沒有 /k,schtasks 在到達 /et/du 所指定的時間之後,就不會再次啟動程式,如果程式仍在執行中,也不會停止程式。 此參數是選擇性的,且僅適用於 MINUTE 或 HOURLY 排程。
/sd <Startdate> 指定工作排程開始的日期。 預設值是本機電腦上的目前日期。 Startdate 的格式會隨著 [地區及語言選項] 中針對本機電腦選取的地區設定而有所不同。 每個地區設定只有一個格式有效。 有效的日期格式包括 (請務必選擇與本機電腦上針對 [地區及語言選項]中的 [簡短日期] 選取的格式最類似的格式):
  • <MM>//- 指定使用月優先格式,例如英文(美國) 和西班牙文 (巴拿馬)。
  • <DD>// - 指定使用日優先格式,例如保加利亞文和荷蘭文 (荷蘭)。
  • <YYYY>// - 指定用於年優先格式,例如瑞典文和法文 (加拿大)。
/ed <Enddate> 指定排程結束的日期。 這是選擇性參數。 它不適用於 ONCE、ONSTART、ONLOGON、ONIDLE 或 ONEVENT 排程。 根據預設,排程沒有結束日期。 預設值是本機電腦上的目前日期。 Enddate 的格式會隨著 [地區及語言選項] 中針對本機電腦選取的地區設定而有所不同。 每個地區設定只有一個格式有效。 有效的日期格式包括 (請務必選擇與本機電腦上針對 [地區及語言選項]中的 [簡短日期] 選取的格式最類似的格式):
  • <MM>//- 指定使用月優先格式,例如英文(美國) 和西班牙文 (巴拿馬)。
  • <DD>// - 指定使用日優先格式,例如保加利亞文和荷蘭文 (荷蘭)。
  • <YYYY>// - 指定用於年優先格式,例如瑞典文和法文 (加拿大)。
/ec <channelname> 指定由符合系統事件記錄準則的 ONEVENT 排程類型所觸發的事件通道名稱。
/it 指定只有在執行身分使用者 (工作執行所在的使用者帳戶) 登入電腦後,才會執行排定的工作。 此參數不會影響使用系統權限執行的工作,或已經設定互動式屬性的工作。 您無法使用 change 命令從工作中移除互動式專用屬性。 根據預設,當工作已排程或由 /u 參數指定的帳戶時 (如果有使用的話),執行身分使用者為本機電腦的目前使用者。 不過,如果命令包含 /ru 參數,執行身分使用者則是 /ru 參數所指定的帳戶。
/np 不儲存任何密碼。 工作以指定的使用者身分以非互動方式執行。 只有本機資源可用。
/z 指定在排程完成時刪除工作。
/xml <xmlfile> 建立在 XML 檔案中指定的檔案。 可以與 /ru/rp 參數結合,如果 XML 檔案已經包含使用者帳戶資訊,則可以單獨與 /rp 參數結合。
/v1 建立在 Vista 之前的作業系統可見的工作。 這與 /XML 參數不相容。
/f 指定以建立工作,並再指定的工作已經存在時隱藏警告。
/rl <level> 指定作業的執行層級。 可接受的值為 LIMITED (排定的工作將以最低層級的權限執行,例如標準使用者帳戶) 和 HIGHEST (排定的工作將以最高層級的權限執行,例如超級使用者帳戶)。 預設值為 Limited
/delay <delaytime> 以 mmmm:ss 格式指定在觸發工作之後延遲執行工作的等候時間。 這僅適用於 ONSTART、ONLOGON 和 ONEVENT 排程類型。
/hresult 指定要使用 HRESULT 格式的處理序結束代碼。
/? 在命令提示字元顯示說明。

將工作排定為每 <n> 分鐘執行一次

在按分鐘排程中,需要 /sc minute 參數。 /mo (修飾詞) 參數為選擇性,並且會指定工作每次執行之間的分鐘數。 /mo 預設值為 1 (每分鐘)。 /et (結束時間) 和 /du (持續時間) 參數是選擇性參數,可搭配或不搭配 /k (結束工作) 參數使用。

範例

  • 若要將安全性指令碼 Sec.vbs 排定為每隔 20 分鐘執行一次,請輸入:

    schtasks /create /sc minute /mo 20 /tn "Security Script" /tr \\central\data\scripts\sec.vbs
    

    由於此範例不包含開始日期或時間,因此工作會在命令完成之後 20 分鐘啟動,並在每次系統執行時每隔 20 分鐘執行一次。 請注意,安全性指令碼來源檔案位於遠端電腦上,但工作已排程並在本機電腦上執行。

  • 若要將安全性指令碼 Sec.vbs 排程在每天下午 5:00 到上午 7:59 之間每隔 100 分鐘在本機電腦上執行一次,請輸入:

    schtasks /create /tn "Security Script" /tr sec.vbs /sc minute /mo 100 /st 17:00 /et 08:00 /k
    

    這個範例使用 /sc 參數來指定分鐘排程,以及 /mo 參數來指定 100 分鐘的間隔。 它使用 /st/et 參數來指定每天排程的開始時間和結束時間。 如果指令碼仍在上午 7:59 執行,它也會使用 /k 參數來停止指令碼。如果沒有 /k,schtasks 就不會在上午 7:59 之後啟動指令碼,但如果在上午 6:20 開始的執行個體仍在執行中,則不會停止指令碼。

將工作排定為每 <n> 小時執行一次

在每小時排程中,需要使用 /sc hourly 參數。 /mo (修飾詞) 參數為選擇性,並且會指定工作每次執行之間的小時數。 /mo 預設值為 1 (每小時)。 /k (結束工作) 參數為選擇性,可以與 /et (在指定時間結束) 或 /du (在指定的間隔之後結束) 搭配使用。

範例

  • 若要將 MyApp 程式排定為自 2002 年 3 月的第一天開始每隔 5 小時執行一次,請輸入:

    schtasks /create /sc hourly /mo 5 /sd 03/01/2002 /tn MyApp /tr c:\apps\myapp.exe
    

    在此範例中,本機電腦使用 [地區及語言選項] 中的 [英文 (辛巴威)] 選項,因此開始日期的格式為 MM/DD/YYYY (03/01/2002)。

  • 若要將 MyApp 程式排定為自午夜開始每小時執行,請輸入:

    schtasks /create /sc hourly /st 00:05 /tn MyApp /tr c:\apps\myapp.exe
    
  • 若要將 MyApp 程式排程每隔 3 小時執行一次,共達 10 小時,請輸入:

    schtasks /create /tn MyApp /tr MyApp.exe /sc hourly /mo 3 /st 00:00 /du 0010:00
    

    在此範例中,工作會在上午 12:00、上午 3:00、上午 6:00 和上午 9:00 執行。由於持續時間為 10 小時,因此工作不會在下午 12:00 再次執行。反而是在第二天上午 12:00 再次開始。 此外,因為程式只執行幾分鐘,所以不需要 /k 參數,如果程式在持續時間到期時仍在執行,就會停止程式。

將工作排定為每 <n> 天執行一次

在每日排程中,需要使用 /sc daily 參數。 /mo (修飾詞) 參數為選擇性,並且會指定工作每次執行之間的天數。 /mo 預設值為 1 (每天)。

範例

  • 若要將 MyApp 程式排定在每天上午 8:00 執行一次,直到 2021 年 12 月 31 日為止,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc daily /st 08:00 /ed 31/12/2021
    

    在此範例中,本機電腦系統會設定為 [地區及語言選項] 中的 [英文 (英國)] 選項,因此結束日期的格式為 DD/MM/YYYY (31/12/2021)。 此外,由於此範例不包含 /mo 參數,因此會使用 1 的預設間隔每天執行命令。

  • 若要將 MyApp 程式排定為從 2021 年 12 月 31 日下午 1:00 (13:00) 開始每隔 12 天執行一次,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc daily /mo 12 /sd 12/31/2002 /st 13:00
    

    在此範例中,系統會設定為 [地區及語言選項] 中的 [英文 (辛巴威)] 選項,因此結束日期的格式為 MM/DD/YYYY (12/31/2021)。

  • 若要將安全性指令碼 Sec.vbs 排定為每隔 70 天執行一次,請輸入:

    schtasks /create /tn "Security Script" /tr sec.vbs /sc daily /mo 70 /it
    

    在此範例中,會使用 /it 參數來指定只有在工作執行帳戶所用的使用者登入電腦時,才會執行工作。 因為工作是以特定使用者帳戶的權限執行,因此此工作只會在該使用者登入時執行。

    注意

    若要使用僅限互動式 (/it) 屬性來識別工作,請使用詳細資訊查詢 (/query /v)。 在使用 /it 之工作的詳細資訊查詢顯示中,[登入模式] 欄位具有 [僅限互動式] 的值。

將工作排定為每 <n> 週執行一次

在每週排程中,需要使用 /sc weekly 參數。 /mo (修飾詞) 參數為選擇性,並且會指定工作每次執行之間的週數。 /mo 預設值為 1 (每週)。

按週排程也有選擇性的 /d 參數,可將工作排程在一週的指定天數或所有天數執行。 預設值為 MON (Monday)。 每天 () 選項相當於排程每日工作。

範例

  • 若要將 MyApp 程式排定在遠端電腦上每隔六週執行一次,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /mo 6 /s Server16 /u Admin01
    

    由於此範例會排除 /d 參數,因此工作會在星期一執行。 此範例也會使用 /s 參數來指定遠端電腦,以及 /u 參數以使用者的系統管理員帳戶的權限執行命令。 此外,由於 /p 參數已排除,SchTasks.exe 會提示使用者輸入系統管理員帳戶密碼,而且因為命令是從遠端執行,命令中的所有路徑,包括 MyApp.exe 的路徑,都是參考遠端電腦上的路徑。

  • 若要將工作排定為每隔一個星期五執行一次,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /mo 2 /d FRI
    

    這個範例使用 /mo 參數來指定兩週的間隔,以及 /d 參數來指定星期幾。 若要將工作排定為每週五執行,請省略 /mo 參數,或將它設定為 1

將工作排定為每 <n> 月執行一次

在此排程類型中,需要使用 /sc monthly 參數。 /mo (修飾詞) 參數會指定工作每次執行之間的月數,此為選擇性,預設值為 1 (每個月)。 此排程類型也有選擇性的 /d 參數,可將工作排程在當月的指定日期執行。 預設值為 1 (當月的第一天)。

範例

  • 若要將 MyApp 程式排定在每個月的第一天執行,請輸入:

    schtasks /create /tn MyApp /tr myapp.exe /sc monthly
    

    /mo (修飾詞) 參數和 /d (天) 參數的預設值為 1,因此您不需要針對此範例使用其中任一參數。

  • 若要將 MyApp 程式排定為每隔三個月執行一次,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo 3
    

    此範例使用 /mo 參數來指定 3 個月的間隔。

  • 若要將 MyApp 程式排定為自 2002 年 7 月 2 日至 2003 年 6 月 30 日在當月 21 日午夜每隔一個月執行一年,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo 2 /d 21 /st 00:00 /sd 2002/07/01 /ed 2003/06/30
    

    這個範例使用 /mo 參數來指定每月間隔 (每兩個月),/d 參數來指定日期,/st 參數來指定時間,以及 /sd/ed 參數分別來指定開始日期和結束日期。 在此範例中,本機電腦也會設定為 [地區及語言選項] 中的 [英文 (南非)] 選項,因此日期是以本機格式 YYYY/MM/DD 指定。

將工作排定在一週的特定天執行

按一週某天排程是每週排程的變化。 在每週排程中,需要使用 /sc weekly 參數。 /mo (修飾詞) 參數為選擇性,並且會指定工作每次執行之間的週數。 /mo 預設值為 1 (每週)。 /d 參數為選擇性,會將工作在一週的指定天數或所有天數執行 (*)。 預設值為 MON (Monday)。 每天選項 (/d *) 相當於排程每日工作。

範例

  • 若要將 MyApp 程式排定在每星期三執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /d WED
    

    這個範例使用 /d 參數來指定星期幾。 因為該命令會省略 /mo 參數,因此工作會每週執行一次。

  • 若要將工作排定為每八週在星期一和星期五執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc weekly /mo 8 /d MON,FRI
    

    這個範例使用 /d 參數來指定天,以及 /mo 參數來指定八週間隔。

將工作排定在一月的特定週執行

在此排程類型中,需要使用 /sc monthly 參數、/mo (修飾詞) 參數和 /d (天) 參數。 /mo (修飾詞) 參數會指定工作執行的週別。 /d 參數會指定一週中的日期。 針對此排程類型一週只能指定一天。 此排程也有選擇性的 /m (月) 參數,可讓您針對特定月份或每個月 (*) 排定工作。 /m 參數的預設值是每個月 (*)。

範例

  • 若要將 MyApp 程式排定在每個月的第二個星期日執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo SECOND /d SUN
    

    這個範例使用 /mo 參數來指定當月的第二週,以及 /d 參數來指定日期。

  • 若要將 MyApp 程式排定在 3 月和 9 月的第一個星期一執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo FIRST /d MON /m MAR,SEP
    

    這個範例使用 /mo 參數來指定當月的第一週,以及 /d 參數來指定日期。 它使用 /m 參數來指定月份,並以逗號分隔月份引數。

將工作排定在每月特定日執行

在此排程類型中,需要使用 /sc monthly 參數和 /d (天) 參數。 /d 參數會指定當月的日期 (1 - 31),而不是星期幾,而且您只能在排程中指定一天。 /m (月) 參數是選擇性的,預設值為每個月 (),而 /mo (修飾詞) 參數對這個排程類型無效。

Schtasks.exe 不會讓您針對 /m 參數所指定的月份中未指定的日期排定工作。 例如,嘗試排定 2 月的第 31 天。 不過,如果您沒有使用 /m 參數,並且將工作排定在沒有每個月都出現的日期,則工作不會在較短的月份執行。 若要將工作排定在當月最後一天,請使用最後一天排程類型。

範例

  • 若要將 MyApp 程式排定在每個月的第一天執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly
    

    因為預設修飾詞是無 (沒有修飾詞),因此此命令會使用預設天為 1 天和預設月份為每個月,而不需要任何其他參數。

  • 若要將 MyApp 程式排定在 5 月 15 日和 6 月 15 日下午 3:00 (15:00) 執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /d 15 /m MAY,JUN /st 15:00
    

    這個範例使用 /d 參數來指定日期,以及 /m 參數來指定月份。 它也會使用 /st 參數來指定開始時間。

將工作排定在一個月的最後一天執行

在最後一天排程類型中,需要使用 /sc monthly 參數、/mo LASTDAY (修飾詞) 參數和 /m (月) 參數。 /d (天) 參數無效。

範例

  • 若要將 MyApp 程式排定在每個月的最後一天執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo lastday /m *
    

    這個範例使用 /mo 參數來指定最後一天,並使用 /m 參數搭配萬用字元 (*) 指出程式每個月都會執行。

  • 若要將 MyApp 程式排定在 2 月的最後一天和 3 月的最後一天下午 6:00 執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /mo lastday /m FEB,MAR /st 18:00
    

    這個範例使用 /mo 參數來指定最後一天、/m 參數來指定月份,以及 /st 參數來指定開始時間。

排程執行一次

在執行一次排程類型中,需要使用 /sc once 參數。 /st 參數會指定工作執行的時間是必要的。 /sd 參數會指定工作執行的日期是選擇性的,而 /mo (修飾詞) 和 /ed (結束日期) 參數無效。

如果根據本機電腦的時間,指定的日期和時間是過去時間,Schtasks 不會讓您將排定執行一次的工作。 若要將工作排定在不同時區的遠端電腦上執行一次,您必須在本機電腦上將其排定該日期和時間之前執行。

範例

  • 若要將 MyApp 程式排定在 2003 年 1 月 1 日午夜執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc once /sd 01/01/2003 /st 00:00
    

    這個範例使用 /sc 參數來指定排程類型,以及 /sd/st 參數來指定日期和時間。 此外,在此範例中,本機電腦使用 [地區及語言選項] 中的 [英文 (美國)] 選項,開始日期的格式為 MM/DD/YYYY。

將工作排定在每次系統啟動時執行

在按啟動排程類型中,需要使用 /sc onstart 參數。 /sd (開始日期) 參數是選擇性的,預設值是目前的日期。

範例

  • 若要將 MyApp 程式排定在每次系統啟動時執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onstart
    

    在此範例中,本機電腦使用 [地區及語言選項] 中的 [英文 (美國)] 選項,開始日期的格式為 MM/DD/YYYY。

將工作排定在使用者登入時執行

按登入排程類型會將工作排定在每當有任何使用者登入電腦時執行。 在按登入排程類型中,需要使用 /sc onlogon 參數。 /sd (開始日期) 參數是選擇性的,預設值是目前的日期。

範例

  • 若要將工作排定在當使用者登入遠端電腦時執行,請輸入:

    schtasks /create /tn "Start Web Site" /tr c:\myiis\webstart.bat /sc onlogon /s Server23
    

    本範例會排定批次檔,以在每次使用者 (任何使用者) 登入遠端電腦時執行。 它使用 /s 參數來指定遠端電腦。 因為命令是遠端的,因此命令中的所有路徑 (包括批次檔的路徑) 都是參考遠端電腦上的路徑。

將工作排定在系統閒置時執行

按閒置排程類型會將工作排定為每當 /i 參數指定的時間內沒有使用者活動時執行。 在按閒置排程類型中,需要使用 /sc onidle 參數和 /i 參數。 /sd (開始日期) 是選擇性的,預設值是目前的日期。

範例

  • 若要將 MyApp 程式排定在每當電腦閒置時執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc onidle /i 10
    

    這個範例使用必要的 /i 參數來指定電腦必須保持閒置 10 分鐘後,工作才會開始。

將工作排定為立即執行

Schtasks 沒有 [立即執行] 選項,但您可以藉由建立執行一次的工作,並在幾分鐘內啟動來模擬該選項。

範例

  • 若要將工作排定在 2020 年 11 月 13 日下午 2:18 當地時間執行一次,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc once /st 14:18 /sd 11/13/2002
    

    在此範例中,本機電腦使用 [地區及語言選項] 中的 [英文 (美國)] 選項,因此開始日期的格式為 MM/DD/YYYY。

排定以不同權限執行的工作

您可以排定所有類型的工作以本機和遠端電腦上替代帳戶權限執行。 除了特定排程類型所需的參數之外,還需要 /ru 參數,而且 /rp 參數是選擇性的。

範例

  • 若要在本機電腦上執行 MyApp 程式,請輸入:

    schtasks /create /tn MyApp /tr myapp.exe /sc weekly /d TUE /ru Admin06
    

    這個範例使用 /ru 參數來指定工作應該以使用者的系統管理員帳戶權限 (Admin06) 執行。 此外,在此範例中,也會將工作排定在每週二執行,但您可以使用任何排程類型來執行以替代權限執行的工作。

    為了回應,SchTasks.exe 會提示輸入 Admin06 帳戶的執行身分密碼,然後顯示成功訊息:

    Please enter the run as password for Admin06: ********
    SUCCESS: The scheduled task MyApp has successfully been created.
    
  • 若要每隔四天在 Marketing 電腦上執行 MyApp 程式,請輸入:

    schtasks /create /tn MyApp /tr myapp.exe /sc daily /mo 4 /s Marketing /u Marketing\Admin01 /ru Reskits\User01
    

    此範例使用 /sc 參數來指定每日排程,以及 /mo 參數來指定四天的間隔。 此外,此範例會使用 /s 參數來提供遠端電腦的名稱,以及 /u 參數來指定有權在遠端電腦上排定工作的帳戶 (Marketing 電腦上的 Admin01)。 最後,此範例會使用 /ru 參數來指定工作應該以使用者的非系統管理員帳戶權限 (Reskits 網域中的 User01) 執行。 如果沒有 /ru 參數,工作會以 /u 所指定的帳戶權限執行。

    執行此範例時,Schtasks 會先要求 /u 參數所命名的使用者密碼 (以執行命令),然後要求 /ru 參數所命名的使用者密碼 (以執行工作)。 驗證密碼之後,schtasks 會顯示訊息,指出已排定工作:

    Type the password for Marketing\Admin01:********
    Please enter the run as password for Reskits\User01: ********
    SUCCESS: The scheduled task MyApp has successfully been created.
    
  • 若要將 AdminCheck.exe 程式排定在每週五上午 4:00 在公用電腦上執行,但前提是該電腦的系統管理員已登入,請輸入:

    schtasks /create /tn "Check Admin" /tr AdminCheck.exe /sc weekly /d FRI /st 04:00 /s Public /u Domain3\Admin06 /ru Public\Admin01 /it
    

    這個範例使用 /sc 參數來指定每週排程、/d 參數來指定日期,以及 /st 參數來指定開始時間。 它也會使用 /s 參數來提供遠端電腦的名稱、/u 參數來指定在遠端電腦上具有權限排定工作的帳戶、/ru 參數來設定工作以公用電腦系統管理員的權限 (Public\Admin 01) 執行,以及 /it 參數指出只有在 Public\Admin01 帳戶已登入時工作才會執行。

    注意

    若要使用僅限互動式 (/it) 屬性來識別工作,請使用詳細資訊查詢 (/query /v)。 在使用 /it 之工作的詳細資訊查詢顯示中,[登入模式] 欄位具有 [僅限互動式] 的值。

排定以系統權限執行的工作

所有類型的工作都可以在本機和遠端電腦上以系統帳戶的權限執行。 除了特定排程類型所需的參數之外,還需要 /ru system (或 /ru) 參數,而 /rp 參數無效。

重要

系統帳戶沒有互動式登入權限。 使用者看不到以系統權限執行的程式或工作,或無法與其互動。 /ru 參數會決定工作執行的權限,而不是用來排定工作的權限。 不論 /ru 參數的值為何,只有系統管理員可以排定工作。

若要識別以系統權限執行的工作,請使用詳細資訊查詢 (/query /v)。 在系統執行工作的詳細資訊查詢顯示中,[執行身分使用者] 欄位的值為 [NT AUTHORITY\SYSTEM],而 [登入模式] 欄位的值為 [僅限背景]

範例

  • 若要將 MyApp 程式排定為以系統帳戶的權限在本機電腦上執行,請輸入:

    schtasks /create /tn MyApp /tr c:\apps\myapp.exe /sc monthly /d 15 /ru System
    

    在此範例中,工作會排定在每個月的第十五天執行,但您可以針對以系統權限執行的工作使用任何排程類型。 此外,此範例會使用 /ru System 參數來指定系統安全性內容。 因為系統工作不使用密碼,因此會省略 /rp 參數。

    為了回應,SchTasks.exe 會顯示參考訊息和成功訊息,而不會提示輸入密碼:

    INFO: The task will be created under user name (NT AUTHORITY\SYSTEM).
    SUCCESS: The Scheduled task MyApp has successfully been created.
    
  • 若要將 MyApp 程式排定在每天上午 4:00 在 Finance01電腦上使用系統權限執行,請輸入:

    schtasks /create /tn MyApp /tr myapp.exe /sc daily /st 04:00 /s Finance01 /u Admin01 /ru System
    

    這個範例使用 /tn 參數來命名工作和 /tr 參數來指定 MyApp 程式的遠端複本、/sc 參數來指定每日排程,但會省略 /mo 參數,因為預設值為 1 (每天)。 此範例也會使用 /st 參數來指定開始時間,這也是工作每天執行的時間、/s 參數來提供遠端電腦名稱、/u 參數來指定在遠端電腦上具有權限排定工作的帳戶,以及 /ru 參數來指定工作應在系統帳戶下執行。 如果沒有 /ru 參數,工作會使用 /u 參數所指定的帳戶權限執行。

    Schtasks.exe 會要求 /u 參數所命名的使用者密碼,並在驗證密碼之後顯示訊息,指出工作已建立,且會以系統帳戶的權限執行:

    Type the password for Admin01:**********
    
    INFO: The Schedule Task MyApp will be created under user name (NT AUTHORITY\
    SYSTEM).
    SUCCESS: The scheduled task MyApp has successfully been created.
    

排定執行多個程式的工作

每個工作只會執行一個程式。 不過,您可以建立執行多個程式的批次檔,然後排定工作來執行該批次檔。

  1. 使用文字編輯器 (例如記事本) 建立批次檔,其中包含啟動事件檢視器 (Eventvwr.exe) 和系統監視器 (Perfmon.exe) 程式所需的.exe 檔案名稱和完整路徑。

    C:\Windows\System32\Eventvwr.exe
    C:\Windows\System32\Perfmon.exe
    
  2. 將檔案儲存為 MyApps.bat,開啟 schtasks.exe,然後輸入下列命令建立工作以執行 MyApps.bat

    schtasks /create /tn Monitor /tr C:\MyApps.bat /sc onlogon /ru Reskit\Administrator
    

    此命令會建立監視器工作,在每當有任何人登入時執行。 它使用 /tn 參數來命名工作、/tr 參數來執行 MyApps.bat、/sc 參數來指出 OnLogon 排程類型,以及 /ru 參數以使用者的系統管理員帳戶權限執行工作。

    由於此命令,每當使用者登入電腦時,該工作會同時啟動事件檢視器和系統監視器。

將工作排定在遠端電腦上執行

若要將工作排定在遠端電腦上執行,您必須將工作新增至遠端電腦的排程。 所有類型的工作都可以在遠端電腦上排程,但必須符合下列條件:

  • 您必須具有排定工作的權限。 因此,您必須使用遠端電腦上系統管理員群組成員的帳戶登入本機電腦,或者您必須使用 /u 參數來提供遠端電腦系統管理員的認證。

  • 只有在本機和遠端電腦位於相同網域,或本機電腦位於遠端地腦網域信任的網域時,才可以使用 /u 參數。 否則,遠端電腦無法驗證指定的使用者帳戶,而且無法確認該帳戶是系統管理員群組的成員。

  • 工作必須有足夠的權限,才能在遠端電腦上執行。 所需的權限因工作而異。 根據預設,工作會以本機電腦目前使用者的權限執行,或者,如果使用 /u 參數,工作會以 /u 參數所指定的帳戶權限執行。 不過,您可以使用 /ru 參數,以不同使用者帳戶的權限或系統權限來執行工作。

範例

  • 若要將 MyApp 程式 (以系統管理員身分) 排定為每隔十天在 SRV01 遠端電腦上執行,並且立即開始,請輸入:

    schtasks /create /s SRV01 /tn MyApp /tr c:\program files\corpapps\myapp.exe /sc daily /mo 10
    

    這個範例使用 /s 參數來提供遠端電腦的名稱。 由於本機目前使用者是遠端電腦的系統管理員,因此不需要 /u 參數來提供排定工作的替代權限。

    注意

    在遠端電腦上排定工作時,所有參數都會參考遠端電腦。 因此,/tr 參數指定的檔案是指遠端電腦上的 MyApp.exe 複本。

  • 若要將 MyApp 程式 (以使用者身分) 排定為每隔三小時在 SRV06 遠端電腦上執行,請輸入:

    schtasks /create /s SRV06 /tn MyApp /tr c:\program files\corpapps\myapp.exe /sc hourly /mo 3 /u reskits\admin01 /p R43253@4$ /ru SRV06\user03 /rp MyFav!!Pswd
    

    因為需要系統管理員權限才能排定工作,該命令會使用 /u/p 參數來提供使用者的系統管理員帳戶 (Reskits 網域中的 Admin01) 的認證。 根據預設,也會使用這些權限來執行工作。 不過,由於工作不需要系統管理員權限來執行,因此該命令會包含 /u/rp 參數以覆寫預設值,並在遠端電腦上以使用者的非系統管理員帳戶權限執行工作。

  • 若要將 MyApp 程式 (以使用者身分) 排定為在每個月的最後一天在 SRV02 遠端電腦上執行。

    schtasks /create /s SRV02 /tn MyApp /tr c:\program files\corpapps\myapp.exe /sc monthly /mo LASTDAY /m * /u reskits\admin01
    

    由於本機目前使用者 (user03) 不是遠端電腦的系統管理員,因此該命令會使用 /u 參數來提供使用者的系統管理員帳戶 (Reskits 網域中的 Admin01) 的認證。 將使用系統管理員帳戶權限來排定工作和執行工作。

    因為該命令不包含 /p (密碼) 參數,因此 schtasks 會提示輸入密碼。 然後會顯示成功訊息,在本例中會顯示警告:

    Type the password for reskits\admin01:********
    
    SUCCESS: The scheduled task MyApp has successfully been created.
    WARNING: The scheduled task MyApp has been created, but may not run because the account information could not be set.
    

    這個警告表示遠端網域無法驗證 /u 參數指定的帳戶。 在本例中,遠端網域無法驗證使用者帳戶,因為本機電腦不是遠端電腦網域信任的網域成員。 發生這種情況時,工作作業會出現在排定的工作清單中,但工作實際上是空的,而且不會執行。

    下列來自詳細資訊查詢的顯示會公開工作的問題。 在顯示中,請注意,Next Run Time 的值是 Never,而且 Run As User 的值是 Could not be retrieved from the task scheduler database

    如果這部電腦是相同網域或受信任網域的成員,工作就會成功排程,而且會依指定執行。

    HostName: SRV44
    TaskName: MyApp
    Next Run Time: Never
    Status:
    Logon mode: Interactive/Background
    Last Run Time: Never
    Last Result: 0
    Creator: user03
    Schedule: At 3:52 PM on day 31 of every month, start
    starting 12/14/2001
    Task To Run: c:\program files\corpapps\myapp.exe
    Start In: myapp.exe
    Comment: N/A
    Scheduled Task State: Disabled
    Scheduled Type: Monthly
    Start Time: 3:52:00 PM
    Start Date: 12/14/2001
    End Date: N/A
    Days: 31
    Months: JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NO
    V,DEC
    Run As User: Could not be retrieved from the task sched
    uler database
    Delete Task If Not Rescheduled: Enabled
    Stop Task If Runs X Hours and X Mins: 72:0
    Repeat: Every: Disabled
    Repeat: Until: Time: Disabled
    Repeat: Until: Duration: Disabled
    Repeat: Stop If Still Running: Disabled
    Idle Time: Disabled
    Power Management: Disabled
    

備註

  • 若要以不同使用者的權限執行 /create 命令,請使用 /u 參數。 /u 參數僅適用於排定遠端電腦上的工作。

  • 若要檢視更多 schtasks /create 範例,請在命令提示字元中輸入 schtasks /create /?

  • 若要排定以不同使用者的權限執行的工作,請使用 /ru 參數。 /ru 參數適用於本機和遠端電腦上的工作。

  • 若要使用 /u 參數,本機電腦必須位於與遠端電腦相同的網域中,或必須位於遠端電腦網域信任的網域中。 否則,不會建立工作,或工作作業會是空的,而且工作不會執行。

  • 除非提供密碼,否則 Schtasks 一律會提示您輸入密碼,即使您使用目前的使用者帳戶在本機電腦上排定工作也一樣。 這是 schtask 的正常行為。

  • Schtasks 不會驗證程式檔案位置或使用者帳戶密碼。 如果您未輸入正確的檔案位置或使用者帳戶的正確密碼,則會建立工作,但不會執行。 此外,如果帳戶的密碼變更或到期,而且您沒有變更儲存在工作中的密碼,則工作將不會執行。

  • 系統帳戶沒有互動式登入權限。 使用者看不到使用系統權限執行的程式,而且無法與其互動。

  • 每個工作只會執行一個程式。 不過,您可以建立開始多項工作的批次檔,然後排定工作來執行該批次檔。

  • 只要建立工作,就可以測試工作。 使用執行作業來測試工作,然後檢查 SchedLgU.txt 檔案 (SystemRoot\SchedLgU.txt) 是否有錯誤。