Schtasks命令详解
![Schtasks命令详解](https://img.360docs.net/img09/111xgkhs6opseohzv6tqqcvcycm2bhw2-91.webp)
![Schtasks命令详解](https://img.360docs.net/img09/111xgkhs6opseohzv6tqqcvcycm2bhw2-02.webp)
Schtasks
安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。
若要查看该命令语法,请单击以下命令:
schtasks create
创建新的计划任务。
语法
schtasks
/create
/tn T askName
/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]] /?
参数
/tn T askName
指定任务的名称。
/tr TaskRun
指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名。如果忽略该路径,SchT asks.exe 将假定文件在Systemroot\System32 目录下。
/sc schedule
指定计划类型。有效值为MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE。
值
说明
MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY指定计划的时间单位。
ONCE任务在指定的日期和时间运行一次。
ONSTART任务在每次系统启动的时候运行。可以指定启动的日期,或下一次系统启动的时候运行任务。
ONLOGON每当用户(任意用户)登录的时候,任务就运行。可以指定日期,或在下次用户登录的时候运行任务。
ONIDLE只要系统空闲了指定的时间,任务就运行。可以指定日期,或在下次系统空闲的时候运行任务。
/mo modifier
指定任务在其计划类型内的运行频率。这个参数对于MONTHLY 计划是必需的。对于MINUTE、HOURLY、DAILY 或WEEKLY 计划,这个参数有效,但也可选。默认值为1。
计划类型修饰符说明
MINUTE1 ~1439任务每n 分钟运行一次。
HOURLY1 ~23任务每n 小时运行一次。
DAILY1 ~365任务每n 天运行一次。
WEEKLY1 ~52任务每n 周运行一次。
MONTHLY1 ~12任务每n 月运行一次。
LASTDAY任务在月份的最后一天运行。
FIRST、SECOND、THIRD、FOURTH、LAST 与/d day 参数共同使用,并在特定的周和天运行任务。例如,在月份的第三个周三。
/d dirlist
指定周或月的一天。只与WEEKLY 或MONTHLY 计划共同使用时有效。
计划类型日期值
WEEKLY可选项。有效值是MON ~ SUN 和* (每一天)。MON 是默认值。
MONTHLY在使用FIRST、SECOND、THIRD、FOURTH 或LAST 修饰符(/mo) 时,需要MON ~SUN 中的某个值。1 ~31 是可选的,只在没有修饰符或修饰符为1 ~12 类型时有效。默认值是1 (月份的第一天)。
/m month[,month...]
指定一年中的一个月。有效值是JAN ~DEC 和* (每个月)。/m 参数只对于MONTHLY 计划有效。在使用LASTDAY 修饰符时,这个参数是必需的。否则,它是可选的,默认值是* (每个月)。
/i InitialPageFileSize
指定任务启动之前计算机空闲多少分钟。键入一个1 ~999 之间的整数。这个参数只对于ONIDLE 计划有效,而且是必需的。
/st StartTime
以HH:MM:SS 24 小时格式指定时间。默认值是命令完成时的当前本地时间。/st 参数只对于MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 和ONCE 计划有效。它只对于ONCE 计划是必需的。
/sd StartDate
以MM/DD/YYYY 格式指定任务启动的日期。默认值是当前日期。/sd 参数对于所有的计
划有效,但只对于ONCE 计划是必需的。
/ed EndDate
指定任务计划运行的最后日期。此参数是可选的。它对于ONCE、ONSTART、ONLOGON 或ONIDLE 计划无效。默认情况下,计划没有结束日期。
/s Computer
指定远程计算机的名称或IP 地址(带有或者没有反斜杠)。默认值是本地计算机。
/u [domain\]user
使用特定用户帐户的权限运行命令。默认情况下,使用已登录到运行SchT asks 的计算机上的用户的权限运行命令。
/p password
指定在/u 参数中指定的用户帐户的密码。如果使用/u 参数,则需要该参数。
/ru {[Domain\]User | "System"}
使用指定用户帐户的权限运行任务。默认情况下,使用用户登录到运行SchTasks 的计算机上的权限运行任务。
值说明[domain\}User?指定用户帐户。
"System" 或""指定操作系统使用的NT Authority\System 帐户。
/p Password
指定用户帐户的密码,该用户帐户在/u 参数中指定。如果在指定用户帐户的时候忽略了这个参数,SchT asks.exe 会提示您输入密码而且不显示键入的文本。使用NT Authority\System 帐户权限运行的任务不需要密码,SchTasks.exe 也不会提示索要密码。
/?在命令提示符显示帮助。
注释
XOX
SchTasks.exe 不验证程序文件的位置或用户帐户密码。如果没有为用户帐户输入正确的文件位置或正确的密码,任务仍然可以创建,但不会运行。另外,如果帐户的密码更改或过期,而且没有更改存储在任务中的密码,那么任务也不会运行。
NT Authority\System 帐户没有交互式登录权限。用户看不到以系统权限运行的程序,不
能与之交互。
每个任务只运行一个程序。但是,可以创建一个批处理文件来启动多个任务,然后计划一个任务来运行该批处理文件。
只要创建了任务就可对其测试。使用run 操作来测试任务,然后从SchedLgU.txt 文件( Systemroot\SchedLgU.txt ) 中查阅错误。
每个计划类型的语法和范例。
若要查看该命令语法,请单击以下命令:
schtasks create minute
语法
schtasks /create /tn T askName /tr T askRun /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 Script" /tr \\central\data\scripts\sec.vbs
作为响应,SchT asks.exe 显示一条消息来说明任务会以当前用户的权限运行并需要当前用户的密码。输入密码时,SchTasks.exe 不显示键入的文本。
The task will be created under current logged-in user name.
Please enter the password
************
然后SchTasks.exe 显示一条消息表明已计划该任务:
成功:计划任务"Security Script" 已成功创建。
查询显示命令计划的任务:
TaskName Next Run Time Status
========================= ======================== ==============
Security Script 10:50:00 AM , 4/4/2001
schtasks create hourly
语法
schtasks
/create
/tn T askName
/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 T askName
/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 T askName
/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 程序在远程计算机上每六周运行一次。该命令使用/mo 参数来指定间隔。它也使用/s 参数来指定远程计算机,使用/ru 参数来计划任务以用户的Administrator 帐户权限运行。因为忽略了/rp 参数,SchTasks.exe 会提示用户输入Administrator 帐户密码。
另外,因为命令是远程运行的,所以命令中所有的路径,包括到MyApp.exe 的路径,都是指向远程计算机上的路径。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc weekly /mo 6 /s Server16 /ru Admin01
计划任务每隔一周在周五运行
下面的命令计划任务每隔一周在周五运行。它使用/mo 参数来指定两周的间隔,使用/d 参数来指定是一周内的哪一天。如计划任务在每个周五运行,要忽略/mo 参数或将其设置为1。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc weekly /mo 2 /d FRI schtasks create monthly
语法
常规月计划语法
schtasks
/create
/tn T askName
/tr TaskRun
/sc monthly
[/mo {FIRST | SECOND | THIRD | FOURTH | LAST | LASTDAY]
[/d {MON - SUN | 1 - 31}]
[/m {JAN - DEC[,JAN - DEC...] | *}]
[/st StartTime]
[/sd StartDate]
[/ed EndDate]
[/s computer [/u [domain\]user /p password]] [/ru {[Domain\]User | "System"} [/rp Password]]
指定周的语法
schtasks
/create
/tn T askName
/tr TaskRun
/sc monthly
/mo {FIRST | SECOND | THIRD | FOURTH | LAST} /d {MON - SUN}
[/m {JAN - DEC[,JAN - DEC...] | *}]
[/st StartTime]
[/sd StartDate]
[/ed EndDate]
[/s computer [/u [domain\]user /p password]] [/ru {[Domain\]User | "System"} [/rp Password]]
Lastday 语法
schtasks
/create
/tn T askName
/tr TaskRun
/sc monthly
/mo LASTDAY
/m {JAN - DEC[,JAN - DEC...] | *}
[/st StartTime]
[/sd StartDate]
[/ed EndDate]
[/s computer [/u [domain\]user /p password]] [/ru {[Domain\]User | "System"} [/rp Password]]
指定日期的语法
schtasks
/create
/tn T askName
/tr TaskRun
/sc monthly
/d {1 - 31}
[/m {JAN - DEC[,JAN - DEC...] | *}]
[/st StartTime]
[/sd StartDate]
[/ed EndDate]
[/s computer [/u [domain\]user /p password]]
[/ru {[Domain\]User | "System"} [/rp Password]]
范例
计划任务在每月的第一天运行
下面的命令计划MyApp 程序在每月的第一天运行。因为默认修饰符是none(即:没有修饰符),默认天是第一天,默认的月份是每个月,所以该命令不需要任何其它的参数。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc monthly
计划任务在每月的最后一天运行