Skip to content

Commit 6fa176b

Browse files
committed
Set-TargetResource now removes the existing scheduled task that would otherwise be updated to overcome issues with a malformed task XML (due to unsupported value combinations)
1 parent 2ef8364 commit 6fa176b

1 file changed

Lines changed: 26 additions & 47 deletions

File tree

DSCResources/MSFT_xScheduledTask/MSFT_xScheduledTask.psm1

Lines changed: 26 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -953,59 +953,38 @@ function Set-TargetResource
953953

954954
$trigger.Repetition = $tempTrigger.Repetition
955955
}
956-
957-
if ($currentValues.Ensure -eq "Absent")
958-
{
959-
Write-Verbose -Message "Creating new scheduled task `"$TaskName`""
960-
961-
$scheduledTask = New-ScheduledTask -Action $action -Trigger $trigger -Settings $setting
962-
if (-not [string]::IsNullOrWhiteSpace($Description))
963-
{
964-
$scheduledTask.Description = $Description
965-
}
966-
967-
$registerArgs = @{
968-
TaskName = $TaskName
969-
TaskPath = $TaskPath
970-
InputObject = $scheduledTask
971-
}
972956

973-
if ($PSBoundParameters.ContainsKey("ExecuteAsCredential") -eq $true)
974-
{
975-
$registerArgs.Add("User", $ExecuteAsCredential.UserName)
976-
$registerArgs.Add("Password", $ExecuteAsCredential.GetNetworkCredential().Password)
977-
}
978-
else
979-
{
980-
$registerArgs.Add("User", "NT AUTHORITY\SYSTEM")
981-
}
982-
983-
Register-ScheduledTask @registerArgs
984-
}
985957
if ($currentValues.Ensure -eq "Present")
986958
{
987-
Write-Verbose -Message "Updating scheduled task `"$TaskName`""
988-
989-
$setArgs = @{
990-
TaskName = $TaskName
991-
TaskPath = $TaskPath
992-
Action = $action
993-
Trigger = $trigger
994-
Settings = $setting
995-
}
959+
Write-Verbose -Message "Removing previous scheduled task `"$TaskName`""
960+
Unregister-ScheduledTask -TaskName $TaskName -TaskPath $TaskPath
961+
}
962+
963+
Write-Verbose -Message "Creating new scheduled task `"$TaskName`""
996964

997-
if ($PSBoundParameters.ContainsKey("ExecuteAsCredential") -eq $true)
998-
{
999-
$setArgs.Add("User", $ExecuteAsCredential.UserName)
1000-
$setArgs.Add("Password", $ExecuteAsCredential.GetNetworkCredential().Password)
1001-
}
1002-
else
1003-
{
1004-
$setArgs.Add("User", "NT AUTHORITY\SYSTEM")
1005-
}
965+
$scheduledTask = New-ScheduledTask -Action $action -Trigger $trigger -Settings $setting
966+
if (-not [string]::IsNullOrWhiteSpace($Description))
967+
{
968+
$scheduledTask.Description = $Description
969+
}
970+
971+
$registerArgs = @{
972+
TaskName = $TaskName
973+
TaskPath = $TaskPath
974+
InputObject = $scheduledTask
975+
}
1006976

1007-
Set-ScheduledTask @setArgs
977+
if ($PSBoundParameters.ContainsKey("ExecuteAsCredential") -eq $true)
978+
{
979+
$registerArgs.Add("User", $ExecuteAsCredential.UserName)
980+
$registerArgs.Add("Password", $ExecuteAsCredential.GetNetworkCredential().Password)
981+
}
982+
else
983+
{
984+
$registerArgs.Add("User", "NT AUTHORITY\SYSTEM")
1008985
}
986+
987+
Register-ScheduledTask @registerArgs
1009988
}
1010989

1011990
if ($Ensure -eq "Absent")

0 commit comments

Comments
 (0)