Using the Operations Manager Command Shell
Applies To: Operations Manager 2007 R2, Operations Manager 2007 SP1
The Microsoft System Center Operations Manager 2007 command shell is installed with the Operations Manager console; it provides a command-line environment and task-based scripting technology that you can use to automate most Operations Manager administrative tasks.
How the Operations Manager Command Shell Works
The Operations Manager command shell is built on Windows PowerShell. The Operations Manager command shell extends the Windows command shell with over 80 additional small utility programs, called cmdlets, which can either be run directly from the command shell prompt or called from within a batch file or script. Cmdlets can be used by themselves, or they can be combined with other cmdlets to perform complex administrative tasks. Unlike traditional command-line environments that work by returning text results to the end user or routing (“piping”) text to different command-line utilities, PowerShell manipulates Microsoft .NET Framework objects directly. This provides a more robust and efficient mechanism for interacting with the system.
This topic serves as an overview to the Operations Manager command shell. To learn more about PowerShell, see the Windows PowerShell 1.0 Documentation Pack (https://go.microsoft.com/fwlink/?LinkID=128867).
Using the Operations Manager Command Shell
In this section, we will walk through some common tasks with the Operations Manager 2007 command shell.
Launch the Operations Manager 2007 command shell and list the available commands
To launch the Operations Manager 2007 command shell, click Start, select Programs, and then select Command Shell from the System Center Operations Manager 2007 menu.
From the command shell prompt, type
Get-OperationsManagerCommand
to retrieve a list of all of the available Operations Manager 2007 cmdlets.To see help for any specific cmdlet, type get-help followed by the name of the cmdlet. For example, type
get-help Get-State
to retrieve help information about theGet-State
cmdlet.
Command Shell Usage Examples
This section contains a number of examples of command shell usage. Enter the commands at a command shell prompt, or use them in a batch file or script.
Important
The –name
and –criteria
parameters that are used by the command shell are case sensitive.
Export management packs
To export a management pack, run the following command:
get-managementPack -name Microsoft.SQLServer.2005.Monitoring | export-managementPack -path c:\mp
To export all management packs in a management group, run the following command:
get-managementPack | export-managementPack -path c:\mp
To export all management packs that contain a specified string in their name, run the following command:
get-managementPack | where {$_.name –match 'SQL'}
Examine management pack elements
To list all rules by management pack, run the following command:
get-rule | select @{name="MP";expression={foreach-Object {$_.GetManagementPack().DisplayName}}},DisplayName | sort mp,displayName
To list all monitors in a specific management pack, run the following command:
(get-managementPack -name Microsoft.SQLServer.2005.Monitoring) | get-monitor | sort displayName | ft displayName
To list all disabled discoveries, run the following command:
get-discovery | where {$_.enabled -eq 'false'} | ft displayName
View Alert Data
To view all unresolved alerts, run the following command:
get-alert -criteria "ResolutionState <> 255"
To view all alerts grouped by severity and name, run the following command:
get-alert -criteria "ResolutionState <> 255" | sort severity,name | group severity,name
To resolve all alerts generated by rules, run the following command:
get-alert -criteria "ResolutionState <> 255 and IsMonitorAlert = 'False'" | resolve-Alert
Retrieve Performance Data
The example below extracts processor utilization data for all computers for the month of October 2008 to a comma-delimited file:
> $startTime = get-date '10/1/2008' > $endTime = get-date '10/31/2008' > $pc = get-performanceCounter -criteria: "ObjectName='Processor' and CounterName='% Processor Time' and MonitoringObjectPath='web.contoso.com'" > get-performanceCounterValue -startTime $startTime -endTime $endTime - performanceCounter $pc | export-csv c:\scripts\mom\perf.csv
Additional Resources
For more information about Windows PowerShell, consult the following resources: