@@ -438,9 +438,8 @@ function Get-TargetResource
438438
439439 default
440440 {
441- New-InvalidArgumentException `
442- - Message ($script :localizedData.TriggerTypeError -f $trigger.CimClass.CimClassName ) `
443- - ArgumentName CimClassName
441+ $returnScheduleType = ' '
442+ Write-Verbose - Message ($script :localizedData.TriggerTypeUnknown -f $trigger.CimClass.CimClassName )
444443 }
445444 }
446445
@@ -1128,10 +1127,7 @@ function Set-TargetResource
11281127 }
11291128
11301129 # Prepare the register arguments
1131- $registerArguments = @ {
1132- TaskName = $TaskName
1133- TaskPath = $TaskPath
1134- }
1130+ $registerArguments = @ {}
11351131
11361132 if ($PSBoundParameters.ContainsKey (' ExecuteAsCredential' ))
11371133 {
@@ -1179,18 +1175,29 @@ function Set-TargetResource
11791175 Principal = $principal
11801176 }
11811177
1178+ $tempScheduledTask = New-ScheduledTask @scheduledTaskArguments - ErrorAction Stop
1179+
11821180 if ($currentValues.Ensure -eq ' Present' )
11831181 {
1184- Write-Verbose - Message ($script :localizedData.RemovePreviousScheduledTaskMessage -f $TaskName , $TaskPath )
1185-
1186- $null = Unregister-ScheduledTask - TaskName $TaskName - TaskPath $TaskPath - Confirm:$false - ErrorAction Stop
1182+ Write-Verbose - Message ($script :localizedData.RetrieveScheduledTaskMessage -f $TaskName , $TaskPath )
1183+ $tempScheduledTask = New-ScheduledTask @scheduledTaskArguments - ErrorAction Stop
1184+
1185+ $scheduledTask = Get-ScheduledTask `
1186+ - TaskName $currentValues.TaskName `
1187+ - TaskPath $currentValues.TaskPath `
1188+ - ErrorAction Stop
1189+ $scheduledTask.Actions = $action
1190+ $scheduledTask.Triggers = $tempScheduledTask.Triggers
1191+ $scheduledTask.Settings = $setting
1192+ $scheduledTask.Principal = $principal
1193+ }
1194+ else
1195+ {
1196+ $scheduledTask = $tempScheduledTask
11871197 }
11881198
11891199 Write-Verbose - Message ($script :localizedData.CreateNewScheduledTaskMessage -f $TaskName , $TaskPath )
11901200
1191- # Create the scheduled task object
1192- $scheduledTask = New-ScheduledTask @scheduledTaskArguments - ErrorAction Stop
1193-
11941201 if ($repetition )
11951202 {
11961203 Write-Verbose - Message ($script :localizedData.SetRepetitionTriggerMessage -f $TaskName , $TaskPath )
@@ -1203,12 +1210,25 @@ function Set-TargetResource
12031210 $scheduledTask.Description = $Description
12041211 }
12051212
1206- # Register the scheduled task
1207- $registerArguments.Add (' InputObject' , $scheduledTask )
1213+ if ($currentValues.Ensure -eq ' Present' )
1214+ {
1215+ # Updating the scheduled task
12081216
1209- Write-Verbose - Message ($script :localizedData.RegisterScheduledTaskMessage -f $TaskName , $TaskPath )
1217+ Write-Verbose - Message ($script :localizedData.UpdateScheduledTaskMessage -f $TaskName , $TaskPath )
1218+ $null = Set-ScheduledTask - InputObject $scheduledTask @registerArguments
1219+ }
1220+ else
1221+ {
1222+ Write-Verbose - Message ($script :localizedData.CreateNewScheduledTaskMessage -f $TaskName , $TaskPath )
1223+
1224+ # Register the scheduled task
12101225
1211- $null = Register-ScheduledTask @registerArguments - ErrorAction Stop
1226+ $registerArguments.Add (' TaskName' , $TaskName )
1227+ $registerArguments.Add (' TaskPath' , $TaskPath )
1228+ $registerArguments.Add (' InputObject' , $scheduledTask )
1229+
1230+ $null = Register-ScheduledTask @registerArguments
1231+ }
12121232 }
12131233
12141234 if ($Ensure -eq ' Absent' )
0 commit comments