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 Microsoft.EnterpriseManagement.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 Microsoft.EnterpriseManagement.Configuration.ManagementPack objects, each of which contains data about a specific Management Pack.
For more information about the Operations Manager classes, see Operations Manager 2007 SDK Reference.
The following example shows how to access Operations Manager data by using the Microsoft.EnterpriseManagement.ManagementGroup class. This example gets the alerts for all the Windows computers in the management group and displays the health state of the computer.
Visual Basic | Copy Code |
---|---|
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 |
C# | Copy Code |
---|---|
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); } } } } } |
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
Send comments about this topic to Microsoft.