summaryrefslogtreecommitdiff
path: root/windows/win_scheduled_task.ps1
diff options
context:
space:
mode:
authorMichael Perzel <michael.perzel@surescripts.com>2015-07-07 11:55:46 -0500
committerMichael Perzel <michael.perzel@surescripts.com>2015-07-07 11:55:46 -0500
commit3542e7d42dcb7c598ed5f1a515ac6a1718f27b2f (patch)
tree68edcf34044b9c2cf0b46120d64e420502863979 /windows/win_scheduled_task.ps1
parentc12722f2aec740a8c78ee9688214df7aa1f54959 (diff)
downloadansible-modules-extras-3542e7d42dcb7c598ed5f1a515ac6a1718f27b2f.tar.gz
Update method to determine if task exists, add days of week parameter to weekly triggers
Diffstat (limited to 'windows/win_scheduled_task.ps1')
-rw-r--r--windows/win_scheduled_task.ps143
1 files changed, 30 insertions, 13 deletions
diff --git a/windows/win_scheduled_task.ps1 b/windows/win_scheduled_task.ps1
index 07b1c3ad..d5102572 100644
--- a/windows/win_scheduled_task.ps1
+++ b/windows/win_scheduled_task.ps1
@@ -65,6 +65,9 @@ elseif ($state -eq "present")
{
Fail-Json $result "missing required argument: execute"
}
+if( $state -ne "present" -and $state -ne "absent") {
+ Fail-Json $result "state must be present or absent"
+}
if ($params.path)
{
$path = "\{0}\" -f $params.path
@@ -89,26 +92,40 @@ elseif($state -eq "present")
{
Fail-Json $result "missing required argument: time"
}
-
-$exists = $true
-#hack to determine if task exists
-try {
- $task = Get-ScheduledTask -TaskName $name -TaskPath $path
+if ($params.daysOfWeek)
+{
+ $daysOfWeek = $params.daysOfWeek
}
-catch {
- $exists = $false | ConvertTo-Bool
+elseif ($frequency -eq "weekly")
+{
+ Fail-Json $result "missing required argument: daysOfWeek"
}
-Set-Attr $result "exists" "$exists"
+try {
+ $task = Get-ScheduledTask -TaskPath "$path" | Where-Object {$_.TaskName -eq "$name"}
+ $measure = $task | measure
+ if ($measure.count -eq 1 ) {
+ $exists = $true
+ }
+ elseif ($measure.count -eq 0 -and $state -eq "absent" ){
+ Set-Attr $result "msg" "Task does not exist"
+ Exit-Json $result
+ }
+ elseif ($measure.count -eq 0){
+ $exists = $false
+ }
+ else {
+ # This should never occur
+ Fail-Json $result "$measure.count scheduled tasks found"
+ }
+ Set-Attr $result "exists" "$exists"
-try
-{
if ($frequency){
if ($frequency -eq "daily") {
$trigger = New-ScheduledTaskTrigger -Daily -At $time
}
- elseif (frequency -eq "weekly"){
- $trigger = New-ScheduledTaskTrigger -Weekly -At $time
+ elseif ($frequency -eq "weekly"){
+ $trigger = New-ScheduledTaskTrigger -Weekly -At $time -DaysOfWeek $daysOfWeek
}
else {
Fail-Json $result "frequency must be daily or weekly"
@@ -164,4 +181,4 @@ try
catch
{
Fail-Json $result $_.Exception.Message
-} \ No newline at end of file
+}