Schtasks
安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。
若要查看该命令语法,请单击以下命令:
schtasks create
创建新的计划任务。
语法
schtasks /create /tn TaskName /tr TaskRun /sc schedule [/mo modifier] [/d day] [/m month[, month...] [/i IdleTime] [/st StartTime] [/sd StartDate] [/ed EndDate] [/s computer[/u[ domain\] user/p password]] [/ru{[ Domain\] User|"System"} [/rp Password]] /?
参数
值 | 说明 |
---|---|
MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY | 指定计划的时间单位。 |
ONCE | 任务在指定的日期和时间运行一次。 |
ONSTART | 任务在每次系统启动的时候运行。可以指定启动的日期,或下一次系统启动的时候运行任务。 |
ONLOGON | 每当用户(任意用户)登录的时候,任务就运行。可以指定日期,或在下次用户登录的时候运行任务。 |
ONIDLE | 只要系统空闲了指定的时间,任务就运行。可以指定日期,或在下次系统空闲的时候运行任务。 |
计划类型 | 修饰符 | 说明 |
---|---|---|
MINUTE | 1~1439 | 任务每n分钟运行一次。 |
HOURLY | 1~23 | 任务每n小时运行一次。 |
DAILY | 1~365 | 任务每n天运行一次。 |
WEEKLY | 1~52 | 任务每n周运行一次。 |
MONTHLY | 1~12 | 任务每n月运行一次。 |
LASTDAY | 任务在月份的最后一天运行。 | |
FIRST、SECOND、THIRD、FOURTH、LAST | 与 /d day 参数共同使用,并在特定的周和天运行任务。例如,在月份的第三个周三。 |
计划类型 | 日期值 |
---|---|
WEEKLY | 可选项。有效值是 MON ~ SUN 和 * (每一天)。MON 是默认值。 |
MONTHLY | 在使用 FIRST、SECOND、THIRD、FOURTH 或 LAST 修饰符 (/mo) 时,需要 MON ~ SUN 中的某个值。1 ~ 31 是可选的,只在没有修饰符或修饰符为 1 ~ 12 类型时有效。默认值是 1 (月份的第一天)。 |
值 | 说明 |
---|---|
[domain\}User? | 指定用户帐户。 |
"System"或"" | 指定操作系统使用的 NT Authority\System 帐户。 |
注释
每个计划类型的语法和范例。
若要查看该命令语法,请单击以下命令:
schtasks create minute
语法
schtasks /create /tn TaskName /tr TaskRun /sc minute [/mo{1 - 1439}] [/st StartTime] [/sd StartDate] [/ed EndDate] [/s computer[/u[ domain\] user/p password]] [/ru{[ Domain\] User|"System"} [/rp Password]]
范例
计划任务每 20 分钟运行一次。
下面的命令计划安全脚本 Sec.vbs 每 20 分钟运行一次。由于命令没有包含起始日期或时间,任务在命令完成 20 分钟后启动,此后每当系统运行它就每 20 分钟运行一次。请注意,安全脚本源文件位于远程计算机上,但任务在本地计算机上计划并执行。
schtasks /create /sc minute /mo 20 /tn "Security scrīpt" /tr \\central\data\scrīpts\sec.vbs
作为响应,SchTasks.exe 显示一条消息来说明任务会以当前用户的权限运行并需要当前用户的密码。输入密码时,SchTasks.exe 不显示键入的文本。
The task will be created under current logged-in user name.Please enter the password************
然后 SchTasks.exe 显示一条消息表明已计划该任务:
成功:计划任务 "Security scrīpt" 已成功创建。
查询显示命令计划的任务:
TaskName Next Run Time Status========================= ======================== ==============Security scrīpt 10:50:00 AM , 4/4/2001
schtasks create hourly
语法
schtasks /create /tn TaskName /tr TaskRun /sc hourly [/mo{1 - 365}] [/st StartTime] [/sd StartDate] [/ed EndDate] [/s computer[/u[ domain\] user/p password]] [/ru{[ Domain\] User|"System"} [/rp Password]]
范例
计划命令在每小时过五分的时候运行。
下面的命令将计划 MyApp 程序从午夜过后五分钟起每小时运行一次。因为忽略了 /mo 参数,命令使用了小时计划的默认值,即每 (1) 小时。如果该命令在 12:05 A.M 之后生成,程序将在第二天才会运行。
schtasks /create /sc hourly /st 00:05:00 /tn "My App" /tr c:\apps\myapp.exe
计划命令每五小时运行一次
下面的命令计划 MyApp 程序从 2001 年 3 月的第一天起每五小时运行一次。它使用 /mo 参数来指定间隔时间,使用 /sd 参数来指定起始日期。由于命令没有指定起始时间,当前时间被用作起始时间。
schtasks /create /sc hourly /mo 5 /sd 03/01/2001 /tn "My App" /tr c:\apps\myapp.exe
schtasks create daily
语法
schtasks /create /tn TaskName /tr TaskRun /sc daily [/mo{1 - 365}] [/st StartTime] [/sd StartDate] [/ed EndDate] [/s computer[/u[ domain\] user/p password]] [/ru{[ Domain\] User|"System"} [/rp Password]]
范例
计划任务每天运行一次
下面的范例计划 MyApp 程序在每天的 8:00 A.M. 运行一次,直到 2001 年 12 月 31 日结束。由于它忽略了 /mo 参数,所以使用默认间隔 1 来每天运行命令。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc daily /st 08:00:00 /ed 12/31/2001
计划任务每隔一天运行一次
下面的范例计划 MyApp 程序从 2001 年 12 月 31 日起每隔一天在 1:00 P.M. (13:00) 运行。命令使用 /mo 参数来指定两 (2) 天的间隔。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc daily /mo 2 /st 13:00:00 /sd 12/31/2001
schtasks create weekly
语法
schtasks /create /tn TaskName /tr TaskRun /sc weekly [/d{ MON - SUN| *}] [/mo{1 - 52}] [/st StartTime] [/sd StartDate] [/ed EndDate] [/s computer[/u[ domain\] user/p password]] [/ru{[ Domain\] User|"System"} [/rp Password]]
范例
计划任务运行一次
下面的命令计划 MyApp 程序在 2002 年 1 月 1 日午夜运行一次。它使用 /ru 参数指定以用户的 Administrator 帐户权限运行任务,使用 /rp 参数为 Administrator 帐户提供密码。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc once /st 00:00:00 /sd 01/01/2002 /ru Admin23 /rp p@ssworD1
schtasks create onstart
语法
schtasks /create /tn TaskName /tr TaskRun /sc onstart [/sd StartDate] [/s computer[/u[ domain\] user/p password]] [/ru{[ Domain\] User|"System"} [/rp Password]]
范例
计划任务在每次系统启动的时候运行
下面的命令计划 MyApp 程序在每次系统启动的时候运行,起始日期是 2001 年 3 月 15 日。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc onstart /sd 03/15/2001
schtasks create onlogon
语法
schtasks /create /tn TaskName /tr TaskRun /sc onlogon [/sd StartDate] [/s computer[/u[ domain\] user/p password]] [/ru{[ Domain\] User|"System"} [/rp Password]]
范例
计划任务在用户登录到远程计算机的时候运行
下面的命令计划批处理文件在用户(任何用户)每次登录到远程计算机上的时候运行。它使用 /s 参数指定远程计算机。因为命令是远程的,所以命令中所有的路径,包括批处理文件的路径,都指定为远程计算机上的路径。
schtasks /create /tn "Start Web Site" /tr c:\myiis\webstart.bat /sc onlogon /s Server23
schtasks create onidle
语法
schtasks /create /tn TaskName /tr TaskRun /sc onidle /i IdleTime [/sd StartDate] [/s computer[/u[ domain\] user/p password]] [/ru{[ Domain\] User|"System"} [/rp Password]]
范例
计划某项任务在计算机空闲的时候运行
下面的命令计划 MyApp 程序在计算机空闲的时候运行。它使用必需的 /i 参数指定在启动任务之前计算机必需持续空闲十分钟。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc onidle /i 10
更多范例
若要查看范例,请单击范例名称:
创建以 System 权限运行的任务
下面的命令计划 MyApp 程序以 NT Authority\System 帐户权限运行。在这个范例中,任务计划在每月的第一天运行,但对于以系统权限运行的任务可以使用所有的计划类型。
该命令使用/ru "System"参数指定系统安全上下文。因为系统任务不需要密码,所以忽略了/rp参数。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc monthly /d 1 /ru "System"
作为响应,SchTasks.exe 显示一个信息性消息和一个成功消息。它不提示输入密码。
信息:此任务将被创建于用户名下 ("NT AUTHORITY\SYSTEM")。成功:计划任务 "My App" 已成功创建。
创建运行多个程序的任务
每个任务只能运行一个程序。但是可以创建一个运行多个程序的批处理文件,然后计划一个任务来运行该批处理文件。下面的过程说明了这个方法:
在这个范例中创建了一个启动“事件查看器”(Eventvwr.exe) 和“系统监视器”(Perfmon.exe) 的批处理文件。
C:\Windows\System32\Eventvwr.exe
C:\Windows\System32\Perfmon.exe
下面的命令创建了 Monitor 任务,每当有人登录它就运行。它使用/tn参数命名任务,使用/tr参数运行 MyApps.bat。它使用/sc参数来指明 OnLogon 计划类型,使用/ru参数指定 Administrator 帐户。
schtasks /create /tn Monitor /tr C:\MyApps.bat /sc onlogon /ru Reskit\Administrator
该命令的结果是,每当用户登录到计算机,任务就启动“事件查看器”和“系统监视器”。
更改计划任务
更改一个或多个下列任务属性。
语法
schtasks /change /tn TaskName [/s computer[/u[ domain\] user/p password]] [/tr TaskRun] [/ru[ Domain\] User|"System"] [/rp Password]
参数
值 | 说明 |
---|---|
[domain\]User | 指定用户帐户 |
"System"or"" | 指定为操作系统所使用的 NT Authority\System 帐户。 |
在更改用户帐户的时候,必须也要更改用户密码。如果命令带有/ru参数,但没有/rp参数,SchTasks.exe 提示要求输入新的密码而且不显示键入的文本。
任务以不需要密码的 NT Authority\System 帐户权限运行,SchTasks.exe 不会提示输入密码。
注释
范例
更改任务运行的程序
下面的命令将 Virus Check 任务运行的程序由 VirusCheck.exe 更改为 VirusCheck2.exe。此命令使用/tn参数标识任务,使用/tr参数指定任务的新程序。(不能更改任务名称。)
schtasks /change /tn "Virus Check" /tr C:\VirusCheck2.exe
作为响应,SchTasks.exe 显示以下成功消息:
成功:计划任务 "Virus Check" 的参数已更改。
此命令的结果是,Virus Check 任务现运行 VirusCheck2.exe。
更改远程任务的用户密码
下面的命令更改用于远程计算机 Svr01 上 RemindMe 任务的用户帐户密码。命令使用/tn参数标识任务,使用/s参数指定远程计算机。它使用/rp参数指定新的密码 p@ssWord3。
在用户帐户密码过期或更改的时候需要此过程。如果存储在任务中的密码无效,那么任务不会运行。
schtasks /change /tn RemindMe /s Svr01 /rp p@ssWord3
作为响应,SchTasks.exe 显示以下成功消息:
成功:计划任务 "RemindMe" 的参数已更改。
这个命令的结果是,RemindMe 任务现在以其初始的用户帐户运行,但拥有一个新密码。
更改任务的程序和用户帐户
下面的命令更改任务运行的程序以及任务运行的用户帐户。实质上,它将旧的计划用于新的任务。这个命令将每天早上 9:00 a.m. 启动 "Notepad.exe" 的 Notepad 任务更改为启动 "Internet Explorer"。
该命令使用/tn参数来标识任务。它使用/tr参数更改任务运行的程序,使用/ru参数更改任务运行凭据的用户帐户。
忽略为用户帐户提供密码的/rp参数。必须为帐户提供密码,但可以使用/rp参数以及在明文中键入密码,或等待 SchTasks.exe 要求输入密码的提示,然后以不显示文本的方式输入密码。
schtasks /change /tn Notepad /tr "c:\program files\Internet Explorer\iexplore.exe" /ru DomainX\Admin01
作为响应,SchTasks.exe 索要用于用户帐户的密码。它不显示键入的文本,因此密码不可见。
Please enter the password for DomainX\Admin01:*********
请注意,/tn参数标识任务,/tr和/ru参数更改任务的属性。不能使用另外一个参数来标识任务,而且不能更改任务的名称。
作为响应,SchTasks.exe 显示以下成功消息:
成功:计划任务 "Notepad" 的参数已更改。
这个命令的结果是:RemindMe 任务现在以其初始的用户帐户运行,但拥有一个新密码。
将程序更改为 System 帐户
下面的命令更改了 Securityscrīpt 任务以使其以 NT Authority\System 帐户权限运行。它使用/ru ""参数来表示 System 帐户。
schtasks /change /tn Securityscrīpt /ru ""
作为响应,SchTasks.exe 显示以下成功消息:
成功:计划任务 "Securityscrīpt" 的参数已更改。
因为任务以 System 帐户权限运行不需要密码,所以 SchTasks.exe 不提示输入密码。
schtasks run
立即运行计划任务。run操作忽略计划,但使用程序文件位置、用户帐户和存储在任务中的密码立即运行任务。
语法
schtasks /run /tn TaskName [/s computer[/u[ domain\] user/p password]] /?
参数
注释
范例
在本地计算机上运行任务
下面的命令启动 "Security scrīpt" 任务。
schtasks /run /tn "Security scrīpt"
作为响应,SchTasks.exe 启动与任务相关联的脚本并显示以下消息:
成功:计划任务 "Security scrīpt" 正在运行 ...
在远程计算机上运行任务
下面的命令在远程计算机 Svr01 上运行 Update 任务:
schtasks /run /tn Update /s Svr01
此时,SchTasks.exe 显示以下错误消息:
错误:无法运行计划任务 "Update"。
查看 Svr01 上的 “计划任务程序”事务日志 C:\Windows\SchedLgU.txt 以获取错误的原因。在这种情况下,日志中显示以下条目:
"Update.job" (update.exe) 3/26/2001 1:15:46 PM ** ERROR **The attempt to log on to the account associated with the task failed, therefore, the task did not run. The specific error is 0x8007052e:Logon failure:unknown user name or bad password. Verify that the task's Run-as name and password are valid and try again.
显然,任务中的用户名或密码在此系统中无效。下面的schtasks /change命令为 Svr01 上的 Update 任务更新用户名和密码:
schtasks /change /tn Update /s Svr01 /ru Administrator /rp PassW@rd3
在change命令完成之后,重新运行run命令。这一次,Update.exe 程序启动,SchTasks.exe 显示以下消息:
错误:无法运行计划任务 "Update"。
schtasks end
终止由任务启动的程序
语法
schtasks /end /tn TaskName [/s computer[/u[ domain\] user/p password]] /?
参数
注释
范例
终止本地计算机上的任务
下面的命令终止由 My Notepad 任务启动的 Notepad 实例:
schtasks /end /tn "My Notepad"
作为响应,SchTasks.exe 终止了由任务启动的 Notepad 实例并显示以下成功消息:
成功:计划任务 "My Notepad" 已成功终止。
终止远程计算机上的任务
下面的命令终止远程计算机 Svr01 上由 InternetOn 任务启动的 Internet Explorer 实例:
schtasks /end /tn InternetOn /s Svr01
作为响应,SchTasks.exe 停止由任务启动的 Internet Explorer 实例并显示以下成功消息:
成功:计划任务 "Update" 正在运行...
schtasks delete
删除计划任务
语法
schtasks /delete /tn{ TaskName| *} [/f] [/s computer[/u[ domain\] user/p password]] [/?]
参数
值 | 说明 |
---|---|
TaskName | 删除已命名任务。 |
* | 删除计算机上的所有计划任务。 |
注释
范例
从远程计算机上的计划表中删除任务
下面的命令从远程计算机上的计划表中删除 "Start Mail" 任务。它使用 /s 参数来标识远程计算机。
schtasks /delete /tn "Start Mail" /s Svr16
作为响应, SchTasks.exe 显示以下确认消息。要删除任务,请键入y。要取消命令,请键入n:
警告您确定要删除任务 "Start Mail" 吗 (Y/N )?y成功:已成功删除计划任务 "Start Mail"。
删除所有为本地计算机计划的任务。
下面的命令从本地计算机的计划表中删除所有的任务,包括由其它用户计划的任务。它使用 /tn * 参数代表计算机上所有的任务,使用 /f 参数取消确认消息。
schtasks /delete /tn * /f
作为响应,SchTasks.exe 显示以下成功消息以表明只删除了计划任务 Securescrīpt。
成功:计划任务 "Securescrīpt" 已成功删除。
schtasks query
显示计划在计算机上运行的所有任务,包括那些由其它用户计划的任务。
语法
schtasks [/query] [/fo{TABLE|LIST|CSV}] [/nh] [/v] [/s computer[/u[ domain\] user/p password]]
参数
使用 /v 的查询应该格式化成LIST或CSV。
注释
范例
显示本地计算机上的计划任务。
下面的命令显示为本地计算机计划的所有任务。这些命令得到的结果相同,并可以交换使用。
schtasks
schtasks /query
将为远程计算机计划的任务记入日志
下面的命令请求为远程计算机计划的任务列表,并将任务添加到本地计算机中以逗号分隔的日志文件中。此命令的格式可以用来收集和跟踪为多个计算机计划的任务。
命令使用 /s 参数标识远程计算机 Reskit16,使用/fo参数指定格式,使用 /nh 参数取消列标题。>>附加符号将输出重定向到本地计算机 Svr01 上的任务日志 p0102.csv。因为命令在远程计算机上运行,所以本地计算机路径必须是完全合格的。
schtasks /query /s Reskit16 /fo csv /nh >> \\svr01\data\tasklogs\p0102.csv
作为响应,SchTasks.exe 会把为计算机 Reskit16 计划的任务添加到本地计算机 Svr01 上的 p0102.csv 文件中。
注释
错误:数据非法。
已损坏任务无法恢复。要恢复系统的计划任务特征,请使用 SchTasks.exe 或“计划任务”从系统中删除任务并重新计划。