SCOM Powershell script to fetch Monitors with thresholds
Please find the SCOM Powershell script to fetch Monitors with thresholds
function GetThreshold ([String]
$configuration)
{
$config = [xml]
("<config>" + $configuration + "</config>")
$threshold = $config.Config.Threshold
if($threshold -eq $null)
{
$threshold =
$config.Config.MemoryThreshold
}
if($threshold -eq $null)
{
$threshold =
$config.Config.CPUPercentageThreshold
}
if($threshold -eq $null)
{
if($config.Config.Threshold1 -ne
$null -and $config.Config.Threshold2 -ne $null)
{
$threshold = "first
threshold is: " + $config.Config.Threshold1 + " second threshold is:
" + $config.Config.Threshold2
}
}
if($threshold -eq $null)
{
if($config.Config.ThresholdWarnSec
-ne $null -and $config.Config.ThresholdErrorSec -ne $null)
{
$threshold = "warning
threshold is: " + $config.Config.ThresholdWarnSec + " error threshold
is: " + $config.Config.ThresholdErrorSec
}
}
if($threshold -eq $null)
{
if($config.Config.LearningAndBaseliningSettings
-ne $null)
{
$threshold = "no threshold
(baseline monitor)"
}
}
return $threshold
}
Function GetFrequency ([String]
$configuration)
{
$config = [xml]
("<config>" + $configuration + "</config>")
$Frequency = $config.Config.Frequency
if($Frequency -eq $null)
{
$frequency =
$config.Config.Frequency;
}
return ($frequency)
}
Function GetNumsamples ([String]
$configuration)
{
$config = [xml]
("<config>" + $configuration + "</config>")
$Samples = $config.Config.Samples
if($Samples -eq $null)
{
$Samples =
$config.Config.NumSamples;
}
return ($Samples)
}
Function GetCounterName ([String]
$configuration)
{
$config = [xml]
("<config>" + $configuration + "</config>")
$Counter = $config.Config.Counter
if($Counter -eq $null)
{
$Counter =
$config.Config.CounterName;
}
return ($Counter)
}
Function GetObject ([String]
$configuration)
{
$config = [xml]
("<config>" + $configuration + "</config>")
$Object = $config.Config.Object
if($Object -eq $null)
{
$Object =
$config.Config.ObjectName;
}
return ($Object)
}
$perfMonitors = get-scommonitor
$perfMonitors | select-object
@{Name="MP";Expression={ foreach-object
{$_.GetManagementPack().DisplayName
}}},@{name="Target";expression={foreach-object {(Get-SCOMClass
-Id:$_.Target.Id).DisplayName}}},DisplayName,enabled,@{name="Threshold";expression={foreach-object
{GetThreshold $_.Configuration}}},
@{name="Frequency";expression={foreach-object {GetFrequency
$_.Configuration}}}, @{name="Samples";expression={foreach-object
{GetNumSamples $_.Configuration}}},
@{name="Counter";expression={foreach-object {GetCounterName
$_.Configuration}}}, @{name="Object";expression={foreach-object
{GetObject $_.Configuration}}} | sort Target, DisplayName | export-csv
"c:\PerformanceMonitors.csv"
Comments
Post a Comment