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
Microsoft.EnterpriseManagement.Configuration.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
Microsoft.EnterpriseManagement.Configuration.ManagementPackOverride
object as a specific override type. The types you can use for the
cast are listed below.
- Microsoft.EnterpriseManagement.Configuration.ManagementPackCategoryOverride
- Microsoft.EnterpriseManagement.Configuration.ManagementPackDiagnosticOverride
(abstract class)
- Microsoft.EnterpriseManagement.Configuration.ManagementPackDiscoveryOverride
(abstract class)
- Microsoft.EnterpriseManagement.Configuration.ManagementPackMonitoringOverride
- Microsoft.EnterpriseManagement.Configuration.ManagementPackMonitorOverride
(abstract class)
- Microsoft.EnterpriseManagement.Configuration.ManagementPackRuleOverride
(abstract class)
- Microsoft.EnterpriseManagement.Configuration.ManagementPackRecoveryOverride
(abstract class)
- Microsoft.EnterpriseManagement.Configuration.ManagementPackCategoryOverride
- 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.
Visual Basic | Copy Code |
---|---|
' 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 |
C# | Copy Code |
---|---|
// //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); } } } } |
Send comments about this topic to Microsoft.