diff --git a/lib/core/framework/Invoke-IcingaNamespaceCmdlets.psm1 b/lib/core/framework/Invoke-IcingaNamespaceCmdlets.psm1 new file mode 100644 index 0000000..c4b88dd --- /dev/null +++ b/lib/core/framework/Invoke-IcingaNamespaceCmdlets.psm1 @@ -0,0 +1,30 @@ +function Invoke-IcingaNamespaceCmdlets() +{ + param ( + [string]$Command + ); + + [Hashtable]$CommandConfig = @{}; + + if ($Command.Contains('*') -eq $FALSE) { + $Command = [string]::Format('{0}*', $Command); + } + + $CommandList = Get-Command $Command; + + foreach ($Cmdlet in $CommandList) { + try { + $CmmandName = $Cmdlet.Name; + Import-Module $Cmdlet.Module.Path -WarningAction SilentlyContinue -ErrorAction Stop; + + $Content = (& $CmmandName); + Add-IcingaHashtableItem -Hashtable $CommandConfig ` + -Key $Cmdlet.Name ` + -Value $Content | Out-Null; + } catch { + # TODO: Add event log logging on exceptions + } + } + + return $CommandConfig; +}