How to Display Management Pack Contents
Applies To: Operations Manager 2007 R2, Operations Manager 2007 SP1, System Center Operations Manager 2007
The Operations Manager class libraries expose information about installed Management Packs. The Management Pack classes can be used to view or edit the configuration of a Management Pack. For more information about using the Operations Manager class libraries for creating your own Management Pack authoring tools, see Automating Management Pack Development.
Example
The following example demonstrates how to enumerate the contents of a specific Management Pack that is installed in a Management Group.
/// <summary>
/// Displays information about the contents of the
/// Microsoft.SystemCenter.NTService.Library Management Pack.
/// </summary>
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Microsoft.EnterpriseManagement;
using Microsoft.EnterpriseManagement.Administration;
using Microsoft.EnterpriseManagement.Common;
using Microsoft.EnterpriseManagement.Configuration;
using Microsoft.EnterpriseManagement.Monitoring;
using System.Text;
namespace SDKSamples
{
class Program
{
static void Main(string[] args)
{
ManagementGroup mg = new ManagementGroup("localhost");
Console.WriteLine("Displaying Management Pack contents...");
// Get the Management Pack.
string query = "Name = 'Microsoft.SystemCenter.NTService.Library'";
ManagementPackCriteria mpCriteria = new ManagementPackCriteria(query);
ReadOnlyCollection<ManagementPack> managementPacks = mg.GetManagementPacks(mpCriteria);
if (managementPacks.Count != 1)
throw new InvalidOperationException("Expected one Management Pack with " + query);
// Display information about the Management Pack.
DisplayMPInfo(managementPacks[0]);
DisplayRules(managementPacks[0]);
DisplayTasks(managementPacks[0]);
DisplayViews(managementPacks[0]);
DisplayViewTypes(managementPacks[0]);
DisplayMonitoringClasses(managementPacks[0]);
DisplayDependentMPs(managementPacks[0], mg);
}
/// <summary>
/// Displays identification information for the Management Pack.
/// </summary>
/// <param name="mp">The ManagementPack object to inspect.</param>
public static void DisplayMPInfo(ManagementPack mp)
{
Console.WriteLine("---------------------------------");
Console.WriteLine("Management Pack: " + mp.Name + " (" + mp.DisplayName + ")");
Console.WriteLine(" Description: " + mp.Description);
Console.WriteLine(" FriendlyName: " + mp.FriendlyName);
Console.WriteLine(" Version: " + mp.Version.ToString());
Console.WriteLine(" ID: " + mp.Id.ToString());
}
/// <summary>
/// Displays information about the rules in the Management Pack.
/// </summary>
/// <param name="mp">The ManagementPack object containing the rules.</param>
public static void DisplayRules(ManagementPack mp)
{
ManagementPackElementCollection<ManagementPackRule> rules = mp.GetRules();
if (rules.Count > 0)
{
foreach (ManagementPackRule rule in rules)
{
Console.WriteLine(" Rule: " + rule.Name + " (" + rule.Description + ")");
}
}
else
{
Console.WriteLine(" (The Management Pack does not contain any rules)");
}
}
/// <summary>
/// Displays information about the tasks in the Management Pack.
/// </summary>
/// <param name="mp">The ManagementPack object containing the tasks.</param>
public static void DisplayTasks(ManagementPack mp)
{
ManagementPackElementCollection<ManagementPackTask> tasks = mp.GetTasks();
if (tasks.Count > 0)
{
foreach (ManagementPackTask task in tasks)
{
Console.WriteLine(" Task: " + task.Name + " (" + task.DisplayName + ")");
}
}
else
{
Console.WriteLine(" (The Management Pack does not contain any tasks)");
}
}
/// <summary>
/// Displays information about the view types defined
/// in the Management Pack.
/// </summary>
/// <param name="mp">The ManagementPack object containing
/// the view types.</param>
public static void DisplayViewTypes(ManagementPack mp)
{
ManagementPackElementCollection<ManagementPackViewType> viewTypes = mp.GetViewTypes();
if (viewTypes.Count > 0)
{
foreach (ManagementPackViewType viewType in viewTypes)
{
Console.WriteLine(" View Type: " + viewType.Name + " (" + viewType.DisplayName + ")");
}
}
else
{
Console.WriteLine(" (The Management Pack does not contain any view types)");
}
}
/// <summary>
/// Displays information about the views in the Management Pack.
/// </summary>
/// <param name="mp">The ManagementPack object containing the
/// views.</param>
public static void DisplayViews(ManagementPack mp)
{
ManagementPackElementCollection<ManagementPackView> views = mp.GetViews();
if (views.Count > 0)
{
foreach (ManagementPackView view in views)
{
Console.WriteLine(" View: " + view.Name + " (" + view.DisplayName + ")");
}
}
else
{
Console.WriteLine(" (The Management Pack does not contain any views)");
}
}
/// <summary>
/// Displays information about the monitoring classes
/// defined in the Management Pack.
/// </summary>
/// <param name="mp">The ManagementPack object containing
/// the monitoring classes.</param>
public static void DisplayMonitoringClasses(ManagementPack mp)
{
ManagementPackElementCollection<ManagementPackClass> mpClasses = mp.GetClasses();
if (mpClasses.Count > 0)
{
foreach (ManagementPackClass mpClass in mpClasses)
{
Console.WriteLine(" Management Pack class: " + mpClass.Name + " (" + mpClass.DisplayName + ")");
}
}
else
{
Console.WriteLine(" (The Management Pack does not contain any classes)");
}
}
/// <summary>
/// Displays information about the dependent Management Packs of
/// the specified Management Pack.
/// </summary>
/// <param name="mp">The ManagementPack object to
/// check for dependencies.</param>
public static void DisplayDependentMPs(ManagementPack mp, ManagementGroup mg)
{
ReadOnlyCollection<ManagementPack> dependentMPs = mg.GetDependentManagementPacks(mp);
if (dependentMPs.Count > 0)
{
foreach (ManagementPack dependentMP in dependentMPs)
{
Console.WriteLine(" Dependent Management Pack: " + dependentMP.Name + " (" + dependentMP.DisplayName + ")");
}
}
else
{
Console.WriteLine(" (The Management Pack does not have any dependent Management Packs)");
}
}
}
}
' <summary>
' Displays information about the contents of the
' Microsoft.SystemCenter.NTService.Library Management Pack.
' </summary>
Imports System
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
Imports Microsoft.EnterpriseManagement
Imports Microsoft.EnterpriseManagement.Administration
Imports Microsoft.EnterpriseManagement.Configuration
Imports Microsoft.EnterpriseManagement.Common
Imports Microsoft.EnterpriseManagement.Monitoring
Namespace SDKSamples
Class Program
Public Overloads Shared Function Main(ByVal args() As String) As Integer
Dim mg As ManagementGroup = New ManagementGroup("localhost")
Console.WriteLine("Displaying Management Pack contents...")
' Get the Management Pack.
Dim query As String = "Name = 'Microsoft.SystemCenter.NTService.Library'"
Dim mpCriteria As ManagementPackCriteria = New ManagementPackCriteria(query)
Dim managementPacks As ReadOnlyCollection(Of ManagementPack) = _
mg.GetManagementPacks(mpCriteria)
If (managementPacks.Count <> 1) Then
Throw New InvalidOperationException("Expected one Management Pack with " & query)
End If
' Display information about the Management Pack.
DisplayMPInfo(managementPacks(0))
DisplayRules(managementPacks(0))
DisplayTasks(managementPacks(0))
DisplayViews(managementPacks(0))
DisplayViewTypes(managementPacks(0))
DisplayMonitoringClasses(managementPacks(0))
DisplayDependentMPs(managementPacks(0), mg)
End Function
' <summary>
' Displays identification information for the Management Pack.
' </summary>
' <param name="mp">The ManagementPack object to inspect.</param>
Public Shared Sub DisplayMPInfo(ByVal mp As ManagementPack)
Console.WriteLine("---------------------------------")
Console.WriteLine("Management Pack: " & mp.Name & " (" & mp.DisplayName & ")")
Console.WriteLine(" Description: " & mp.Description)
Console.WriteLine(" FriendlyName: " & mp.FriendlyName)
Console.WriteLine(" Version: " & mp.Version.ToString())
Console.WriteLine(" ID: " & mp.Id.ToString())
End Sub
' <summary>
' Displays information about the rules in the Management Pack.
' </summary>
' <param name="mp">The ManagementPack object containing the rules.</param>
Public Shared Sub DisplayRules(ByVal mp As ManagementPack)
Dim rules As ManagementPackElementCollection(Of ManagementPackRule) = mp.GetRules()
If (rules.Count > 0) Then
For Each rule As ManagementPackRule In rules
Console.WriteLine(" Rule: " & rule.Name & " (" & rule.Description & ")")
Next
Else
Console.WriteLine(" (The Management Pack does not contain any rules)")
End If
End Sub
' <summary>
' Displays information about the tasks in the Management Pack.
' </summary>
' <param name="mp">The ManagementPack object containing the tasks.</param>
Public Shared Sub DisplayTasks(ByVal mp As ManagementPack)
Dim tasks As ManagementPackElementCollection(Of ManagementPackTask) = mp.GetTasks()
If (tasks.Count > 0) Then
For Each task As ManagementPackTask In tasks
Console.WriteLine(" Task: " & task.Name & " (" & task.DisplayName & ")")
Next
Else
Console.WriteLine(" (The Management Pack does not contain any tasks)")
End If
End Sub
' <summary>
' Displays information about the view types defined
' in the Management Pack.
' </summary>
' <param name="mp">The ManagementPack object containing
' the view types.</param>
Public Shared Sub DisplayViewTypes(ByVal mp As ManagementPack)
Dim viewTypes As ManagementPackElementCollection(Of ManagementPackViewType) = _
mp.GetViewTypes()
If (viewTypes.Count > 0) Then
For Each viewType As ManagementPackViewType In viewTypes
Console.WriteLine(" View Type: " & viewType.Name + " (" & viewType.DisplayName & ")")
Next
Else
Console.WriteLine(" (The Management Pack does not contain any view types)")
End If
End Sub
' <summary>
' Displays information about the views in the Management Pack.
' </summary>
' <param name="mp">The ManagementPack object containing the
' views.</param>
Public Shared Sub DisplayViews(ByVal mp As ManagementPack)
Dim views As ManagementPackElementCollection(Of ManagementPackView) = mp.GetViews()
If (views.Count > 0) Then
For Each view As ManagementPackView In views
Console.WriteLine(" View: " & view.Name & " (" & view.DisplayName & ")")
Next
Else
Console.WriteLine(" (The Management Pack does not contain any views)")
End If
End Sub
' <summary>
' Displays information about the monitoring classes
' defined in the Management Pack.
' </summary>
' <param name="mp">The ManagementPack object containing
' the monitoring classes.</param>
Public Shared Sub DisplayMonitoringClasses(ByVal mp As ManagementPack)
Dim mpClasses As ManagementPackElementCollection(Of ManagementPackClass) = _
mp.GetClasses()
If (mpClasses.Count > 0) Then
For Each mpClass As ManagementPackClass In mpClasses
Console.WriteLine(" Management Pack class: " & mpClass.Name & " (" & mpClass.DisplayName & ")")
Next
Else
Console.WriteLine(" (The Management Pack does not contain any classes)")
End If
End Sub
' <summary>
' Displays information about the dependent Management Packs of
' the specified Management Pack.
' </summary>
' <param name="mp">The ManagementPack object to
' check for dependencies.</param>
Public Shared Sub DisplayDependentMPs(ByVal mp As ManagementPack, ByVal mg As ManagementGroup)
Dim dependentMPs As ReadOnlyCollection(Of ManagementPack) = _
mg.GetDependentManagementPacks(mp)
If (dependentMPs.Count > 0) Then
For Each dependentMP As ManagementPack In dependentMPs
Console.WriteLine(" Dependent Management Pack: " & _
dependentMP.Name & " (" & dependentMP.DisplayName & ")")
Next
Else
Console.WriteLine(" (The Management Pack does not have any dependent Management Packs)")
End If
End Sub
End Class
End Namespace
See Also
Other Resources
Automating Management Pack Development
Automating Operations Manager Administration