From 844e90093b8b820a6fd2f71dc0cfca1de56c2010 Mon Sep 17 00:00:00 2001 From: Chris Hoffman Date: Sat, 21 Jun 2014 21:59:53 -0400 Subject: [PATCH] Better propagation of cmdlet errors --- library/windows/win_service.ps1 | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/library/windows/win_service.ps1 b/library/windows/win_service.ps1 index 535707d329..bed140e7ff 100644 --- a/library/windows/win_service.ps1 +++ b/library/windows/win_service.ps1 @@ -46,7 +46,7 @@ If ($params.start_mode) { $svcName = $params.name $svc = Get-Service -Name $svcName -ErrorAction SilentlyContinue If (-not $svc) { - Fail-Json $result "Service not installed" + Fail-Json $result "Service '$svcName' not installed" } If ($startMode) { @@ -60,15 +60,30 @@ If ($startMode) { If ($state) { If ($state -eq "started" -and $svc.Status -ne "Running") { - Start-Service -Name $svcName + try { + Start-Service -Name $svcName -ErrorAction Stop + } + catch { + Fail-Json $result $_.Exception.Message + } Set-Attr $result "changed" $true; } ElseIf ($state -eq "stopped" -and $svcName -ne "Stopped") { - Stop-Service -Name $svcName + try { + Stop-Service -Name $svcName -ErrorAction Stop + } + catch { + Fail-Json $result $_.Exception.Message + } Set-Attr $result "changed" $true; } ElseIf ($state -eq "restarted") { - Restart-Service -Name $svcName + try { + Restart-Service -Name $svcName -ErrorAction Stop + } + catch { + Fail-Json $result $_.Exception.Message + } Set-Attr $result "changed" $true; } }