Getting Started Developing an SDK Client Application
Applies To: Operations Manager 2007 R2, Operations Manager 2007 SP1, System Center Operations Manager 2007
To get started using the Operations Manager SDK, create a new project in Visual Studio, and, in your project, add references to the following Operations Manager class libraries:
Microsoft.EnterpriseManagement.OperationsManager.dll
Microsoft.EnterpriseManagement.OperationsManager.Common.dll
The class libraries allow you to programmatically access Operations Manager data and functionality.
These assemblies are installed in the %ProgramFiles%\System Center Operations Manager 2007\SDK Binaries directory when you install Operations Manager 2007.
After you add references to the Operations Manager class libraries, create a connection to the SDK Service. The SDK Service is a Windows service that runs on the Root Management Server in a Management Group.
You can create a connection to the SDK Service by using the Connect method. This method returns a ManagementGroup object, which is the primary object for accessing most Operations Manager features and data. For more information, see How to Connect an Operations Manager SDK Client to the SDK Service.
Accessing Operations Manager Data
The Operations Manager class libraries provide classes that contain methods for accessing the data from an SDK client application. For example, to get information about the Management Packs installed in a Management Group, you can use the GetManagementPacks method. The method returns a read-only collection of ManagementPack objects, each of which contains data about a specific Management Pack.
For more information about the Operations Manager classes, see Operations Manager 2007 R2 SDK Reference.
The following example shows how to access Operations Manager data by using the ManagementGroup class. This example gets the alerts for all the Windows computers in the management group and displays the health state of the computer.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.EnterpriseManagement;
using Microsoft.EnterpriseManagement.Configuration;
using Microsoft.EnterpriseManagement.Monitoring;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Xml;
using Microsoft.EnterpriseManagement.Monitoring.Security;
namespace SDKSamples
{
class Program
{
static void Main(string[] args)
{
ReadOnlyCollection<PartialMonitoringObject> windowsComputerObjects;
ManagementGroup managementGroup;
MonitoringClass windowsComputerClass;
managementGroup = new ManagementGroup("localhost");
windowsComputerClass = managementGroup.GetMonitoringClass(SystemMonitoringClass.WindowsComputer);
windowsComputerObjects = managementGroup.GetPartialMonitoringObjects(windowsComputerClass);
foreach (PartialMonitoringObject windowsComputerObject in windowsComputerObjects)
{
ReadOnlyCollection<MonitoringAlert> alerts;
alerts = windowsComputerObject.GetMonitoringAlerts();
Console.WriteLine("{0} - State: {1} - Number of alerts: {2}",
windowsComputerObject.DisplayName,
windowsComputerObject.HealthState.ToString(),
alerts.Count);
foreach (MonitoringAlert alert in alerts)
{
Console.WriteLine("{0}", alert.Name);
}
}
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.EnterpriseManagement
Imports Microsoft.EnterpriseManagement.Configuration
Imports Microsoft.EnterpriseManagement.Monitoring
Imports System.Collections.ObjectModel
Imports System.Diagnostics
Imports System.Xml
Imports Microsoft.EnterpriseManagement.Monitoring.Security
Namespace SDKSamples
Class Program
Public Overloads Shared Function Main(ByVal args() As String) As Integer
Dim windowsComputerObjects As ReadOnlyCollection(Of PartialMonitoringObject)
Dim managementGroup As ManagementGroup
Dim windowsComputerClass As MonitoringClass
managementGroup = New ManagementGroup("localhost")
windowsComputerClass = managementGroup.GetMonitoringClass(SystemMonitoringClass.WindowsComputer)
windowsComputerObjects = managementGroup.GetPartialMonitoringObjects(windowsComputerClass)
For Each windowsComputerObject As PartialMonitoringObject In windowsComputerObjects
Dim alerts As ReadOnlyCollection(Of MonitoringAlert)
alerts = windowsComputerObject.GetMonitoringAlerts()
Console.WriteLine("{0} - State: {1} - Number of alerts: {2}", _
windowsComputerObject.DisplayName, _
windowsComputerObject.HealthState.ToString(), alerts.Count)
For Each alert As MonitoringAlert In alerts
Console.WriteLine("{0}", alert.Name)
Next alert
Next windowsComputerObject
End Function 'Main
End Class 'Program
End Namespace 'SDKSamples
Additional Information
The following sections of the documentation contain more information and code examples that explain how to use the Operations Manager SDK.
See Also
Concepts
Operations Manager SDK Architecture Overview
System Center Operations Manager 2007 R2 SDK