AT 命令安排在特定日期和时间运行命令和程序。

显示当前运行的任务列表: SchTasks.exe

显示计划任务的高级属性:schtasks /query /fo LIST /v

要使用 AT 命令,计划服务必须已在运行中。(net start schedule)

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]

AT [\\computername] time [/INTERACTIVE][ /EVERY:date[,...] | /NEXT:date[,...]] "command"

1、\\computername  指定远程计算机。 如果省略这个参数,会计划在本地计算机上运行命令。

2、id      指定给已计划命令的识别号。

3、/delete 删除某个已计划的命令。如果省略 id,计算机上所有已计划的命令都会被删除。

4、/yes    不需要进一步确认时,跟删除所有作业的命令一起使用。

5、time    指定运行命令的时间。

6、/interactive 允许作业在运行时,与当时登录的用户桌面进行交互。

7、/every:date[,...]  每个月或每个星期在指定的日期运行命令。如果省略日期,则默认为在每月的本日运行。

8、/next:date[,...] 指定在下一个指定日期(如,下周四)运行命令。如果省略日期,则默认为在每月的本日运行。

9、"command" 准备运行的 Windows NT 命令或批处理程序。

//computername 表示此任务所执行的主机,可以是本地也可以是远程,可以是主机名也可以是ip地址,出于安全考虑,建议使用ip地址,主机名若没有配置好,可能会解析不出来

(1)逐个参数说明

time   格式为hh:mm:ss(如20:00:00),如果添加任务输入的时间早于系统时间,则此任务默认为第二天的这个时间,不输入秒也可以,如20:00或20:0也是允许的, 如:at 20:00:00 help

/interactive 加上此参数,command的执行过程将被显示出来,否则,运行过程是不会显示的 如:at /interactive 20:00:00 help

/every:date[,...]   在每个星期或月的指定日期执行此任务,将date指定为星期的一天或多天(M,T,W,Th,F,S,Su),或月的一天或多天(使用1 到31的数字)。用逗号分隔多个日期项。如果省略了date,将假定为该月的当前日期。从当前月开始

如:at 20:00:00 /every:M help

         at 20:00:00 /every:T,F,Su help

         at 20:00:00 /every:1 help

         at 20:00:00 /every:2,4,6 help

         at 20:00:00 /every: help

/next:date[,...]在重复出现下一天(例如,下个星期四)时,运行指定命令将date指定为星期的一天或多天(M,T,W,Th,F,S,Su),或月的一天或多天(使用1到31的数字)。用逗号分隔多个日期项。如果省略了date,将假定为该月的当前日期。从下个月开始

如:at 20:00:00 /next:M help

         at 20:00:00 /next:T,F,Su help

         at 20:00:00 /next:1 help

         at 20:00:00 /next:2,4,6 help

         at 20:00:00 /next: help

"command"指定要运行的系统命令、程序(.exe或.com文件)或批处理程序(.bat或.cmd文件)。当命令需要路径作为参数时,请使用绝对路径,也就是从驱动器号开始的整个路径。如果命令在远程计算机上,请指定服务器和共享名的UNC符号,而不是远 程驱动器号。如果命令不是可执行 (.exe)文件,必须在命令前加上cmd /c

可通过at id查看任务状态

(2)在添加了at任务后,执行at命令就会显示出当前的任务列表,此时,就可以根据任务的id,查看、删除这些任务

首先我们添加10个任务,用for /L %%i IN (0,1,9) DO at 20:0%%i:00 help这个批处理来添加,此处使用help命令是为了简单,当让也可以替换为其他可执行程序;执行完这个批处理后,可以看到,at列表中已添加了10个任务,如下所示:

C:\Documents and Settings\darking>at

状态 ID         日期                        时间              命令行

-----------------------------------------------------------

            1       明天                        20:00             help

            2       明天                        20:01             help

            3       明天                        20:02             help

            4       明天                        20:03             help

            5       明天                        20:04             help

            6       明天                        20:05             help

            7       明天                        20:06             help

            8       明天                        20:07             help

            9       明天                        20:08             help

           10       明天                        20:09             help

1)at 1 /delete    删除任务1

2)at 2            查看任务2的具体内容

任务 ID:           2

状态:              OK

计划:              明天

时间:       20:01

交互:              No

命令:              help

3)at /delete      删除所有任务,删除所有任务前,会出现提示

C:\Documents and Settings\darking>at /delete

该操作将删除所有已计划的作业。

是否继续此操作? (Y/N) [N]:

4)at /delete /yes      删除所有任务,删除前无任何提示

 

 

Schtasks命令详解(计划任务DOS批处理)

查看( 15 ) / 评论( 1 ) / 评分( 0 / 0 )

Schtasks

安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。

若要查看该命令语法,请单击以下命令:

schtasks create

创建新的计划任务。

语法

schtasks/create/tnTaskName/trTaskRun/scschedule[/momodifier][/dday][/mmonth[,month...][/iIdleTime][/stStartTime][/sdStartDate][/edEndDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]/?

参数

/tnTaskName

指定任务的名称。

/trTaskRun

指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名。如果忽略该路径,SchTasks.exe 将假定文件在Systemroot\System32 目录下。

/scschedule

指定计划类型。有效值为 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE。

 

 

说明

 

MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY

 

指定计划的时间单位。

 

ONCE

 

任务在指定的日期和时间运行一次。

 

ONSTART

 

任务在每次系统启动的时候运行。可以指定启动的日期,或下一次系统启动的时候运行任务。

 

ONLOGON

 

每当用户(任意用户)登录的时候,任务就运行。可以指定日期,或在下次用户登录的时候运行任务。

 

ONIDLE

 

只要系统空闲了指定的时间,任务就运行。可以指定日期,或在下次系统空闲的时候运行任务。

/momodifier

指定任务在其计划类型内的运行频率。这个参数对于 MONTHLY 计划是必需的。对于 MINUTE、HOURLY、DAILY 或 WEEKLY 计划,这个参数有效,但也可选。默认值为 1。

 

计划类型

 

修饰符

 

说明

 

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

 

与/dday参数共同使用,并在特定的周和天运行任务。例如,在月份的第三个周三。

/ddirlist

指定周或月的一天。只与 WEEKLY 或 MONTHLY 计划共同使用时有效。

 

计划类型

 

日期值

 

WEEKLY

 

可选项。有效值是 MON ~ SUN 和 * (每一天)。MON 是默认值。

 

MONTHLY

 

在使用 FIRST、SECOND、THIRD、FOURTH 或 LAST 修饰符 (/mo) 时,需要 MON ~ SUN 中的某个值。1 ~ 31 是可选的,只在没有修饰符或修饰符为1 ~ 12类型时有效。默认值是 1 (月份的第一天)。

/mmonth[,month...]

指定一年中的一个月。有效值是 JAN ~ DEC 和 * (每个月)。/m参数只对于 MONTHLY 计划有效。在使用 LASTDAY 修饰符时,这个参数是必需的。否则,它是可选的,默认值是 * (每个月)。

/iInitialPageFileSize

指定任务启动之前计算机空闲多少分钟。键入一个1 ~ 999之间的整数。这个参数只对于 ONIDLE 计划有效,而且是必需的。

/stStartTime

以HH:MM:SS24 小时格式指定时间。默认值是命令完成时的当前本地时间。/st参数只对于 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 和 ONCE 计划有效。它只对于 ONCE 计划是必需的。

/sdStartDate

以MM/DD/YYYY格式指定任务启动的日期。默认值是当前日期。/sd参数对于所有的计划有效,但只对于 ONCE 计划是必需的。

/edEndDate

指定任务计划运行的最后日期。此参数是可选的。它对于 ONCE、ONSTART、ONLOGON 或 ONIDLE 计划无效。默认情况下,计划没有结束日期。

/sComputer

指定远程计算机的名称或 IP 地址(带有或者没有反斜杠)。默认值是本地计算机。

/u[domain\]user

使用特定用户帐户的权限运行命令。默认情况下,使用已登录到运行 SchTasks 的计算机上的用户的权限运行命令。

/ppassword

指定在/u参数中指定的用户帐户的密码。如果使用/u参数,则需要该参数。

/ru{[Domain\]User|"System"}

使用指定用户帐户的权限运行任务。默认情况下,使用用户登录到运行 SchTasks 的计算机上的权限运行任务。

 

 

说明

 

 

 

 

 

[domain\}User?

 

指定用户帐户。

 

"System"或""

 

指定操作系统使用的 NT Authority\System 帐户。

/pPassword

指定用户帐户的密码,该用户帐户在/u参数中指定。如果在指定用户帐户的时候忽略了这个参数,SchTasks.exe 会提示您输入密码而且不显示键入的文本。使用 NT Authority\System 帐户权限运行的任务不需要密码,SchTasks.exe 也不会提示索要密码。

/?

在命令提示符显示帮助。

注释

XOX

SchTasks.exe 不验证程序文件的位置或用户帐户密码。如果没有为用户帐户输入正确的文件位置或正确的密码,任务仍然可以创建,但不会运行。另外,如果帐户的密码更改或过期,而且没有更改存储在任务中的密码,那么任务也不会运行。

NT Authority\System 帐户没有交互式登录权限。用户看不到以系统权限运行的程序,不能与之交互。

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

只要创建了任务就可对其测试。使用run操作来测试任务,然后从 SchedLgU.txt 文件 (Systemroot\SchedLgU.txt ) 中查阅错误。

每个计划类型的语法和范例。

若要查看该命令语法,请单击以下命令:

schtasks create minute

语法

schtasks/create/tnTaskName/trTaskRun/sc minute[/mo{1 - 1439}][/stStartTime][/sdStartDate][/edEndDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

范例

计划任务每 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/tnTaskName/trTaskRun/sc hourly[/mo{1 - 365}][/stStartTime][/sdStartDate][/edEndDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

范例

计划命令在每小时过五分的时候运行。

下面的命令将计划 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/tnTaskName/trTaskRun/sc daily[/mo{1 - 365}][/stStartTime][/sdStartDate][/edEndDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

范例

计划任务每天运行一次

下面的范例计划 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/tnTaskName/trTaskRun/sc weekly[/d{MON - SUN| *}][/mo{1 - 52}][/stStartTime][/sdStartDate][/edEndDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

范例

计划任务每六周运行一次

下面的命××× 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/tnTaskName/trTaskRun/sc monthly[/mo{FIRST|SECOND|THIRD|FOURTH|LAST|LASTDAY][/d{MON-SUN|1-31}][/m{JAN-DEC[,JAN-DEC...] |*}][/stStartTime][/sdStartDate][/edEndDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

指定周的语法

schtasks/create/tnTaskName/trTaskRun/sc monthly/mo{FIRST|SECOND|THIRD|FOURTH|LAST}/d{MON-SUN}[/m{JAN-DEC[,JAN-DEC...] |*}][/stStartTime][/sdStartDate][/edEndDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

Lastday 语法

schtasks/create/tnTaskName/trTaskRun/sc monthly/mo LASTDAY/m{JAN-DEC[,JAN-DEC...] |*}[/stStartTime][/sdStartDate][/edEndDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

指定日期的语法

schtasks/create/tnTaskName/trTaskRun/sc monthly/d{1-31}[/m{JAN-DEC[,JAN-DEC...] | *}][/stStartTime][/sdStartDate][/edEndDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

范例

计划任务在每月的第一天运行

下面的命××× MyApp 程序在每月的第一天运行。因为默认修饰符是 none(即:没有修饰符),默认天是第一天,默认的月份是每个月,所以该命令不需要任何其它的参数。

schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc monthly

计划任务在每月的最后一天运行

下面的命××× MyApp 程序在每月的最后一天运行。它使用/mo参数指定在每月的最后一天运行程序,使用通配符 (*) 与/m参数表明在每月的最后一天运行程序。

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

计划任务每三个月运行一次

下面的命××× MyApp 程序每三个月运行一次。.它使用/mo参数来指定间隔。

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

计划任务在每月的第二个周日运行

下面的命××× MyApp 程序在每月的第二个周日运行。它使用/mo参数指定是每月的第二周,使用/d参数指定天。

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

计划任务在五月和六月的第 15 天运行。

下面的命××× MyApp 程序在五月 15 日和六月 15 日的 3:00 PM (15:00) 运行。它使用/d参数来指定日期,使用/m参数指定月份。它也使用/st参数来指定开始时间。

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

schtasks create once

语法

schtasks/create/tnTaskName/trTaskRun/sc once/stStartTime/sdStartDate[/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

范例

计划任务运行一次

下面的命××× 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/tnTaskName/trTaskRun/sc onstart[/sdStartDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

范例

计划任务在每次系统启动的时候运行

下面的命××× 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/tnTaskName/trTaskRun/sc onlogon[/sdStartDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

范例

计划任务在用户登录到远程计算机的时候运行

下面的命×××批处理文件在用户(任何用户)每次登录到远程计算机上的时候运行。它使用/s参数指定远程计算机。因为命令是远程的,所以命令中所有的路径,包括批处理文件的路径,都指定为远程计算机上的路径。

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

schtasks create onidle

语法

schtasks/create/tnTaskName/trTaskRun/sc onidle/iIdleTime[/sdStartDate][/scomputer[/u[domain\]user/ppassword]][/ru{[Domain\]User|"System"} [/rpPassword]]

范例

计划某项任务在计算机空闲的时候运行

下面的命××× 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

将文件存储为 MyApps.bat。

使用 SchTasks.exe 创建一个运行 MyApps.bat 的任务。

下面的命令创建了 Monitor 任务,每当有人登录它就运行。它使用/tn参数命名任务,使用/tr参数运行 MyApps.bat。它使用/sc参数来指明 OnLogon 计划类型,使用/ru参数指定 Administrator 帐户。

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

该命令的结果是,每当用户登录到计算机,任务就启动“事件查看器”和“系统监视器”。

更改计划任务

 

更改一个或多个下列任务属性。

任务运行的程序 (/tr)。

任务运行的用户帐户 (/ru)。

用户帐户的密码 (/rp)。

语法

schtasks/change/tnTaskName[/scomputer[/u[domain\]user/ppassword]][/trTaskRun][/ru[Domain\]User|"System"][/rpPassword]

参数

/tnTaskName

标识要更改的任务。输入任务名。

/sComputer

指定远程计算机的名称或 IP 地址(带有或者没有反斜杠)。默认值是本地计算机。

/u[domain\]user

使用特定用户帐户的权限运行命令。默认情况下,使用已登录到运行 SchTasks 的计算机上的用户的权限运行命令。

/ppassword

指定在/u参数中指定的用户帐户的密码。如果使用/u参数,则需要该参数。

/trTaskRun

更改任务运行的程序。输入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名。如果忽略了路径,SchTasks.exe 假定文件在Systemroot\System32 目录下指定的程序替换任务最初运行的程序。

/ru[Domain\]User|"System"

更改用于任务的用户帐户。

 

 

说明

 

[domain\]User

 

指定用户帐户

 

"System"or""

 

指定为操作系统所使用的 NT Authority\System 帐户。

在更改用户帐户的时候,必须也要更改用户密码。如果命令带有/ru参数,但没有/rp参数,SchTasks.exe 提示要求输入新的密码而且不显示键入的文本。

任务以不需要密码的 NT Authority\System 帐户权限运行,SchTasks.exe 不会提示输入密码。

/pPassword

更改用于任务的帐户密码。输入新的密码。

/?

在命令提示符显示帮助。

注释

XOX

/tn和/s参数标识该任务。/tr、/ru和/rp参数指定可以更改的任务属性。

使用change操作的命令必须至少更改一个任务属性。

NT Authority\System 帐户没有交互式登录权限。用户看不到以系统权限运行的程序,不能与其交互。

范例

更改任务运行的程序

下面的命令将 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/tnTaskName[/scomputer[/u[domain\]user/ppassword]]/?

参数

/tnTaskName

标识任务。该参数是必需的。

/sComputer

指定远程计算机的名称或 IP 地址(带有或者没有反斜杠)。默认值是本地计算机。

/u[domain\]user

使用特定用户帐户的权限运行命令。默认情况下,使用已登录到运行 SchTasks 的计算机上的用户的权限运行命令。

/ppassword

指定在/u参数中指定的用户帐户的密码。如果使用/u参数,则需要该参数。

/?

在命令提示符显示帮助。

注释

XOX

使用这个操作来测试任务。如果任务没有运行,请检查“任务计划程序服务”事务日志Systemroot\SchedLgU.txt 以获取错误。

运行任务不会影响任务计划,不会更改为任务计划好的下次运行时间。

要远程运行任务,必须在远程计算机上计划任务。在运行该任务时,它仅在远程计算机上运行。要验证任务正在远程计算机上运行,请使用“任务管理器”或“任务计划程序”事务日志Systemroot\SchedLgU.txt。

范例

在本地计算机上运行任务

下面的命令启动 "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/tnTaskName[/scomputer[/u[domain\]user/ppassword]]/?

参数

/tnTaskName

标识启动程序的任务。该参数是必需的。

/sComputer

指定远程计算机(带有或者没有反斜杠)的名称或 IP 地址。默认值是本地计算机。

/u[domain\]user

使用特定用户帐户的权限运行命令。默认情况下,使用已登录到运行 SchTasks 的计算机上的用户的权限运行命令。

/ppassword

指定在/u参数中指定的用户帐户的密码。如果使用/u参数,则需要该参数。

/?

显示帮助。

注释

XOX

SchTasks.exe 只终止由计划任务启动的程序实例。要终止其它程序,请使用 TaskKill。它是一个包含在 Windows XP Professional 中的工具。有关 TaskKill 的详细信息,请参阅 TaskKill。

范例

终止本地计算机上的任务

下面的命令终止由 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][/scomputer[/u[domain\]user/ppassword]][/?]

参数

/tn{TaskName| *}

标识要删除的任务。该参数是必需的。

 

 

说明

 

TaskName

 

删除已命名任务。

 

*

 

删除计算机上的所有计划任务。

/f

阻止确认消息。不警告就删除任务。

/sComputer

指定远程计算机的名称或 IP 地址(带有或者没有反斜杠)。默认值是本地计算机。

/u[domain\]user

使用特定用户帐户的权限运行命令。默认情况下,使用已登录到运行 SchTasks 的计算机上的用户的权限运行命令。

/ppassword

指定在/u参数中指定的用户帐户的密码。如果使用/u参数,则需要该参数。

/?

在命令提示符显示帮助。

注释

XOX

delete操作从计划表中删除任务。它不删除任务运行的程序或中断正在运行的程序。

delete *命令删除所有为计算机计划的任务,而不是仅删除由当前用户计划的任务。

范例

从远程计算机上的计划表中删除任务

下面的命令从远程计算机上的计划表中删除 "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][/scomputer[/u[domain\]user/ppassword]]

参数

[/query]

操作名称可选。键入不带任何参数的schtasks来执行查询。

/fo{TABLE|LIST|CSV}

指定输出格式。TABLE为默认值。

/nh

忽略表格显示中的列标题。此参数与TABLE和CSV输出格式共同使用时有效。

/v

将任务的高级属性添加到显示中。

使用/v的查询应该格式化成LIST或CSV。

/sComputer

指定远程计算机的名称或 IP 地址(带有或者没有反斜杠)。默认值是本地计算机。

/u[domain\]user

使用特定用户帐户的权限运行命令。默认情况下,使用已登录到运行 SchTasks 的计算机上的用户的权限运行命令。

/ppassword

指定在/u参数中指定的用户帐户的密码。如果使用/u参数,则需要该参数。

/?

在命令提示符显示帮助。

注释

XOX

query操作列出了为计算机计划的所有任务,而不只是由当前用户计划的任务。

范例

显示本地计算机上的计划任务。

下面的命令显示为本地计算机计划的所有任务。这些命令得到的结果相同,并可以交换使用。

schtasks

schtasks /query

作为响应,SchTasks.exe 以默认的简单表格格式显示任务,如下表所示:

TaskName Next Run Time Status========================= ======================== ==============Microsoft Outlook At logon timeSecurescrīpt 14:42:00 PM , 2/4/2001

显示计划任务的高级属性

下面的命令要求详细的显示本地计算机上的任务。它使用/v参数来请求详细显示,使用/fo LIST参数来将显示格式化成易于阅读的列表。这个命令可以用来验证创建的任务有预期的循环模式。

schtasks /query /fo LIST /v

作为响应,SchTasks.exe 显示所有任务的详细属性列表。下面的显示给出了一个计划在每月最后一个周五的 4:00 A.M. 运行的任务的列表:

HostName:RESKIT01TaskName:SecurescrīptNext Run Time:4:00:00 AM , 3/30/2001Status:Not yet runLast Run Time:NeverLast Result: 0Creator:user01Schedule:At 4:00 AM on the last Fri of every month, starting 3/24/2001 Task To Run:: C:\WINDOWS\system32\notepad.exe Start In:notepad.exe Comment:N/A Scheduled Task State:EnabledScheduled Type:MonthlyModifier:Last FRIDAYStart Time4:00:00 AMStart Date: 3/24/2001End Date:N/ADays:FRIDAYMonths:JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV、DECRun As User:RESKIT\user01Delete Task If Not Rescheduled:EnabledStop Task If Runs X Hours and X Mins: 72:0Repeat:Until Time:DisabledRepeat:Repeat:DisabledRepeat:Stop If Still Running: DisabledIdle: Start Time(For IDLE Scheduled Type): DisabledIdle: Only Start If Idle for X Minutes: DisabledIdle:If Not Idle Retry For X Minutes: DisabledIdle: Stop Task If Idle State End: DisabledPower Mgmt: No Start On Batteries: DisabledPower Mgmt:Stop On Battery Mode: Disabled

将为远程计算机计划的任务记入日志

下面的命令请求为远程计算机计划的任务列表,并将任务添加到本地计算机中以逗号分隔的日志文件中。此命令的格式可以用来收集和跟踪为多个计算机计划的任务。

命令使用/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 执行的操作类似于“控制面板”中“计划任务”中的操作。可以使用两种工具中的任一种来创建、删除、配置或显示计划任务。

键入不带任何参数的schtasks执行查询。

用户必须是命令起作用的计算机上的 Administrators 组的成员。

要确认计划运行或要找出计划不运行的原因,请查看“任务计划”服务事务日志Systemroot\SchedLgU.txt。该日志记录了由包括“计划任务”和 SchTasks.exe 在内的所有使用该服务的工具启动的尝试运行。

损坏任务文件的情况极少发生。已损坏文件不会运行。在已损坏任务上试图执行某项操作时,SchTasks.exe 显示以下错误消息:

错误:数据非法。

已损坏任务无法恢复。要恢复系统的计划任务特征,请使用 SchTasks.exe 或“计划任务”从系统中删除任务并重新计划。

SchTasks.exe 取代了包含在 Windows 早期版本中的工具 At.exe。

 

如何使用 AT 命令安排任务

察看本文应用于的产品

 

文章编号

 

:

 

313565

 

最后修改

 

:

 

2006年1月23日

 

修订

 

:

 

4.2

本页

概要

AT 命令概述

如何创建计划任务

示例

如何取消计划任务

示例

如何查看计划任务

示例

疑难解答

参考

概要

在 Windows 2000 中,您可以使用“控制面板”中的“任务计划”工具来安排任务。您也可以使用 at 命令手动安排任务。本文介绍如何使用 at 命令创建和取消计划任务。

回到顶端

AT 命令概述

您可以使用 at 命令来安排命令、脚本或程序在指定的日期和时间运行。您也可以使用此命令查看现有的计划任务。

要使用 at 命令,“任务计划程序”服务必须在运行中,而且您必须以本地管理员组成员的身份登录。使用 at 命令创建任务时,您必须对任务进行配置,使之在同一用户帐户下运行。

at 命令使用以下语法:

at \\computername time /interactive | /every:date,.../next:date,... command

at \\computername id /delete | /delete/yes

以下列表介绍可用于 at 命令的参数:

 

 

\\computername:此参数用于指定远程计算机。如果省略此参数,则任务将安排在本地计算机上运行。

 

 

time:此参数用于指定运行任务的时间。时间是按 24 小时制的 hour:minutes 形式指定的。例如,0:00 代表午夜,20:30 代表晚上 8:30。

 

 

/interactive:此参数用于允许任务运行时与处于登录状态的用户的桌面进行交互。

 

 

/every:date,...:此参数用于安排任务在指定的日期或在一周或一月内指定的一天或多天运行,例如每星期五或每月的第八天。将 date 指定为一周内的一天或多天(使用下面的缩写形式:M、T、W、Th、F、S、Su)或一月内的一天或多天(使用数字 1 至 31)。多个日期项之间一定要用逗号隔开。如果省略此参数,则任务将安排在当天执行。

 

 

/next:date,...:此参数用于安排任务在当天之后的某个时间运行(例如,下个星期一)。将 date 指定为一周内的一天或多天(使用下面的缩写形式:M、T、W、Th、F、S、Su)或一月内的一天或多天(使用数字 1 至 31)。多个日期项之间一定要用逗号隔开。如果省略此参数,则任务将安排在当天执行。

 

 

command:此参数用于指定要运行的 Windows 2000 命令、程序(.exe 或 .com 文件)或批处理程序(.bat 或 .cmd 文件)。如果该命令要求使用路径作为参数,请使用绝对路径名(以驱动器号开头的完整路径)。如果该命令位于远程计算机上,请使用统一命名约定 (UNC) 路径名(\\ServerName\ShareName)。如果该命令不是可执行 (.exe) 文件,必须在命令前面添加 cmd /c,例如,cmd /c copy C:\*.* C:\temp。

 

 

id:此参数用于指定分配给计划任务的标识号。

 

 

/delete:此参数用于取消计划任务。如果省略 id 参数,则将取消计算机上的所有计划任务。

 

 

/yes:此参数用于强制对取消计划任务时系统发出的所有查询回答“是”。如果省略此参数,系统将提示您确认对任务的删除。

注意:使用 at 命令时,计划任务是通过使用系统帐户凭据来运行的。

回到顶端

如何创建计划任务

 

1.

 

单击开始,指向程序,指向附件,然后单击命令提示符。

 

2.

 

在命令提示符下,键入下面一行,然后按 Enter 显示当前运行的服务的列表:

net start

如果“任务计划程序”未显示在列表中,则请键入下面一行,然后按 Enter:

net start "task scheduler"

 

3.

 

在命令提示符下,键入下面一行(使用与您的情况相符的参数),然后按 Enter:

at \\computername time /interactive | /every:date,.../next:date,... command

示例

 

 

要想在午夜将“Documents”文件夹中的所有文件复制到“MyDocs”文件夹中,请键入下面一行,然后按 Enter:

at 00:00 cmd /c copy C:\Documents\*.* C:\MyDocs

 

 

要想在每个工作日晚上 11:00 备份“Products”服务器,请创建包含备份命令的批处理文件(例如 Backup.bat),键入下面一行,然后按 Enter 安排该备份任务:

at \\products 23:00 /every:M,T,W,Th,F backup

 

 

要想安排 net share 命令上午 6:00 在“Sales”服务器上运行,并将列表重定向到“Corp”服务器上的共享文件夹“Reports”中的“Sales.txt”文件,请键入下面一行,然后按 Enter:

at \\sales 06:00 cmd /c "net share reports=d:\Documents\reports >> \\corp\reports\sales.txt"

回到顶端

如何取消计划任务

 

1.

 

单击开始,指向程序,指向附件,然后单击命令提示符。

 

2.

 

在命令提示符下,键入下面一行,然后按 Enter 显示当前运行的服务的列表:

net start

如果“任务计划程序”未显示在列表中,则请键入下面一行,然后按 Enter:

net start "task scheduler"

 

3.

 

在命令提示符下,键入下面一行(使用与您的情况相符的参数),然后按 Enter:

at \\computername id /delete | /delete/yes

示例

 

 

要取消在本地计算机上安排的所有任务,请键入 at /delete,然后按 Enter。

 

 

要取消名为“MyServer”的计算机上的 ID 为 8 的任务,请键入 at \\MyServer 8 /delete,然后按 Enter。

回到顶端

如何查看计划任务

要查看通过使用 at 命令创建的任务,请按照下列步骤操作:

 

1.

 

单击开始,指向程序,指向附件,然后单击命令提示符。

 

2.

 

在命令提示符下,键入下面一行,然后按 Enter 显示当前运行的服务的列表:

net start

如果“任务计划程序”未显示在列表中,则请键入下面一行,然后按 Enter:

net start "task scheduler"

 

3.

 

在命令提示符下,执行下列步骤之一:

 

 

要查看通过使用 at 命令安排的任务的列表,请键入下面一行,然后按 Enter:

at \\computername

- 或 -

 

 

要查看特定的计划任务,请键入下面一行,然后按 Enter:

at \\computername id

 

示例

 

 

要查看本地计算机上的所有计划任务,请键入 at,然后按 Enter。

 

 

要查看名为“Support”计算机上的所有计划任务,请键入 at \support,然后按 Enter。

 

 

要查看本地计算机上 ID 为 18 的任务,请键入 at 18,然后按 Enter。

回到顶端

疑难解答

 

 

当您键入 at \\computername 以查看计划任务列表时,使用 at 命令创建的某些(或全部)计划任务没有列出。

使用 at 命令创建任务后,如果在“计划任务”文件夹中修改了任务,则可能会发生此问题。当您使用 at 命令安排任务时,该任务显示在“控制面板”中的“计划任务”文件夹中。您可以查看或修改任务。但是,如果修改了任务,当您使用 at 命令时,将无法查看任务。

要解决此问题,请在“控制面板”中的“任务计划”文件夹中查看或修改该任务。有关此现象的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

220149 (http://support.microsoft.com/kb/220149/) 无法使用任务计划程序工具查看 AT 任务

 

 

当您使用 at 命令安排任务时,该任务在指定的时间或日期不运行。

如果满足下列任一条件,就会发生这种现象:

 

 

该命令的语法不正确。

安排任务后,请键入 at \\computername 以确认语法正确。如果命令行下显示的信息不正确,请取消该任务,然后重新创建它。

- 或 -

 

 

您安排的任务运行的命令不是 .exe 文件。

at 命令在运行命令之前不自动加载 cmd(命令解释器)。除非您运行的是 .exe 文件,否则您必须在命令的开头加载 Cmd.exe,例如 at cmd /c dir > c:\test.txt。

 

有关 AT 命令疑难解答的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

142040 (http://support.microsoft.com/kb/142040/) 使用 /k 开关的 AT 命令疑难解答

121562 (http://support.microsoft.com/kb/121562/) 使用 AT 命令启动的应用程序不是交互式应用程序

 

回到顶端

参考

有关在 Windows 2000 中如何使用 AT 命令的其他信息,请参阅 Windows 2000 帮助。为此,请依次单击开始、帮助、索引选项卡,然后键入 at command。

有关在 Windows 2000 中如何使用 AT 命令的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

103650 (http://support.microsoft.com/kb/103650/) 使用 AT 命令建立的网络连接持久