diff --git a/lib/ansible/modules/extras/windows/win_iis_webapppool.ps1 b/lib/ansible/modules/extras/windows/win_iis_webapppool.ps1 index 858a151f2a..4172dc2f33 100644 --- a/lib/ansible/modules/extras/windows/win_iis_webapppool.ps1 +++ b/lib/ansible/modules/extras/windows/win_iis_webapppool.ps1 @@ -90,10 +90,18 @@ try { Stop-WebAppPool -Name $name -ErrorAction Stop $result.changed = $TRUE } - if ((($state -eq 'started') -and ($pool.State -eq 'Stopped')) -or ($state -eq 'restarted')) { + if ((($state -eq 'started') -and ($pool.State -eq 'Stopped'))) { Start-WebAppPool -Name $name -ErrorAction Stop $result.changed = $TRUE } + if ($state -eq 'restarted') { + switch ($pool.State) + { + 'Stopped' { Start-WebAppPool -Name $name -ErrorAction Stop } + default { Restart-WebAppPool -Name $name -ErrorAction Stop } + } + $result.changed = $TRUE + } } } catch { Fail-Json $result $_.Exception.Message @@ -112,4 +120,4 @@ if ($pool) $pool.Attributes | ForEach { $result.info.attributes.Add($_.Name, $_.Value)}; } -Exit-Json $result +Exit-Json $result \ No newline at end of file