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>] 使用指定用户帐户的权限来运行该命令。 默认值为本地计算机的当前用户的权限。 /u 和 /p 参数仅在使用 /s 时有效。 指定帐户的权限用于计划任务和运行任务。 若要使用其他用户的权限运行任务,请使用 /ru 参数。 用户帐户必须是远程计算机上 Administrators 组的成员。 此外,本地计算机必须与远程计算机位于同一域中,或者必须位于远程计算机域信任的域中。
/p <password> 指定 /u 参数中指定的用户帐户的密码。 如果在不使用 /p 形参或 password 实参的情况下使用 /u 形参,则 schtasks 将提示你输入密码。 /u 和 /p 参数仅在使用 /s 时有效。
/ru {[<domain>]<user> | system} 使用指定用户帐户的权限运行任务。 默认情况下,使用本地计算机的当前用户的权限运行任务,或者使用 /u 参数指定的用户权限(如果包含)。 在本地或远程计算机上计划任务时,/ru 参数有效。 有效选项包括:
  • Domain - 指定备用用户帐户。
  • System - 指定 Local System 帐户,即操作系统和系统服务所使用的高特权帐户。
/rp <password> 指定现有用户帐户或 /ru 参数指定的用户帐户的密码。 如果在指定用户帐户时未使用此参数,SchTasks.exe 将在下次登录时提示输入密码。 不要将 /rp 参数用于通过 System 帐户凭据 (/ru System) 运行的任务。 System 帐户没有密码,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 仅在没有 /m 参数的情况下有效,或者如果 /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 小时格式指定分钟或小时计划的最长时间。 在指定的时间过后,在开始时间重复之前,schtask 不会再次启动任务。 默认情况下,任务计划没有最长持续时间。 此参数为可选参数,仅对 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 指定仅当以用户身份运行(运行任务的用户帐户)登录到计算机时才运行计划任务。 此参数对使用系统权限运行的任务或已设置了仅交互式属性的任务没有影响。 不能使用更改命令从任务中删除仅交互式属性。 默认情况下,以用户身份运行是计划任务时本地计算机的当前用户,或是 /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(在指定间隔后结束)一起使用。

示例

  • 若要计划从 2002 年 3 月的第一天开始每 5 小时运行一次 MyApp 程序,请键入:

    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 程序每 12 天在下午 1:00 (13:00) 运行一次(从 2021 年 12 月 31 日开始),请键入:

    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(星期一)。 “每天 ()”选项等效于计划每日任务。

示例

  • 若要计划让 MyApp 程序每六周在远程计算机上运行一次,请键入:

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

    由于此示例省略了 /d 参数,因此任务在星期一运行。 此示例还使用 /s 参数指定远程计算机,并使用 /u 参数以用户的 Administrator 帐户的权限运行命令。 此外,由于省略了 /p 参数,SchTasks.exe 会提示用户输入 Administrator 帐户密码,并且由于命令是远程运行的,因此命令中的所有路径(包括 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(星期一)。 “每天”选项 (/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(修饰符)参数对此计划类型无效。

如果任务日期为不在 /m 参数指定的月份中,则无法通过 Schtasks.exe 计划任务日期。 例如,尝试计划任务日期为 2 月的第 31 天。 但是,如果不使用 /m 参数,并且计划的任务日期并非每个月都有的日期,则该任务将不会在较短天数的月份运行。 若要为当月的最后一天计划任务,请使用最后一天计划类型。

示例

  • 若要计划让 MyApp 程序在每月的第一天运行,请键入:

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

    由于默认修饰符为 none(无修饰符),因此该命令使用默认日期 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 参数指定任务应以用户的 Administrator 帐户 (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 参数指定任务应以用户的非 Administrator 帐户(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 计算机管理员 (Public\Admin01) 的权限运行,使用 /it 参数指示任务仅在 Public\Admin01 帐户登录时运行。

    注意

    若要使用仅交互式 (/it) 属性标识任务,请使用详细查询 (/query /v)。 在带有 /it 的任务的详细查询显示中,“登录模式”字段的值为“仅交互”。

计划以系统权限运行的任务

所有类型的任务都可以在本地和远程计算机上以 System 帐户的权限运行。 除特定计划类型所需的参数外,/ru system(或 /ru)参数是必需的,而 /rp 参数无效。

重要

System 帐户没有交互式登录权限。 用户无法查看以系统权限运行的程序或任务,也无法与之交互。 /ru 参数可确定运行任务的权限,而不是用于计划任务的权限。 无论 /ru 参数的值如何,都只有管理员可以计划任务。

若要标识以系统权限运行的任务,请使用详细查询 (/query /v)。 在系统运行任务的详细查询显示中,“以用户身份运行”字段的值为 NT AUTHORITY\SYSTEM,“登录模式”字段的值为“Background only”。

示例

  • 若要计划让 MyApp 程序在具有 System 帐户权限的本地计算机上运行,​​请键入:

    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 参数指定任务应在 System 帐户下运行。 如果没有 /ru 参数,任务将使用 /u 参数指定的帐户权限运行。

    Schtasks.exe 请求由 /u 参数命名的用户的密码,并在对密码进行身份验证后显示一条消息,指示任务已创建并且它将以 System 帐户的权限运行:

    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 参数以用户的 Administrator 帐户的权限运行任务。

    由于此命令,每当用户登录到计算机时,任务将同时启动事件查看器和系统监视器。

计划远程计算机上运行的任务

若要计划让任务在远程计算机上运行,必须将该任务添加到远程计算机的计划中。 可以在远程计算机上计划所有类型的任务,但必须满足以下条件:

  • 必须具有计划任务的权限。 因此,必须使用远程计算机上 Administrators 组成员的帐户登录到本地计算机,或者必须使用 /u 参数来提供远程计算机的 Administrator 的凭据。

  • 仅当本地计算机和远程计算机位于同一域中,或者本地计算机位于远程计算机域信任的域中时,才能使用 /u 参数。 否则,远程计算机无法对指定的用户帐户进行身份验证,并且无法验证该帐户是否为 Administrators 组的成员。

  • 该任务必须具有足够的权限才能在远程计算机上运行。 所需权限因任务而异。 默认情况下,任务在本地计算机当前用户的权限下运行,或者,如果使用 /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 参数来提供用户的 Administrator 帐户(Reskits 域中的 Admin01)的凭据。 默认情况下,这些权限也用于运行任务。 但是,由于任务不需要管理员权限即可运行,因此该命令包含 /u 和 /rp 参数以替代默认值,并在远程计算机上以用户的非 Administrator 帐户权限运行任务。

  • 计划让 MyApp 程序(以用户身份)每个月的最后一天在 SRV02 远程计算机上运行。

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

    由于本地当前用户 (user03) 不是远程计算机的 Administrator,因此该命令使用 /u 参数提供用户的 Administrator 帐户(Reskits 域中的 Admin01)的凭据。 Administrator 帐户权限将用于计划任务和运行任务。

    由于命令不包含 /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 参数指定的帐户进行身份验证。 在这种情况下,远程域无法对用户帐户进行身份验证,因为本地计算机不是远程计算机域信任的域的成员。 发生这种情况时,任务作业将显示在计划任务列表中,但任务实际上为空,不会运行。

    详细查询显示的以下内容为任务的问题。 请注意,显示的内容中,“下一次运行时间”的值为“从不”,“以用户身份运行”的值为“无法从任务计划程序数据库检索”。

    如果此计算机是同一域或受信任域的成员,则已成功计划任务并按指定运行。

    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 不会验证程序文件位置或用户帐户密码。 如果没有为用户帐户输入正确的文件位置或密码,则可以创建任务,但不会运行。 此外,如果帐户密码发生更改或过期,并且没有更改任务中保存的密码,则任务将不会运行。

  • System 帐户没有交互式登录权限。 用户看不到也无法与以系统权限运行的程序交互。

  • 每个任务仅运行一个程序。 但是,可以创建启动多个任务的批处理文件,然后计划运行批处理文件的任务。

  • 可以在创建任务后立即对其进行测试。 使用运行操作测试任务,然后检查 SchedLgU.txt 文件 (SystemRoot\SchedLgU.txt) 是否存在错误。