OM12 Command Shell vs OpsMgr2007 Command Shell
Now that System Center Operations Manager 2012 (OM12) Beta available is, it’s time to compare the OM12 Command Shell with the OpsMgr 2007 Command Shell.
Snapin vs Module
OpsMgr 2007 has a PoweShell Snapin and OM12 uses a PowerShell Module. Modules are a new feature of PowerShell v2 are now widely used in PowerShell. Modules allow you a cleaner way to work with groups of scripts, because they can contain private variables that only those scripts share. You can also refer to a function within a module, which allows you to group commands more logically and to use more common function names without fear of overwriting the names of other functions. More info can be found here.
How do you know if Snapins or Modules are being used?
Just open the Operations Manager Shell in OpsMgr 2007 and type: get-pssnapin -registered.
There we have it, it’s a Snapin
Now on your OM12 server open the Operations Manager Shell and type: get-module -listavailable
But wait, there is more. Let’s check if there is also a Snapin.
Seems we also have installed the “old” OpsMgr 2007 Snapin.
Commands (Verbs & Nouns)
Let’s start with checking the PowerShell Best-practices for the OM12 Cmdlets and Functions:
When importing a module or Snapin with the verbose parameter, PowerShell checks if unapproved verbs are being used.
More information about Cmdlet Verb Names can be found here: https://msdn.microsoft.com/en-us/library/ms714428.aspx
OpsMgr 2007 had one unapproved verb, the Reject-AgentPending Cmdlet
You can check this yourself by using the import-module "C:\Program Files\System Center Operations Manager 2007\Microsoft.EnterpriseManagement.OperationsManager.ClientShell.dll" -verbose
Let’s check OM12 for unapproved verbs:
No unapproved verbs for the Commands used in OM12 Seems we have followed our own naming principles this time
Number of OM12 Commands.
We can retrieve the number of OM12 commands by using the next commands: (Get-Command -Module OperationsManager).count
So in OM12 we have 87 Commands to help us manage OM12. We can check the number of Commands for OpsMgr 2007 using PowerShell Remoting from the OM12 Management Server:
Enter-PSSession –ComputerName OpsMgrRMS.stranger.local -Credential (Get-Credential) add-pssnapin "Microsoft.EnterpriseManagement.OperationsManager.Client" Set-Location "OperationsManagerMonitoring::" New-ManagementGroupConnection -connectionString:opsmgrrms.stranger.local Set-Location opsmgrrms.stranger.local (get-operationsmanagercommand).count |
So OM12 and OpsMgr 2007 have both 87 Commands.
List of OM12 Commands
OM12 | OpsMgr | ||
Name |
CommandType | Name | CommandType |
Add-SCOMAgentlessManagedComputer Approve-SCOMPendingManagement Deny-SCOMPendingManagement Disable-SCOMAgentProxy Disable-SCOMDiscovery Disable-SCOMMonitor Disable-SCOMNotificationSubscription Disable-SCOMRule Enable-SCOMAgentProxy Enable-SCOMDiscovery Enable-SCOMMonitor Enable-SCOMNotificationSubscription Enable-SCOMRule Export-SCManagementPack Export-SCOMEffectiveMonitoringConfiguration Export-SCOMManagementPack Get-SCClass Get-SCDiscovery Get-SCManagementGroupConnection Get-SCManagementPack Get-SCOMAccessLicense Get-SCOMAgent Get-SCOMAgentlessManagedComputer Get-SCOMAgentManagementServerSetting Get-SCOMAlert Get-SCOMAlertHistory Get-SCOMClass Get-SCOMClassInstance Get-SCOMCommand Get-SCOMConnector Get-SCOMDiagnostic Get-SCOMDiscovery Get-SCOMEvent Get-SCOMGatewayManagementServer Get-SCOMGroup Get-SCOMMaintenanceMode Get-SCOMManagementGroupConnection Get-SCOMManagementPack Get-SCOMManagementServer Get-SCOMMonitor Get-SCOMNotificationAction Get-SCOMNotificationEndpoint Get-SCOMNotificationRecipient Get-SCOMNotificationSubscription Get-SCOMOverride Get-SCOMOverrideResult Get-SCOMPendingManagement Get-SCOMRecovery Get-SCOMRelationship Get-SCOMRelationshipInstance Get-SCOMResourcePool Get-SCOMRMSEmulator Get-SCOMRule Get-SCOMRunAsAccount Get-SCOMRunAsProfile Get-SCOMTask Get-SCOMTaskResult Get-SCOMUserRole Get-SCRelationship Get-SCRelationshipInstance Import-SCManagementPack Import-SCOMManagementPack Install-SCOMAgent New-SCManagementGroupConnection New-SCOMManagementGroupConnection New-SCOMResourcePool Remove-SCManagementGroupConnection Remove-SCManagementPack Remove-SCOMAgentlessManagedComputer Remove-SCOMDisabledClassInstance Remove-SCOMManagementGroupConnection Remove-SCOMManagementPack Remove-SCOMResourcePool Remove-SCOMRMSEmulator Set-SCManagementGroupConnection Set-SCOMAgentlessManagedComputer Set-SCOMAgentManagementServerSetting Set-SCOMAlert Set-SCOMMaintenanceMode Set-SCOMManagementGroupConnection Set-SCOMResourcePool Set-SCOMRMSEmulator Set-SCOMRunAsProfile Set-SCOMUserRole Start-SCOMMaintenanceMode Start-SCOMTask Uninstall-SCOMAgent |
Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Alias Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Alias Cmdlet Function Cmdlet Cmdlet Alias Cmdlet Cmdlet Cmdlet Cmdlet Alias Alias Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Alias Alias Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Alias Cmdlet Cmdlet Alias Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Alias Alias Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Alias Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet |
Add-ConnectorToTier Add-RemotelyManagedComputer Add-RemotelyManagedDevice Add-UserToUserRole Approve-AgentPendingAction Disable-NotificationSubscription Disable-Rule Enable-NotificationSubscription Enable-Rule Export-ManagementPack Get-Agent Get-AgentPendingAction Get-Alert Get-AlertDestination Get-AlertHistory Get-Connector Get-DefaultSetting Get-Diagnostic Get-Discovery Get-Event Get-FailoverManagementServer Get-GatewayManagementServer Get-MaintenanceWindow Get-ManagementGroupConnection Get-ManagementPack Get-ManagementServer Get-Monitor Get-MonitorHierarchy Get-MonitoringClass Get-MonitoringClassProperty Get-MonitoringObject Get-MonitoringObjectGroup Get-MonitoringObjectPath Get-MonitoringObjectProperty Get-NotificationAction Get-NotificationEndpoint Get-NotificationRecipient Get-NotificationSubscription Get-OperationsManagerCommand Get-Override Get-PerformanceCounter Get-PerformanceCounterValue Get-PrimaryManagementServer Get-Recovery Get-RelationshipClass Get-RelationshipObject Get-RemotelyManagedComputer Get-RemotelyManagedDevice Get-ResultantCategoryOverride Get-ResultantRuleOverride Get-ResultantUnitMonitorOverride Get-RootManagementServer Get-Rule Get-RunAsAccount Get-State Get-Task Get-TaskResult Get-Tier Get-UserRole Install-Agent Install-AgentByName Install-ManagementPack New-CustomMonitoringObject New-DeviceDiscoveryConfiguration New-LdapQueryDiscoveryCriteria New-MaintenanceWindow New-ManagementGroupConnection New-MonitoringPropertyValuePair New-Tier New-WindowsDiscoveryConfiguration Reject-AgentPendingAction Remove-ConnectorFromTier Remove-DisabledMonitoringObject Remove-ManagementGroupConnection Remove-RemotelyManagedComputer Remove-RemotelyManagedDevice Remove-Tier Resolve-Alert Set-AlertDestination Set-DefaultSetting Set-MaintenanceWindow Set-ManagementServer Set-ProxyAgent Start-Discovery Start-Task Uninstall-Agent Uninstall-ManagementPack |
Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet |
Some of the Commands I highlighted are some of the aliases being used in OM12.
You can get more information on Aliases by using the Get-Command -module operationsmanager –CommandType Alias
I guess these Aliases are created to give the OM12 Commands a consistent SCOM* Naming Convention.
And for the current OM12 Commands we also see we have created a Function Get-SCOMCommand. So how is that Get-SCOMCommand Function created?
First we are going into the Function drive.
CD Function:
Next we are using the Get-Content Cmdlet to look into the Get-SCOMCommand function.
Get-Content Get-SCOMCommand
Ok, we just created a function which uses the Get-Command –Module OperationsManager to list all SCOM Commands
This is it for now, but I’ll try to post more about the new OM12 Commands.
Comments
Anonymous
January 01, 2003
Module functionality also allows you to not "hardcode" cmdlet's prefix to avoid name conflicts and allow user to specify preffered prefix using -Prefix parameter in Get-Module cmdlet. Do you allow to specify different prefix (not SCOM) using this parameter or this prefix is hardcoded? If it hardcoded, are you planing to fix this before release? Second question. VMM 2012 uses "SC" as prefix for their new cmdlets. Not sure why they do that, but do you know about that, and do you plan to provide consistent cmdlet naming, across at least system center products until RTM?Anonymous
January 01, 2003
Heck yes. “SCOM” is at least debatable acronym while many customers prefer to use “OpsMgr” due to whole bunch of reasons. If there is a technical possibility not to use a hardcoded prefix you should definitly take advantage of it. A consistent naming scheme across all the System Center family could also help the messaging.