Skip to content

Instantly share code, notes, and snippets.

@TianyuanC
Created June 25, 2015 22:14
Show Gist options
  • Save TianyuanC/d1596c64e5be46fa5a8f to your computer and use it in GitHub Desktop.
Save TianyuanC/d1596c64e5be46fa5a8f to your computer and use it in GitHub Desktop.
Create scheduled task and overwrite if already exists
function Delete-ScheduleTask([string] $taskName)
{
Write-Host "Delete schedule task for $taskName"
Unregister-ScheduledTask -TaskName $taskName -Confirm:$false
}
function Create-ScheduleTask([string] $taskName, [string] $startTime, [Int] $interval)
{
Write-Host "Create schedule task for $taskName"
$action = New-ScheduledTaskAction -Execute "C:\OctopusApps\app.exe" -Argument $taskName
$trigger = New-ScheduledTaskTrigger -Once -At $startTime -RepetitionDuration (New-TimeSpan -Days 3650) -RepetitionInterval (New-TimeSpan -Minutes $interval)
$settings = New-ScheduledTaskSettingsSet
$inputObject = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask -TaskName $taskName -InputObject $inputObject -User $VMUserName -Password $VMPassword
}
function Overwrite-ScheduleTask([string] $taskName, [string] $startTime, [Int] $interval)
{
$exists = Get-ScheduledTask | Where-Object {$_.TaskName -like $taskName}
if($exists)
{
Delete-ScheduleTask $taskName
}
Create-ScheduleTask $taskName $startTime $interval
}
Overwrite-ScheduleTask "task1" "0:00" 5
Overwrite-ScheduleTask "task2" "0:02" 5
Overwrite-ScheduleTask "task3" "0:04" 5
Overwrite-ScheduleTask "task4" "0:00" 5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment