DSCResources/ScheduledTasks/ScheduledTasks.schema.psm1
configuration ScheduledTasks { param ( [Parameter()] [hashtable[]] $Tasks ) Import-DscResource -ModuleName PSDesiredStateConfiguration Import-DscResource -ModuleName ComputerManagementDsc foreach( $task in $Tasks ) { # Remove Case Sensitivity of ordered Dictionary or Hashtables $task = @{}+$task if( $null -ne $task.ExecuteAsCredential ) { $task.ExecuteAsCredential = [PSCredential]$task.ExecuteAsCredential #$task.Remove( 'ExecuteAsCredential' ) } $executionName = "task_$($task.TaskName -replace '[().:\s]', '')" (Get-DscSplattedResource -ResourceName ScheduledTask -ExecutionName $executionName -Properties $task -NoInvoke).Invoke($task) } } |