How to Get Information About an Override
Applies To: Operations Manager 2007 R2, Operations Manager 2007 SP1, System Center Operations Manager 2007
You can use overrides to adjust the default settings that are set in Management Packs so that they are customized for your network. Overrides can adjust property values and configuration settings for rules, monitors, discovery objects, recovery objects, and diagnostic objects.
The following procedure describes how to get information about overrides.
Retrieve overrides using the GetMonitoringOverrides method. This method will return a collection of objects of type ManagementPackOverride, which is the abstract base type that all override classes are derived from.
To be able to gather information from the returned override objects (such as the value of the override), you must cast the ManagementPackOverride object as a specific override type. The types you can use for the cast are listed below.
ManagementPackDiagnosticOverride (abstract class)
ManagementPackDiscoveryOverride (abstract class)
ManagementPackMonitorOverride (abstract class)
ManagementPackRuleOverride (abstract class)
ManagementPackRecoveryOverride (abstract class)
If one you casted the override object as one of the abstract classes listed in step 2, then you must cast the object again to access the override value. This is because you need to classify the override as a property override or a configuration override. A property override changes the default value of a class property, while a configuration override changes the default value of a custom configuration setting for a class.
The following code example shows you how to display information for all the overrides for rules, monitors, discovery objects, recovery objects, and diagnostic objects.
//
//Gathers information about overrides.
//
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.EnterpriseManagement.Configuration;
using Microsoft.EnterpriseManagement;
using System.Collections.ObjectModel;
using Microsoft.EnterpriseManagement.Common;
namespace SDKSamples
{
class Program
{
static void Main(string[] args)
{
ManagementGroup mg = new ManagementGroup("localhost");
ReadOnlyCollection<ManagementPackOverride> overrides = mg.GetMonitoringOverrides();
foreach (ManagementPackOverride mpOverride in overrides)
{
// MangementPackOverride is an abstract base class, so you need
// to find out the type of the override.
if (mpOverride is ManagementPackCategoryOverride)
{
PrintCategoryOverrideDetails(mpOverride, mg);
}
else if (mpOverride is ManagementPackDiagnosticOverride)
{
PrintDiagnosticOverrideDetails(mpOverride, mg);
}
else if (mpOverride is ManagementPackDiscoveryOverride)
{
PrintDiscoveryOverrideDetails(mpOverride, mg);
}
else if (mpOverride is ManagementPackMonitorOverride)
{
PrintMonitorOverrideDetails(mpOverride, mg);
}
else if (mpOverride is ManagementPackRecoveryOverride)
{
PrintRecoveryOverrideDetails(mpOverride, mg);
}
else if (mpOverride is ManagementPackRuleOverride)
{
PrintRuleOverrideDetails(mpOverride, mg);
}
}
}
// --------------------------------------------------------------------------------------------------
private static void PrintRuleOverrideDetails(ManagementPackOverride mpOverride, ManagementGroup mg)
{
Console.WriteLine("--- Rule Override Details: ");
ManagementPackRuleOverride ruleOverride;
ManagementPackRule rule;
ruleOverride = (ManagementPackRuleOverride)mpOverride;
try
{
rule = mg.GetMonitoringRule(ruleOverride.Rule.Id);
Console.WriteLine(" Rule name: " + rule.Name);
}
catch (ObjectNotFoundException)
{
Console.WriteLine(" Rule name: Not Found");
}
if (mpOverride is ManagementPackRuleConfigurationOverride)
{
ManagementPackRuleConfigurationOverride configOverride =
(ManagementPackRuleConfigurationOverride)mpOverride;
Console.WriteLine(" Parameter: " + configOverride.Parameter);
Console.WriteLine(" Value: " + configOverride.Value);
}
else if (mpOverride is ManagementPackRulePropertyOverride)
{
ManagementPackRulePropertyOverride propertyOverride =
(ManagementPackRulePropertyOverride)mpOverride;
Console.WriteLine(" Property: " + propertyOverride.Property);
Console.WriteLine(" Value: " + propertyOverride.Value);
}
}
// --------------------------------------------------------------------------------------------------
private static void PrintRecoveryOverrideDetails(ManagementPackOverride mpOverride, ManagementGroup mg)
{
Console.WriteLine("--- Recovery Override Details: ");
ManagementPackRecoveryOverride recoveryOverride;
ManagementPackRecovery recovery;
recoveryOverride = (ManagementPackRecoveryOverride)mpOverride;
try
{
recovery = mg.GetMonitoringRecovery(recoveryOverride.Recovery.Id);
Console.WriteLine(" Recovery name: " + recovery.Name);
}
catch (ObjectNotFoundException)
{
Console.WriteLine(" Recovery name: Not Found");
}
if (mpOverride is ManagementPackRecoveryConfigurationOverride)
{
ManagementPackRecoveryConfigurationOverride configOverride =
(ManagementPackRecoveryConfigurationOverride)mpOverride;
Console.WriteLine(" Parameter: " + configOverride.Parameter);
Console.WriteLine(" Value: " + configOverride.Value);
}
else if (mpOverride is ManagementPackRecoveryPropertyOverride)
{
ManagementPackRecoveryPropertyOverride propertyOverride =
(ManagementPackRecoveryPropertyOverride)mpOverride;
Console.WriteLine(" Property: " + propertyOverride.Property);
Console.WriteLine(" Value: " + propertyOverride.Value);
}
}
// --------------------------------------------------------------------------------------------------
private static void PrintDiscoveryOverrideDetails(ManagementPackOverride mpOverride, ManagementGroup mg)
{
Console.WriteLine("--- Discovery Override Details: ");
ManagementPackDiscoveryOverride discoveryOverride;
ManagementPackDiscovery discovery;
discoveryOverride = (ManagementPackDiscoveryOverride)mpOverride;
try
{
discovery = mg.GetMonitoringDiscovery(discoveryOverride.Discovery.Id);
Console.WriteLine(" Discovery name: " + discovery.Name);
}
catch (ObjectNotFoundException)
{
Console.WriteLine(" Discovery name: Not Found");
}
if (mpOverride is ManagementPackDiscoveryConfigurationOverride)
{
ManagementPackDiscoveryConfigurationOverride configOverride =
(ManagementPackDiscoveryConfigurationOverride)mpOverride;
Console.WriteLine(" Parameter: " + configOverride.Parameter);
Console.WriteLine(" Value: " + configOverride.Value);
}
else if (mpOverride is ManagementPackDiscoveryPropertyOverride)
{
ManagementPackDiscoveryPropertyOverride propertyOverride =
(ManagementPackDiscoveryPropertyOverride)mpOverride;
Console.WriteLine(" Property: " + propertyOverride.Property);
Console.WriteLine(" Value: " + propertyOverride.Value);
}
}
// --------------------------------------------------------------------------------------------------
private static void PrintDiagnosticOverrideDetails(ManagementPackOverride mpOverride, ManagementGroup mg)
{
Console.WriteLine("--- Diagnostic Override Details: ");
ManagementPackDiagnosticOverride diagnosticOverride;
ManagementPackDiagnostic diagnostic;
diagnosticOverride = (ManagementPackDiagnosticOverride)mpOverride;
try
{
diagnostic = mg.GetMonitoringDiagnostic(diagnosticOverride.Diagnostic.Id);
Console.WriteLine(" Diagnostic name: " + diagnostic.Name);
}
catch (ObjectNotFoundException)
{
Console.WriteLine(" Diagnostic name: Not Found");
}
if (mpOverride is ManagementPackDiagnosticConfigurationOverride)
{
ManagementPackDiagnosticConfigurationOverride configOverride =
(ManagementPackDiagnosticConfigurationOverride)mpOverride;
Console.WriteLine(" Parameter: " + configOverride.Parameter);
Console.WriteLine(" Value: " + configOverride.Value);
}
else if (mpOverride is ManagementPackDiagnosticPropertyOverride)
{
ManagementPackDiagnosticPropertyOverride propertyOverride =
(ManagementPackDiagnosticPropertyOverride)mpOverride;
Console.WriteLine(" Property: " + propertyOverride.Property);
Console.WriteLine(" Value: " + propertyOverride.Value);
}
}
// --------------------------------------------------------------------------------------------------
private static void PrintCategoryOverrideDetails(ManagementPackOverride mpOverride, ManagementGroup mg)
{
Console.WriteLine("--- Category Override Details: ");
ManagementPackCategoryOverride categoryOverride;
categoryOverride = (ManagementPackCategoryOverride)mpOverride;
Console.WriteLine(" Category: " + categoryOverride.Category);
Console.WriteLine(" Value: " + categoryOverride.Value);
}
// --------------------------------------------------------------------------------------------------
private static void PrintMonitorOverrideDetails(ManagementPackOverride mpOverride, ManagementGroup mg)
{
Console.WriteLine("--- Monitor Override Details: ");
ManagementPackMonitorOverride monitorOverride;
ManagementPackMonitor monitor;
monitorOverride = (ManagementPackMonitorOverride)mpOverride;
try
{
monitor = mg.GetMonitor(monitorOverride.Monitor.Id);
Console.WriteLine(" Monitor name: " + monitor.Name);
}
catch (ObjectNotFoundException)
{
Console.WriteLine(" Monitor name: Not Found");
}
if (mpOverride is ManagementPackMonitorConfigurationOverride)
{
ManagementPackMonitorConfigurationOverride configOverride =
(ManagementPackMonitorConfigurationOverride)mpOverride;
Console.WriteLine(" Parameter: " + configOverride.Parameter);
Console.WriteLine(" Value: " + configOverride.Value);
}
else if (mpOverride is ManagementPackMonitorPropertyOverride)
{
ManagementPackMonitorPropertyOverride propertyOverride =
(ManagementPackMonitorPropertyOverride)mpOverride;
Console.WriteLine(" Property: " + propertyOverride.Property);
Console.WriteLine(" Value: " + propertyOverride.Value);
}
}
}
}
' Gathers information about overrides.
Imports System
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
Imports System.Text
Imports Microsoft.EnterpriseManagement
Imports Microsoft.EnterpriseManagement.Configuration
Imports Microsoft.EnterpriseManagement.Common
Namespace SDKSamples
Class Program
Public Overloads Shared Function Main(ByVal args() As String) As Integer
Dim mg As ManagementGroup = New ManagementGroup("localhost")
Dim mpOverrides As ReadOnlyCollection(Of ManagementPackOverride) = mg.GetMonitoringOverrides()
For Each mpOverride As ManagementPackOverride In mpOverrides
' MangementPackOverride is an abstract base class, so you need
' to find out the type of the override.
If (TypeOf mpOverride Is ManagementPackCategoryOverride) Then
PrintCategoryOverrideDetails(mpOverride, mg)
ElseIf (TypeOf mpOverride Is ManagementPackDiagnosticOverride) Then
PrintDiagnosticOverrideDetails(mpOverride, mg)
ElseIf (TypeOf mpOverride Is ManagementPackDiscoveryOverride) Then
PrintDiscoveryOverrideDetails(mpOverride, mg)
ElseIf (TypeOf mpOverride Is ManagementPackMonitorOverride) Then
PrintMonitorOverrideDetails(mpOverride, mg)
ElseIf (TypeOf mpOverride Is ManagementPackRecoveryOverride) Then
PrintRecoveryOverrideDetails(mpOverride, mg)
ElseIf (TypeOf mpOverride Is ManagementPackRuleOverride) Then
PrintRuleOverrideDetails(mpOverride, mg)
End If
Next
End Function
' --------------------------------------------------------------------------------------------------
Private Shared Sub PrintRuleOverrideDetails(ByVal mpOverride As ManagementPackOverride, _
ByVal mg As ManagementGroup)
Console.WriteLine("--- Rule Override Details: ")
Dim ruleOverride As ManagementPackRuleOverride
Dim rule As ManagementPackRule
ruleOverride = CType(mpOverride, ManagementPackRuleOverride)
Try
rule = mg.GetMonitoringRule(ruleOverride.Rule.Id)
Console.WriteLine(" Rule name: " & rule.Name)
Catch e As ObjectNotFoundException
Console.WriteLine(" Rule name: Not Found")
End Try
If (TypeOf mpOverride Is ManagementPackRuleConfigurationOverride) Then
Dim configOverride As ManagementPackRuleConfigurationOverride = _
CType(mpOverride, ManagementPackRuleConfigurationOverride)
Console.WriteLine(" Parameter: " & configOverride.Parameter)
Console.WriteLine(" Value: " & configOverride.Value)
ElseIf (TypeOf mpOverride Is ManagementPackRulePropertyOverride) Then
Dim propertyOverride As ManagementPackRulePropertyOverride = _
CType(mpOverride, ManagementPackRulePropertyOverride)
Console.WriteLine(" Property: " & propertyOverride.Property)
Console.WriteLine(" Value: " & propertyOverride.Value)
End If
End Sub
' --------------------------------------------------------------------------------------------------
Private Shared Sub PrintRecoveryOverrideDetails(ByVal mpOverride As ManagementPackOverride, _
ByVal mg As ManagementGroup)
Console.WriteLine("--- Recovery Override Details: ")
Dim recoveryOverride As ManagementPackRecoveryOverride
Dim recovery As ManagementPackRecovery
recoveryOverride = CType(mpOverride, ManagementPackRecoveryOverride)
Try
recovery = mg.GetMonitoringRecovery(recoveryOverride.Recovery.Id)
Console.WriteLine(" Recovery name: " & recovery.Name)
Catch e As ObjectNotFoundException
Console.WriteLine(" Recovery name: Not Found")
End Try
If (TypeOf mpOverride Is ManagementPackRecoveryConfigurationOverride) Then
Dim configOverride As ManagementPackRecoveryConfigurationOverride = _
CType(mpOverride, ManagementPackRecoveryConfigurationOverride)
Console.WriteLine(" Parameter: " & configOverride.Parameter)
Console.WriteLine(" Value: " & configOverride.Value)
ElseIf (TypeOf mpOverride Is ManagementPackRecoveryPropertyOverride) Then
Dim propertyOverride As ManagementPackRecoveryPropertyOverride = _
CType(mpOverride, ManagementPackRecoveryPropertyOverride)
Console.WriteLine(" Property: " & propertyOverride.Property)
Console.WriteLine(" Value: " & propertyOverride.Value)
End If
End Sub
' --------------------------------------------------------------------------------------------------
Private Shared Sub PrintDiscoveryOverrideDetails(ByVal mpOverride As ManagementPackOverride, _
ByVal mg As ManagementGroup)
Console.WriteLine("--- Discovery Override Details: ")
Dim discoveryOverride As ManagementPackDiscoveryOverride
Dim discovery As ManagementPackDiscovery
discoveryOverride = CType(mpOverride, ManagementPackDiscoveryOverride)
Try
discovery = mg.GetMonitoringDiscovery(discoveryOverride.Discovery.Id)
Console.WriteLine(" Discovery name: " & discovery.Name)
Catch e As ObjectNotFoundException
Console.WriteLine(" Discovery name: Not Found")
End Try
If (TypeOf mpOverride Is ManagementPackDiscoveryConfigurationOverride) Then
Dim configOverride As ManagementPackDiscoveryConfigurationOverride = _
CType(mpOverride, ManagementPackDiscoveryConfigurationOverride)
Console.WriteLine(" Parameter: " & configOverride.Parameter)
Console.WriteLine(" Value: " & configOverride.Value)
ElseIf (TypeOf mpOverride Is ManagementPackDiscoveryPropertyOverride) Then
Dim propertyOverride As ManagementPackDiscoveryPropertyOverride = _
CType(mpOverride, ManagementPackDiscoveryPropertyOverride)
Console.WriteLine(" Property: " & propertyOverride.Property)
Console.WriteLine(" Value: " & propertyOverride.Value)
End If
End Sub
' --------------------------------------------------------------------------------------------------
Private Shared Sub PrintDiagnosticOverrideDetails(ByVal mpOverride As ManagementPackOverride, _
ByVal mg As ManagementGroup)
Console.WriteLine("--- Diagnostic Override Details: ")
Dim diagnosticOverride As ManagementPackDiagnosticOverride
Dim diagnostic As ManagementPackDiagnostic
diagnosticOverride = CType(mpOverride, ManagementPackDiagnosticOverride)
Try
diagnostic = mg.GetMonitoringDiagnostic(diagnosticOverride.Diagnostic.Id)
Console.WriteLine(" Diagnostic name: " & diagnostic.Name)
Catch e As ObjectNotFoundException
Console.WriteLine(" Diagnostic name: Not Found")
End Try
If (TypeOf mpOverride Is ManagementPackDiagnosticConfigurationOverride) Then
Dim configOverride As ManagementPackDiagnosticConfigurationOverride = _
CType(mpOverride, ManagementPackDiagnosticConfigurationOverride)
Console.WriteLine(" Parameter: " & configOverride.Parameter)
Console.WriteLine(" Value: " & configOverride.Value)
ElseIf (TypeOf mpOverride Is ManagementPackDiagnosticPropertyOverride) Then
Dim propertyOverride As ManagementPackDiagnosticPropertyOverride = _
CType(mpOverride, ManagementPackDiagnosticPropertyOverride)
Console.WriteLine(" Property: " & propertyOverride.Property)
Console.WriteLine(" Value: " & propertyOverride.Value)
End If
End Sub
' --------------------------------------------------------------------------------------------------
Private Shared Sub PrintCategoryOverrideDetails(ByVal mpOverride As ManagementPackOverride, _
ByVal mg As ManagementGroup)
Console.WriteLine("--- Category Override Details: ")
Dim categoryOverride As ManagementPackCategoryOverride = _
CType(mpOverride, ManagementPackCategoryOverride)
Console.WriteLine(" Category: " & categoryOverride.Category)
Console.WriteLine(" Value: " & categoryOverride.Value)
End Sub
' --------------------------------------------------------------------------------------------------
Private Shared Sub PrintMonitorOverrideDetails(ByVal mpOverride As ManagementPackOverride, _
ByVal mg As ManagementGroup)
Console.WriteLine("--- Monitor Override Details: ")
Dim monitorOverride As ManagementPackMonitorOverride
Dim monitor As ManagementPackMonitor
monitorOverride = CType(mpOverride, ManagementPackMonitorOverride)
Try
monitor = mg.GetMonitor(monitorOverride.Monitor.Id)
Console.WriteLine(" Monitor name: " & monitor.Name)
Catch e As ObjectNotFoundException
Console.WriteLine(" Monitor name: Not Found")
End Try
If (TypeOf mpOverride Is ManagementPackMonitorConfigurationOverride) Then
Dim configOverride As ManagementPackMonitorConfigurationOverride = _
CType(mpOverride, ManagementPackMonitorConfigurationOverride)
Console.WriteLine(" Parameter: " & configOverride.Parameter)
Console.WriteLine(" Value: " & configOverride.Value)
ElseIf (TypeOf mpOverride Is ManagementPackMonitorPropertyOverride) Then
Dim propertyOverride As ManagementPackMonitorPropertyOverride = _
CType(mpOverride, ManagementPackMonitorPropertyOverride)
Console.WriteLine(" Property: " & propertyOverride.Property)
Console.WriteLine(" Value: " & propertyOverride.Value)
End If
End Sub
End Class
End Namespace