[TOC]

at命令

描述:计划执行任务(Server专用)AT命令安排在特定日期和时间运行命令和程序,再进行$IPC空会话会用到,注意要使用AT命令计划服务必须已在运行中。
语法参数:

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

#Argument
id 指定给已计划命令的识别号
/delete 删除某个已计划的命令,如果省略 id,计算机上所有已计划的命令都会被删除
/yes 不需要进一步确认时,跟删除所有作业的命令一起使用
time 指定运行命令的时间
/interactive 允许作业在运行时,与当时登录的用户桌面进行交互
/every:date[星期,...] 指定在每周或每月的特定日期运行命令,如果省略日期,则默认为在每月的本日运行
/next:date[星期,...] 指定在下一个指定日期(如,下周四)运行命令,如果省略日期,则默认为在每月的本日运行
"command" 准备运行的 Windows NT 命令或批处理程序

实际案例:

#示例1.基础示例
at //查看所有的计划任务
at id号 //开启已注册的某个计划任务
at /delete //停止所有计划任务,用参数/yes则不需要确认就直接停止
at id号 /delete //停止某个已注册的计划任务
at \\ip time 程序名批处理 //在某时间运行对方某程序并重新启动计算机 shutdown /r 存到批处理文件

WeiyiGeek.

#示例2.指定时间,使用交互命令防止在后台运行
at <time> /interactive cmd
AT 19:00 /every:M,T,W,Th,F,S,Su net start ″remote access server″
AT 7:30 /every:M,T,W,Th,F,S,Su net stop ″remote access server″

#示例3.电脑自动关机
#方法一:使用at命令
(1)"开始"->"运行"->键入"cmd"打开WindowsXP的命令行窗口;
(2)在命令行窗口中输入如下的命令:
at 13:35 shutdown -s -t 15 #计算机将在13:35这个时间关机,在关机之前有15秒的等待时间。
# 命令解释:
# ①at命令的格式为:at 时间 需要运行的命令;
# ②13:35表示命令将要在13:35这个时间执行。时间的表示方法为:小时:分钟;
# ③"shutdown -s -t 15"是关闭计算的机的命令,其的-s表示关机,-t 15表示在关机之前有15秒的等待时间(它会以对话框的形式给出提示),如果改成-t 0则在关机之前不会给出任何提示便会立即关机。

补充知识
at命令与与schtasks的区别是什么?

  • 如果是XP系统用schtasks命令不能在前台处理,反而用at命令加上/interactive参数到可以在前台执行。

注意事项:

  • WIN7及以上不能用这个命令.如果要求WIN7执行交互式任务,则使用 schtasks.exe 实用程序(使用 “schtasks /?” 命令获取详细信息),

Waitfor命令

描述:Waitfor等待信号命令详解,发送或在系统上等待信号用于同步的计算机通过网络。(常常使用再后门持续维权)
基础语法和参数:

waitfor [/s <Computer>[/u [<Domain> \] <User>[/p [<Password>]]]] /si <SignalName> 
waitfor [/t <Timeout>] <SignalName>

WeiyiGeek.

使用案例:

#示例1.设置信号与发送信号(本地&远程)
WAITFOR SetupReady ##wait
WAITFOR /SI SetupReady ##send

WAITFOR CopyDone /T 100
WAITFOR /S system /U user /P password /SI CopyDone


#示例2.简单实例
Step1(等待接收信号):
waitfor espresso007
waitfor espresso007 /t 10 #或者等待10秒
waitfor espresso007 /T 10 && calc

Step2(发送接收信号):
waitfor /s 127.0.0.1 /si espresso007

补充说明:

  • && 与 || 逻辑符号,前者是前面命令成功执行则执行 ,而后则是前面的命令执行不成功则执行。
    WeiyiGeek.

注意事项:

  • 系统可以等待多个唯一的信号名称。信号名不能超过 225 个字符,而且不能含有 a-z、A-Z、0-9 和范围为 128-255 的 ASCII 字符之外的字符。
  • 如果您不使用/s,向域中的所有系统广播信号, 如果您使用/s,信号仅发送给指定的系统。
  • Waitfor 仅在 Windows XP 和运行 Windows Server 2003 操作系统的服务器上运行的Waitfor ,但它可以将信号发送到运行 Windows 操作系统的任何计算机。(发送信号的计算机位于同一域中的计算机才可接收信号)

Schtasks命令

描述:计划执行任务许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务(可在WIN7及以上)
参考:https://technet.microsoft.com/zh-cn/library/cc772785.aspx

语法参数:

SCHTASKS /parameter [arguments]

参数列表:
/Create 创建新计划任务
/Delete 删除计划任务
/Query 显示所有计划任务
/Change 更改计划任务属性
/Run 按需运行计划任务
/End 中止当前正在运行的计划任务
/ShowSid 显示与计划的任务名称相应的安全标识符
/? 显示此帮助消息


/Create
描述:允许管理员在本地或远程系统上创建计划任务

SCHTASKS /Create [/S system [/U username [/P [password]]]]
[/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
[/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
[/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]]
[/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F]

#参数列表:
/S system 指定要连接到的远程系统。如果省略这个系统参数,默认是本地系统。

/U username 指定应在其中执行 SchTasks.exe 的用户上

/P [password] 指定给定用户上下文的密码。如果省略则提示输入。

/RU username 指定任务在其下运行的“运行方式”用户帐户(用户上下文)。对于系统帐户,有效值是 """NT AUTHORITY\SYSTEM""SYSTEM"
对于 v2 任务,"NT AUTHORITY\LOCALSERVI"NT AUTHORITY\NETWORKSERVICE"以及常见的对这三个也都可用"

/RP [password] 指定“运行方式”用户的密码。要提示输入密码,值必须是 "*" 或无。系统帐户会忽密码。必须和 /RU 或 /XML 开关一起使用。

/SC schedule 指定计划频率有效计划任务: MINUTE、 HOURLY、DAILY、MONTHLY, ONCE, ONSTART, ONLOGON, ONIDL

/MO modifier 改进计划类型以允许更好地控制计划重复周期。有效值列于下面“修改者”部分中,针对于minute设置几分钟

/D days 指定该周内运行任务的日期。有效值:MON、TUE、WED、THU、FRI、SAT、SUN和对 MONTHLY 计划的 1 - 31(某月中的日期)。通配符“*”指定所有日期

/M months 指定一年内的某月。默认是该月的第一天。有效值: JAN、FEB、MAR、APR、MAY、JUN、JUL、 AUG、SEP、OCT、NOV 和 DEC。通配 “*” 指定所有的月

/I idletime 指定运行一个已计划的 ONIDLE 任务之前要等待的空闲时间,有效值范围: 1 到 999 分钟

/TN taskname 指定唯一识别这个计划任务的名称

/TR taskrun 指定在这个计划时间运行的程序的路径和文件名,例如: C:\windows\system32\calc.exe

/ST starttime 指定运行任务的开始时间,时间格式为 HH:mm (24 小时时间),例如 12:30 PM。如果未指定 /ST,则默认值为当前时间。/SC ONCE 必需有此选项

/RI interval 用分钟指定重复间隔,这不适用于计划类型: MINUTE、HOURLY、ONSTART, ONLOGON, ONIDLE, ONEVENT.有效范围: 1 - 599940 分钟如果已指定 /ET 或 /DU,则其默认值为10 分钟

/ET endtime 指定运行任务的结束时间,时间格式为 HH:mm (24 小时时间),例如,这不适用于计划类型: ONSTART、ONLOGON, ONIDLE, ONEVENT.

/DU duration 指定运行任务的持续时间,时间格式为 HH:mm。这不适用于 /ET 和计划类型: ONSTART, ONLOGON, ONIDLE, ONEVENT对于 /V1 任务,如果已指定 /RI,则持续时1 小时

/K 在结束时间或持续时间终止任务,这不适用于计划类型: ONSTART、ONLOGON, ONIDLE, ONEVENT.必须指定 /ET 或 /DU。

/SD startdate 指定运行任务的第一个日期,格式为 yyyy/mm/dd。默认值为当前日期。这不适用于计划类型: ONCE、ONSTART, ONLOGON, ONIDLE, ONEVENT.

/ED enddate 指定此任务运行的最后一天的日期。格式是 yyyy/mm/dd。这不适用于计划类型:ONCE、ONSTART、ONLOGON、ONIDLE。

/EC ChannelName 为 OnEvent 触发器指定事件通道。

/IT 仅有在 /RU 用户当前已登录且作业正在运行时才可以交互式运行任务,此任务只有在用户已登录的情况下才运行。

/NP 不储存任何密码。任务以给定用户的身份非交互的方式运行。只有本地资源可用。

/Z 标记在最终运行完任务后删除任务。

/XML xmlfile 从文件的指定任务 XML 中创建任务,可以组合使用 /RU 和 /RP 开关,或者在任主体时单独使用 /RP。

/V1 创建 Vista 以前的平台可以看见的任务。不兼容 /XML。

/F 如果指定的任务已经存在,则强制创建任务并抑制警告。

/RL level 为作业设置运行级别。有效值为LIMITED 和 HIGHEST。默认值为 LIMITED。

/DELAY delaytime 指定触发触发器后延迟任务运行的等待时间。时间格式为mmmm:ss。此选项仅对计划类型ONSTART, ONLOGON, ONEVENT.


/sc
描述:SC可以按照下面,按计划类型的 /MO 开关的有效值:

MINUTE:  1 到 1439 分钟。
HOURLY: 1 - 23 小时。
DAILY: 1 到 365 天。
WEEKLY: 1 到 52 周。

MONTHLY: 1 - 12,任务每 N 月运行一次。
MONTHLY: LASTDAY,任务在月份的最后一天运行。
MONTHLY: FIRST、SECOND、THIRD、FOURTH、LAST与 /d Day参数一起使用,并在特定的周和天运行任务。

ONCE: 无修改者。
ONSTART: 无修改者。
ONLOGON: 无修改者。
ONIDLE: 无修改者。

实际案例:

#每分钟在本地运行notepad,打开记事本
SCHTASKS /Create /SC minute /TN doc /TR notepad

#每隔五分钟运行 calc.exe
SCHTASKS /Create /SC MINUTE /MO 5 /TN accountant /TR calc.exe /ST 12:00 /ET 14:00

#在远程机器"ABC" 上创建计划任务 "doc",该机器每小时在"runasuser" 用户下运行 notepad.exe。
SCHTASKS/Create /S ABC /U user /P password /RU runasuser /RP runaspassword /SC HOURLY /TN doc /TR notepad

#建立指定时间的计划:
schtasks /create /TN test /TR C:\bat.bat /SC daily /ST 10:56
#成功: 成功创建计划任务 "test"

# 创建计划任务"gametime",在每月的第一个星期天运行“空当接龙”
SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN gametime /TR c:\windows\system32\freecell

#在远程机器"ABC" 创建计划任务 "report",每个星期运行notepad.exe
SCHTASKS /Create /S ABC /U user /P password /RU runasuser /RP runaspassword /SC WEEKLY /TN report /TR notepad.exe

#在远程机器"ABC" 创建计划任务 "logtracker",每隔五分钟从指定的开始时间到无结束时间,运行notepad.exe。
#交互式将提示输入 /RP密码
SCHTASKS /Create /S ABC /U domain\user /P password /SC MINUTE /MO 5 /TNlogtracker /TR c:\windows\system32\notepad.exe /ST 18:30 /RU runasuser /RP

#创建计划任务"gaming",每天从 12:00 点开始到14:00点自动结束,运行 freecell.exe。
SCHTASKS /Create /SC HOURLY /TN gaming /TR c:\freecell /ST 12:00 /ET 14:00 /K

WeiyiGeek.


/Query
描述:查询计划任务

SCHTASKS /Query [/S system [/U username [/P [password]]]] [/FO format | /XML [xml_type]] [/NH] [/V] [/TN taskname] [/?]

#参数说明
/FO format 为输出指定格式。有效值: TABLE、LIST、CSV
/XML [xml_type] 以 XML 格式显示任务定义
/NH 指定在输出中不显示列标题。只对 TABLE 格式有效
/V 显示详细任务输出
/TN taskname 指定要检索其信息的任务名称,否则会检索所有任务名称的信息。

如果 xml_type 为 ONE,则输出为一个有效 XML 文件,如果 xml_type 不存在,则输出将为,所有 XML 任务定义的串联

基础示例:

#基础示例
SCHTASKS /Query /FO LIST /V /S system /U user /P password
SCHTASKS /query /FO LIST /v
SCHTASKS /Query /FO TABLE /NH /V

#Bat来输出任务(防止乱码输出))
@echo off
chcp 437
schtasks /query /fo LIST /v >> test.txt
quit

WeiyiGeek.

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

#使用 /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 文件中。


/delete
描述:删除用户的任务计划注意需要指定计划任务名称或者TASKS编号;

  • 计划任务名称还可以在:C:\Windows\System32\Tasks
    WeiyiGeek.
SCHTASKS /delete /TN doc
SCHTASKS /delete /TN \{9D2AB7EB-215E-4806-8B4A-7F231CE61D78}

WeiyiGeek.


/End
描述:停止正在运行的计划任务

schtasks /End /TN test


ShowSid
描述:向任务的专用用户显示 SID

SCHTASKS /ShowSid /TN "\Microsoft\Windows\RAC\RACTask"  #指定任务名称

WeiyiGeek.

注意事项:

  • 在GBK活动的CMD编码会无法加载只有chcp 437 (United states),才能正常加载否则显示无法加载列资源(IMPORTANT)

补充知识
1.schtasks命令对at命令做了改进,它可以让关机命令在每天同一时间执行。

  • (1)”开始”->”运行”->键入”cmd”打开WindowsXP的命令行窗口;
  • (2)在命令行窗口中输入schtasks可以查看计算机当前有哪些计划执行的任务;
  • (3)在命令行窗口中输入如下命令:验证ok

    schtasks /create /tn shutXP11 /sc daily /st 23:00:00 /tr "shutdown -s -t 0"  #计算机在每天的23:00:00执行关机的命令,计划任务的名称为shutXP11。 
    #命令解释:
    ①schtasks命令的格式:schtasks /create /tn 任务名 /sc 任务类别 /st 命令开始时间 /tr 要运行的命令;
    ②/create表示要创建一个计划执行的任务;
    ③/tn shutXP11 表示任务的名称为"shutXP11",名称可以随意取;
    ④/st 23:00:00 表示命令将在23:00:00执行;时间的表示格式为:小时:分钟:秒。
    ⑤/sc daily 表示命令在每天的23:00:00都会执行一次;daily也可以换成minute,hourly等,分别表示每分钟执行一次,每小时执行一次;
    ⑥/tr "shutdown -s -t 0"表示所执行的命令为"shutdown -s -t 0",即关机命令。
  • (4)如果您计划的任务不需要了,可以执行如下的删除命令:

    schtasks /delete /tn shutXP11
    其意思为:删除计划任务”shutXP11”,最后,需要的注意的一点是,要使任务可以成功执行,计算机的”Task Scheduler”服务必需已经启动。

启动的方法为:
“开始”->”运行”->”输入services.msc”->打开”服务”窗口,在窗中找到”Task Scheduler”,右键点击”属性”,将启动类型设置为”自动”,重启计算机即可。