定时计划任务方案比较以及通过脚本创建计划任务(SchTasks命令)

定时计划任务方案比较以及通过脚本创建计划任务(SchTasks命令)

对于定时任务的处理方法一般有两种 自定义windows service和设置计划任务
两种方案比较:
自定义Windows Service:
优点:灵活度比较高,定时任务可以保存在数据库中也可以在config文件中。可以另外写一个可视的配置小程序来帮助用户(管理员)来管理。运行结果也方便跟踪。发布的时候配置一次即可。
缺点:需要额外的编码来读取配置的定时任务并运行相应的程序,同时需要记录运行结果

利用windows计划任务
优点:节省开发时间
缺点:对系统依赖程度较高;配置稍微麻烦一些,特别是需要配置多种计划任务的情况,对用户(系统管理员)来说比较麻烦;计划任务是否按时启动需要考启动程序的log来查看,windows的计划任务本身的log只有4k,而且是循环使用,用来判断计划任务是否启动太可靠。

SchTasks使用说明:
示例:
删除:SCHTASKS /DELETE /TN ScheduleTaskTest /F
创建:SCHTASKS /Create /RU SYSTEM /TN ScheduleTaskTest /SC MONTHLY /D 1 /ST 00:00:00 /TR "C:/Solution/TestApp/Bin/Debug/TestApp.exe /Method Test"

参数说明:
/sc Schedule Type
指定计划类型。有效值为 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE。
MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 指定计划的时间单位。
ONCE 任务在指定的日期和时间运行一次。
ONSTART 任务在每次系统启动的时候运行。可以指定启动的日期,或下一次系统启动的时候运行任务。
ONLOGON 每当用户(任意用户)登录的时候,任务就运行。可以指定日期,或在下次用户登录的时候运行任务。
ONIDLE 只要系统空闲了指定的时间,任务就运行。可以指定日期,或在下次系统空闲的时候运行任务。

/tn Task Name
指定任务的名称。系统上的每项任务都必须具有一个唯一的名称。名称必须符合文件名称规则

/tr Task to Run
指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名。路径名称得超过 262 个字符。如果忽略该路径,SchTasks 将假定文件在 Systemroot/System32 目录下。

/ru {[Domain/]User | System}
使用指定用户帐户的权限运行任务。默认情况下,使用本地计算机当前用户的权限,或者使用 /u 参数指定的用户的权限(如果包含的话)运行任务。在本地或远程计算机上计划任务时,/ru 参数才有效。
可设置值说明:
[Domain/]User 指定候选用户帐户。
System 指定 Local System 帐户,这是一种操作系统和系统服务使用的具有高度特权的帐户。

/sd StartDate
可选, 指定任务计划开始的日期。默认值为本地计算机上的当前日期。

其实windows还提供了另外一个指令创建计划任务AT,过AT指令会自动给计划任务起名字支持指定名称,用来做脚本就太显示,这里就多说这条指令了。

你可能感兴趣的:(windows,脚本,service,user,System,任务)