mirror of
https://github.com/Icinga/icinga-powershell-framework.git
synced 2025-12-21 07:10:15 -05:00
Disabling UseConsistentIndentation because it is not properly working for multi-line commands with arguments and array/hashtable objects
58 lines
1.8 KiB
PowerShell
58 lines
1.8 KiB
PowerShell
<#
|
|
.SYNOPSIS
|
|
Displays all available instances for a provided Performance Counter
|
|
.DESCRIPTION
|
|
Displays all available instances for a provided Performance Counter
|
|
.FUNCTIONALITY
|
|
Displays all available instances for a provided Performance Counter
|
|
.PARAMETER Counter
|
|
The name of the Performance Counter to fetch data for
|
|
.EXAMPLE
|
|
PS>Show-IcingaPerformanceCounterInstances -Counter '\Processor(*)\% processor time';
|
|
|
|
Name Value
|
|
---- -----
|
|
_Total \Processor(_Total)\% processor time
|
|
0 \Processor(0)\% processor time
|
|
1 \Processor(1)\% processor time
|
|
2 \Processor(2)\% processor time
|
|
3 \Processor(3)\% processor time
|
|
...
|
|
.LINK
|
|
https://github.com/Icinga/icinga-powershell-framework
|
|
#>
|
|
|
|
function Show-IcingaPerformanceCounterInstances()
|
|
{
|
|
param (
|
|
[string]$Counter
|
|
);
|
|
|
|
[hashtable]$Instances = @{ };
|
|
|
|
if ([string]::IsNullOrEmpty($Counter)) {
|
|
Write-IcingaConsoleError 'Please enter a Performance Counter';
|
|
return;
|
|
}
|
|
|
|
$PerfCounter = New-IcingaPerformanceCounter -Counter $Counter -SkipWait $TRUE;
|
|
|
|
foreach ($entry in $PerfCounter.Counters) {
|
|
$Instances.Add(
|
|
$entry.Instance,
|
|
($Counter.Replace('(*)', ([string]::Format('({0})', $entry.Instance))))
|
|
);
|
|
}
|
|
|
|
if ($Instances.Count -eq 0) {
|
|
Write-IcingaConsoleNotice `
|
|
-Message 'No instances were found for Performance Counter "{0}". Please ensure the provided counter has instances and you are using "*" for the instance name.' `
|
|
-Objects $Counter;
|
|
|
|
return;
|
|
}
|
|
|
|
return (
|
|
$Instances.GetEnumerator() | Sort-Object Name
|
|
);
|
|
}
|