Skip to content
This repository was archived by the owner on May 15, 2018. It is now read-only.

Commit d6011e3

Browse files
committed
Merge pull request #2 from craig-martin/master
Fix for ScheduledTask - existing Job, and using Credentials
2 parents bc32f66 + 7110294 commit d6011e3

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

DSCResources/StackExchange_ScheduledTask/StackExchange_ScheduledTask.psm1

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,10 @@ function Set-TargetResource
170170
$Ensure = 'Present'
171171
)
172172

173+
$Session = new-pssession -computername $env:computername -Credential $Credential
173174

174-
175+
$Job = Invoke-Command -Session $Session { Get-ScheduledJob -Name $Using:Name -ErrorAction SilentlyContinue }
176+
175177
if ($Ensure -like 'Present')
176178
{
177179

@@ -208,8 +210,21 @@ function Set-TargetResource
208210
$JobTriggerParameters.DaysOfWeek = $DaysOfWeek
209211
}
210212
}
211-
$JobParameters.Trigger = New-JobTrigger @JobTriggerParameters
212-
Register-ScheduledJob @JobParameters
213+
214+
### If the job exists, then remove it before adding again
215+
if ($Job)
216+
{
217+
#Jobber Clobber
218+
Invoke-Command -Session $Session {Unregister-ScheduledJob -Name $Using:Name}
219+
}
220+
221+
Invoke-Command -Session $Session {
222+
#TODO: this seems like a hacky way to do splatting, but I don't know a better way to do it
223+
$jobParameters = $using:JobParameters
224+
$jobTriggerParameters = $using:JobTriggerParameters
225+
$jobParameters.Trigger = New-JobTrigger @jobTriggerParameters
226+
Register-ScheduledJob @jobParameters -ErrorAction SilentlyContinue
227+
}
213228
}
214229
else
215230
{

0 commit comments

Comments
 (0)