functions/New-ScheduledTaskFolder.ps1

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
function New-ScheduledTaskFolder {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [string]$FolderPath
    )

    $prevEAP = $ErrorActionPreference
    $ErrorActionPreference = "stop"

    $scheduleObject = New-Object -ComObject schedule.service
    $scheduleObject.connect()
    $rootFolder = $scheduleObject.GetFolder("\")

    Try {
        $null = $scheduleObject.GetFolder($FolderPath)
    }
    Catch { 
        $null = $rootFolder.CreateFolder($FolderPath) 
    }
    Finally { 
        $ErrorActionPreference = $prevEAP
    } 
}