diff --git a/lib/icinga/plugin/New-IcingaCheckPackage.psm1 b/lib/icinga/plugin/New-IcingaCheckPackage.psm1 index 18c6c1b..8cf4a08 100644 --- a/lib/icinga/plugin/New-IcingaCheckPackage.psm1 +++ b/lib/icinga/plugin/New-IcingaCheckPackage.psm1 @@ -215,7 +215,19 @@ function New-IcingaCheckPackage() [hashtable]$MessageOrdering = @{}; foreach ($check in $this.checks) { - $MessageOrdering.Add($check.name, $check); + if ($MessageOrdering.ContainsKey($check.Name) -eq $FALSE) { + $MessageOrdering.Add($check.name, $check); + } else { + [int]$DuplicateKeyIndex = 1; + while ($TRUE) { + $newCheckName = [string]::Format('{0}[{1}]', $check.Name, $DuplicateKeyIndex); + if ($MessageOrdering.ContainsKey($newCheckName) -eq $FALSE) { + $MessageOrdering.Add($newCheckName, $check); + break; + } + $DuplicateKeyIndex += 1; + } + } } $SortedArray = $MessageOrdering.GetEnumerator() | Sort-Object name;