diff --git a/lib/core/framework/Install-IcingaFrameworkComponent.psm1 b/lib/core/framework/Install-IcingaFrameworkComponent.psm1 index 680c9fb..200ca9e 100644 --- a/lib/core/framework/Install-IcingaFrameworkComponent.psm1 +++ b/lib/core/framework/Install-IcingaFrameworkComponent.psm1 @@ -112,7 +112,7 @@ function Install-IcingaFrameworkComponent() if ([string]::IsNullOrEmpty((Get-IcingaJEAContext)) -eq $FALSE) { Write-IcingaConsoleNotice 'Updating Icinga JEA profile'; - Invoke-IcingaCommand -ScriptBlock { Install-IcingaJEAProfile; } | Out-Null; + & powershell.exe -Command { Use-Icinga; Install-IcingaJEAProfile; } | Out-Null; } # Unload the module if it was loaded before diff --git a/lib/core/framework/Install-IcingaFrameworkUpdate.psm1 b/lib/core/framework/Install-IcingaFrameworkUpdate.psm1 index 19a6aba..83eed6e 100644 --- a/lib/core/framework/Install-IcingaFrameworkUpdate.psm1 +++ b/lib/core/framework/Install-IcingaFrameworkUpdate.psm1 @@ -109,7 +109,7 @@ function Install-IcingaFrameworkUpdate() if ([string]::IsNullOrEmpty((Get-IcingaJEAContext)) -eq $FALSE) { Remove-IcingaFrameworkDependencyFile; Write-IcingaConsoleNotice 'Updating Icinga JEA profile'; - Invoke-IcingaCommand -ScriptBlock { Install-IcingaJEAProfile; } | Out-Null; + & powershell.exe -Command { Use-Icinga; Install-IcingaJEAProfile; } | Out-Null; } Write-IcingaConsoleNotice 'Framework update has been completed. Please start a new PowerShell instance now to complete the update'; diff --git a/lib/core/framework/Restart-IcingaService.psm1 b/lib/core/framework/Restart-IcingaService.psm1 index 2fc6d7b..c414a49 100644 --- a/lib/core/framework/Restart-IcingaService.psm1 +++ b/lib/core/framework/Restart-IcingaService.psm1 @@ -27,15 +27,16 @@ function Restart-IcingaService() if (Get-Service "$Service" -ErrorAction SilentlyContinue) { Write-IcingaConsoleNotice ([string]::Format('Restarting service "{0}"', $Service)); - Invoke-IcingaCommand -ArgumentList $Service -ScriptBlock { + & powershell.exe -Command { + $Service = $args[0]; try { - Restart-Service "$($IcingaShellArgs[0])" -ErrorAction Stop; + Restart-Service "$Service" -ErrorAction Stop; Start-Sleep -Seconds 2; Optimize-IcingaForWindowsMemory; } catch { - Write-IcingaConsoleError -Message 'Failed to restart service "{0}". Error: {1}' -Objects $IcingaShellArgs[0], $_.Exception.Message; + Write-IcingaConsoleError -Message 'Failed to restart service "{0}". Error: {1}' -Objects $Service, $_.Exception.Message; } - } | Out-Null; + } -Args $Service; } else { Write-IcingaConsoleWarning -Message 'The service "{0}" is not installed' -Objects $Service; } diff --git a/lib/core/framework/Start-IcingaService.psm1 b/lib/core/framework/Start-IcingaService.psm1 index afcb928..cd11a2f 100644 --- a/lib/core/framework/Start-IcingaService.psm1 +++ b/lib/core/framework/Start-IcingaService.psm1 @@ -27,15 +27,16 @@ function Start-IcingaService() if (Get-Service $Service -ErrorAction SilentlyContinue) { Write-IcingaConsoleNotice -Message 'Starting service "{0}"' -Objects $Service; - Invoke-IcingaCommand -ArgumentList $Service -ScriptBlock { + & powershell.exe -Command { + $Service = $args[0]; try { - Start-Service "$($IcingaShellArgs[0])" -ErrorAction Stop; + Start-Service "$Service" -ErrorAction Stop; Start-Sleep -Seconds 2; Optimize-IcingaForWindowsMemory; } catch { - Write-IcingaConsoleError -Message 'Failed to start service "{0}". Error: {1}' -Objects $IcingaShellArgs[0], $_.Exception.Message; + Write-IcingaConsoleError -Message 'Failed to start service "{0}". Error: {1}' -Objects $Service, $_.Exception.Message; } - } | Out-Null; + } -Args $Service; } else { Write-IcingaConsoleWarning -Message 'The service "{0}" is not installed' -Objects $Service; } diff --git a/lib/core/framework/Stop-IcingaService.psm1 b/lib/core/framework/Stop-IcingaService.psm1 index 293d2cb..8da25db 100644 --- a/lib/core/framework/Stop-IcingaService.psm1 +++ b/lib/core/framework/Stop-IcingaService.psm1 @@ -24,18 +24,19 @@ function Stop-IcingaService() $Service ); - if (Get-Service $Service -ErrorAction SilentlyContinue) { + if (Get-Service "$Service" -ErrorAction SilentlyContinue) { Write-IcingaConsoleNotice -Message 'Stopping service "{0}"' -Objects $Service; - Invoke-IcingaCommand -ArgumentList $Service -ScriptBlock { + & powershell.exe -Command { + $Service = $args[0]; try { - Stop-Service "$($IcingaShellArgs[0])" -ErrorAction Stop; + Stop-Service "$Service" -ErrorAction Stop; Start-Sleep -Seconds 2; Optimize-IcingaForWindowsMemory; } catch { - Write-IcingaConsoleError -Message 'Failed to stop service "{0}". Error: {1}' -Objects $IcingaShellArgs[0], $_.Exception.Message; + Write-IcingaConsoleError -Message 'Failed to stop service "{0}". Error: {1}' -Objects $Service, $_.Exception.Message; } - } | Out-Null; + } -Args $Service; } else { Write-IcingaConsoleWarning -Message 'The service "{0}" is not installed' -Objects $Service; } diff --git a/lib/core/icingaagent/installer/Install-IcingaAgent.psm1 b/lib/core/icingaagent/installer/Install-IcingaAgent.psm1 index 4e8ba03..5cf3483 100644 --- a/lib/core/icingaagent/installer/Install-IcingaAgent.psm1 +++ b/lib/core/icingaagent/installer/Install-IcingaAgent.psm1 @@ -73,17 +73,16 @@ function Install-IcingaAgent() } } - $InstallProcess = Invoke-IcingaCommand -ArgumentList $IcingaInstaller, $InstallTarget -ScriptBlock { - $IcingaInstaller = $IcingaShellArgs[0]; - $InstallTarget = $IcingaShellArgs[1]; - + $InstallProcess = & powershell.exe -Command { + $IcingaInstaller = $args[0]; + $InstallTarget = $args[1]; $InstallProcess = Start-IcingaProcess -Executable 'MsiExec.exe' -Arguments ([string]::Format('/quiet /i "{0}" {1}', $IcingaInstaller.InstallerPath, $InstallTarget)) -FlushNewLines; Start-Sleep -Seconds 2; Optimize-IcingaForWindowsMemory; return $InstallProcess; - } + } -Args $IcingaInstaller, $InstallTarget; if ($InstallProcess.ExitCode -ne 0) { Write-IcingaConsoleError -Message 'Failed to install Icinga 2 Agent: {0}{1}' -Objects $InstallProcess.Message, $InstallProcess.Error; diff --git a/lib/core/icingaagent/installer/Uninstall-IcingaAgent.psm1 b/lib/core/icingaagent/installer/Uninstall-IcingaAgent.psm1 index 195f549..f258ff7 100644 --- a/lib/core/icingaagent/installer/Uninstall-IcingaAgent.psm1 +++ b/lib/core/icingaagent/installer/Uninstall-IcingaAgent.psm1 @@ -22,16 +22,15 @@ function Uninstall-IcingaAgent() Stop-IcingaService -Service 'icinga2'; - $Uninstaller = Invoke-IcingaCommand -ArgumentList $IcingaData -ScriptBlock { - $IcingaData = $IcingaShellArgs[0]; - + $Uninstaller = & powershell.exe -Command { + $IcingaData = $args[0]; $Uninstaller = Start-IcingaProcess -Executable 'MsiExec.exe' -Arguments ([string]::Format('{0} /q', $IcingaData.Uninstaller)) -FlushNewLine; Start-Sleep -Seconds 2; Optimize-IcingaForWindowsMemory; return $Uninstaller; - } + } -Args $IcingaData; if ($Uninstaller.ExitCode -ne 0) { Write-IcingaConsoleError ([string]::Format('Failed to remove Icinga Agent: {0}{1}', $Uninstaller.Message, $Uninstaller.Error)); diff --git a/lib/core/repository/Install-IcingaComponent.psm1 b/lib/core/repository/Install-IcingaComponent.psm1 index 9524468..d153ef4 100644 --- a/lib/core/repository/Install-IcingaComponent.psm1 +++ b/lib/core/repository/Install-IcingaComponent.psm1 @@ -348,9 +348,10 @@ function Install-IcingaComponent() } } - $MSIData = Invoke-IcingaCommand -ArgumentList $DownloadDestination -ScriptBlock { - return (Read-IcingaMSIMetadata -File $IcingaShellArgs[0]); - } + $MSIData = & powershell.exe -Command { + $DownloadDestination = $args[0]; + return (Read-IcingaMSIMetadata -File $DownloadDestination); + } -Args $DownloadDestination; if ($InstalledVersion.Full -eq $MSIData.ProductVersion -And $Force -eq $FALSE) { Write-IcingaConsoleWarning 'The package "agent" with version "{0}" is already installed. Use "-Force" to re-install the component' -Objects $InstalledVersion.Full; @@ -367,17 +368,16 @@ function Install-IcingaComponent() } } - $InstallProcess = Invoke-IcingaCommand -ArgumentList $DownloadDestination, $InstallTarget -ScriptBlock { - $IcingaInstaller = $IcingaShellArgs[0]; - $InstallTarget = $IcingaShellArgs[1]; - - $InstallProcess = Start-IcingaProcess -Executable 'MsiExec.exe' -Arguments ([string]::Format('/quiet /i "{0}" {1}', $IcingaInstaller, $InstallTarget)) -FlushNewLines; + $InstallProcess = & powershell.exe -Command { + $DownloadDestination = $args[0]; + $InstallTarget = $args[1]; + $InstallProcess = Start-IcingaProcess -Executable 'MsiExec.exe' -Arguments ([string]::Format('/quiet /i "{0}" {1}', $DownloadDestination, $InstallTarget)) -FlushNewLines; Start-Sleep -Seconds 2; Optimize-IcingaForWindowsMemory; return $InstallProcess; - } + } -Args $DownloadDestination, $InstallTarget; if ($InstallProcess.ExitCode -ne 0) { Write-IcingaConsoleError -Message 'Failed to install component "agent": {0}{1}' -Objects $InstallProcess.Message, $InstallProcess.Error;