Task Scheduler

Create schedule task

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Define task name
$TaskName = "ShowTimeTask"

# Define script path and name
$ScriptPath = "C:\temp\show_time.bat"

# Define taks path in Task Scheduler
$TaskPath = "\MyLab2"

# Define task start at 08:00 and 13:00 everyday
$AdditionalTriggerTime1 = "08:00"
$AdditionalTriggerTime2 = "13:00"

# Create a schedule at 08:00
$Action = New-ScheduledTaskAction -Execute $ScriptPath
$AdditionalTrigger1 = New-ScheduledTaskTrigger -Daily -At $AdditionalTriggerTime1

Register-ScheduledTask -Action $Action -Trigger $AdditionalTrigger1 -TaskName $TaskName -TaskPath $TaskPath

# Add another schedule at 13:00
$AdditionalTrigger2 = New-ScheduledTaskTrigger -Daily -At $AdditionalTriggerTime2
$Task = Get-ScheduledTask -TaskName $TaskName
$Task.Triggers += $AdditionalTrigger2
Set-ScheduledTask -TaskName $TaskName -Trigger $Task.Triggers -TaskPath $TaskPath

# Add the task will be enabled at system startup
$AdditionalTrigger3 = New-ScheduledTaskTrigger -AtStartup
$Task = Get-ScheduledTask -TaskName $TaskName
$Task.Triggers += $AdditionalTrigger3
Set-ScheduledTask -TaskName $TaskName -Trigger $Task.Triggers -TaskPath $TaskPath

# Run whether user is logged on or not
$principal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Set-ScheduledTask -TaskName $TaskName -Trigger $Task.Triggers -TaskPath $TaskPath -Principal $principal

Delete a schedule task

1
2
3
4
5
# Remove a schedule task
$TaskName = "ShowTimeTask"
$Task = Get-ScheduledTask -TaskName "ShowTimeTask"

Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false