How To Schedule Tasks From Command Line In Windows With Schtasks?
Recurring tasks are generally schedules with scheduled task manager. Scheduled task manager have GUI for management but creating a task in 20 different servers is very hard and trivial job. Windows operating systems provide tool called
schtasks which is used to create, modify, delete scheduled tasks.
Help about scheduling tasks command
schtasks can be printed with
$ schtasks /?
While using command we will use following syntax.
SCHTASKS /parameter [arguments]
Create A Scheduled Task/Job
In order to create a scheduled task we need to provide following parameters at least.
/TNspecifies task name which will identify task from other tasks
/TRspecifies the tasks executable file or command.
In this example we will create a task named
defrag which will run
c:\windows\system32\defrag.exe at weekly periods.
$ Schtasks /create /SC weekly /TN defrag /TR c:\windows\system32\defrag.exe
While creating scheduled jobs we can providing following attributes.
- /S system Specifies the remote system to connect to.
- /U username Specifies the user context under which schtasks.exe
- /P [password] Specifies the password for the given user context.
Prompts for input if omitted.
- /TN taskname Specifies which scheduled task to change.
- /RU username Changes the user name (user context) under which the
scheduled task has to run. For the system account,
valid values are “”, “NT AUTHORITY\SYSTEM” or “SYSTEM”.
For v2 tasks, “NT AUTHORITY\LOCALSERVICE” and
“NT AUTHORITY\NETWORKSERVICE” are also available as well
as the well known SIDs for all three.
/RP password Specifies a new password for the existing user
context or the password for a new user account.
This password is ignored for the system account.
- /TR taskrun Specifies the new program that the
scheduled task will run.
- /ST starttime Specifies the start time to run the task. The time
format is HH:mm (24 hour time) for example, 14:30
for 2:30 PM.
- /RI interval Specifies the repetition interval in
minutes. Valid range: 1 – 599940 minutes.
- /ET endtime Specifies the end time to run the task. The time
format is HH:mm (24 hour time) for example, 14:50
for 2:50 PM.
- /DU duration Specifies the duration to run the task. The time
format is HH:mm. This is not applicable with /ET.
- /K Terminates the task at the endtime or duration time.
- /SD startdate Specifies the first date on which the task runs.
The format is mm/dd/yyyy.
- /ED enddate Specifies the last date when the task should run.
The format is mm/dd/yyyy.
- /IT Enables the task to run interactively only if the
/RU user is currently logged on at the time the job
runs. This task runs only if the user is logged in.
- /RL level Sets the Run Level for the job. Valid values are
LIMITED and HIGHEST. The default is to not change it.
- /ENABLE Enables the scheduled task.
- /DISABLE Disables the scheduled task.
- /Z Marks the task for deletion after its final run.
- /DELAY delaytime Specifies the wait time to delay the running of the
task after the trigger is fired. The time format is
mmmm:ss. This option is only valid for schedule types
ONSTART, ONLOGON, ONEVENT.
Create A Scheduled Tasks/Job With More Options
In previous example we have used to very little options. We can provide more needed attributes. In this example we will provide
/RUfor the username
/D‘ for date
/TNfor task name
/TRfor executable file or command
$ Schtasks /create /RU jack /RP 123456 /SC weekly /D SAT /TN defrag /TR c:\windows\system32\defrag.exe /ST 10:00:00
List All Ready Created Scheduled Tasks/Jobs
In a IT environment there will be a lot of existing scheduled jobs. We can list these existing tasks just issuing
schtasks like below.
For each task following information is printed.
Foldershows namespace based location.
Tasknameshows given name for the task to identify
Next Run Timeshows when will the task will run for the next time
Statusshows whether the task is ready to run or running or there is a problem.
Delete Scheduled Task/Job
All ready scheduled jobs can be deleted if we do not need it. We can delete task with
/delete option and specifying the task name. In this example we will delete task named
degfrag which is specified with
$ schtasks /delete /TN defrag
While deleting we need to confirm the delete operation. If the task is deleted properly we will get a
Delete All Scheduled Task/Jobs
If we do not need all of the scheduled jobs and we want to delete them in a single shot we can use asterisks
* sign to specify task name.
$ schtasks /delete /TN *
Disable Scheduled Task/Job
Some time we may need to disable scheduledjob for a short period. We can use
/change option with
/disable option in order to disable a scheduled job. In this example we will disable the job named
$ schtasks /change /tn defrag /disable
Enable Scheduled Task/Job
We can enable scheduled job similar to disable operation where we use
$ schtasks /change /tn defrag /enable
Modify Scheduled Task/Job
A scheduled task can be changed with
/change option. We can specify the attribute we want to change. In this example we will change the username and password of the user which will run task with
$ schtasks /change /tn defrag /ru jack /rp 123456