45 lines
No EOL
1.5 KiB
PowerShell
45 lines
No EOL
1.5 KiB
PowerShell
<# ******************************************************
|
|
Functions: Creates a new scheduled task for week7/main.ps1 to run
|
|
Input: 1) Time for shceduled task to run
|
|
********************************************************* #>
|
|
function ChooseTimeToRun($Time){
|
|
$scheduledTask = Get-ScheduledTask | Where-Object { $_.TaskName -ilike "mytask" }
|
|
|
|
if($scheduledTask -ne $null){
|
|
Write-Host "The task already exists" | Out-String
|
|
DisableAutoRun
|
|
}
|
|
|
|
Write-Host "Creating new task" | Out-String
|
|
|
|
$action = New-ScheduledTaskAction -Execute "powershell.exe" `
|
|
-Argument "-File `"C:\Users\champuser\SYS320\week7\main.ps1`""
|
|
$trigger = New-ScheduledTaskTrigger -Daily -At $Time
|
|
$principal = New-ScheduledTaskPrincipal -UserId 'champuser' -RunLevel Highest
|
|
$settings = New-ScheduledTaskSettingsSet -RunOnlyIfNetworkAvailable -WakeToRun
|
|
$task = New-ScheduledTask -Action $action -Principal $principal -Trigger $trigger -Settings $settings
|
|
|
|
Register-ScheduledTask 'myTask' -InputObject $task
|
|
|
|
Get-ScheduledTask | Where-Object { $_.TaskName -ilike "myTask" }
|
|
|
|
}
|
|
|
|
<# ******************************************************
|
|
Functions: if "myTask is running", unregister it
|
|
********************************************************* #>
|
|
function DisableAutoRun(){
|
|
|
|
$scheduledTasks = Get-ScheduledTask | Where-Object { $_.TaskName -ilike "myTask" }
|
|
|
|
if($scheduledTasks -ne $null){
|
|
Write-Host "Unregistering the task." | Out-String
|
|
Unregister-ScheduledTask -TaskName 'myTask' -Confirm:$false
|
|
}
|
|
|
|
else{
|
|
Write-Host "The task is not registered" | Out-String
|
|
}
|
|
|
|
|
|
} |