Wouldn’t it be cool if SCOM 2016 was super fast and required less resources?
SCOM 2016 is full of legacy solutions that make it bloated and slow. You can remove “most” of these solutions if your not going to use them anyway?
SCOM was created in a very modular fashion using management packs to add features over the years.
After careful analysis I created the following PowerShell script to remove many of the management packs that slow down SCOM.
I have broken the script into pieces so you can remove any parts that you want to keep. The script was created using a clean SCOM 2016 install. If you have been using SCOM 2016 for a long time or have an upgraded SCOM environment you may have some additional dependencies in unsealed MPs you created.
If you find you need a solution in the future. Simply add the MPs back from the installation media.
Download: https://www.scom2k7.com/downloads/SCOMCoreMPRemoval.zip
The script:
$MSServer = "yourMSServer" Import-Module -Name "OperationsManager" New-SCManagementGroupConnection -ComputerName:$MSServer #Summary Dashboard Get-SCOMManagementPack -Name "Microsoft.SystemCenter.OperationsManager.SummaryDashboard" | Remove-SCOMManagementPack #AEM Get-SCOMManagementPack -Name "Microsoft.SystemCenter.ClientMonitoring.Overrides" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.ClientMonitoring.Internal" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.ClientMonitoring.Views.Internal" | Remove-SCOMManagementPack #Client Monitoring Get-SCOMManagementPack -Name "Microsoft.Windows.Client.NetworkDiscovery" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.Windows.Client.Library" | Remove-SCOMManagementPack #OMS-Advisor - Only works if Advisor was never configured Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Advisor" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Advisor.Resources.ENU" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Advisor.Internal" | Remove-SCOMManagementPack #360 Dashboards Get-SCOMManagementPack -Name "Microsoft.SystemCenter.ApplicationMonitoring.360.SLA" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.ApplicationMonitoring.360.Template.Dashboards" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.ApplicationMonitoring.360.Template.Library" | Remove-SCOMManagementPack #Unix-Linux Get-SCOMManagementPack -Name "Microsoft.Unix.Views" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.Unix.ShellCommand.Library" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.Unix.Process.Library" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.Unix.LogFile.Library" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.Unix.ConsoleLibrary" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.Unix.Image.Library" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.Unix.Library" | Remove-SCOMManagementPack #Windows Server Network Get-SCOMManagementPack -Name "Microsoft.Windows.Server.NetworkDiscovery" | Remove-SCOMManagementPack #Network Devices *Note Can get rid of Microsoft.SystemCenter.NetworkDevice.Library because of Microsoft.SystemCenter.Internal.UI.Tasks dependency Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Visualization.Network.Dashboard" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Visualization.Network.Library" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "System.NetworkManagement.Monitoring" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "System.NetworkManagement.Templates" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.NetworkDiscovery.Internal" | Remove-SCOMManagementPack #MP Recommendations Get-SCOMManagementPack -Name "Microsoft.SystemCenter.ManagementPack.Recommendations" | Remove-SCOMManagementPack #Baselineing Tasks Get-SCOMManagementPack -Name "System.BaseliningTasks.Library" | Remove-SCOMManagementPack #Process Monitoring Template Get-SCOMManagementPack -Name "Microsoft.SystemCenter.ProcessMonitoring.Library" | Remove-SCOMManagementPack #Summary Dashboard Template Get-SCOMManagementPack -Name "Microsoft.SystemCenter.GTM.Summary.Dashboard.Template" | Remove-SCOMManagementPack #Web Application Availability Monitoring - Note Many customers might still use this. Get-SCOMManagementPack -Name "Microsoft.SystemCenter.WebApplicationSolutions.Library.Resources.ENU" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.WebApplicationSolutions.Library" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.WebApplicationTest.Library" | Remove-SCOMManagementPack #Service Level Report Library Get-SCOMManagementPack -Name "Microsoft.SystemCenter.DataWarehouse.ServiceLevel.Report.Library" | Remove-SCOMManagementPack #APM Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Apm.NTServices" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Apm.Wcf" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Apm.Web" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.DataWarehouse.ApmReports.Library" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Apm.Infrastructure.Monitoring" | Remove-SCOMManagementPack Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Apm.Library" | Remove-SCOMManagementPack #APM Part 2 -- Need to remove secure reference override from "Microsoft.SystemCenter.SecureReferenceOverride" first Get-SCOMManagementPack -Name "Microsoft.SystemCenter.SecureReferenceOverride" | Export-SCOMManagementPack -Path "c:\temp" <# Delete --Start <Reference Alias="SystemCenter3"> <ID>Microsoft.SystemCenter.Apm.Infrastructure</ID> <Version>7.2.11719.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference> <SecureReferenceOverride ID="SecureOverridec1bf9736_b0e5_bae6_06d5_cc04a9472e5f" Context="SystemCenter3!Microsoft.SystemCenter.Apm.DataTransferService" Enforced="false" SecureReference="SystemCenter1!Microsoft.SystemCenter.DataWarehouse.ActionAccount"> <Value>0092C57E665DB6D9AE7FAD6FE9925AF96E41065C6000000000000000000000000000000000000000</Value> </SecureReferenceOverride> --End #> Import-SCOMManagementPack -Fullname "C:\Temp\Microsoft.SystemCenter.SecureReferenceOverride.xml" #This will only work if you have removed the secure reference override Get-SCOMManagementPack -Name "Microsoft.SystemCenter.Apm.Infrastructure" | Remove-SCOMManagementPack
For APM: You will need to manually remove the Secure Reference Override before you can delete “Microsoft.SystemCenter.Apm.Infrastructure” mp. Notes in are in the script as to what needs to be deleted.
My Core Environment:
Authoring Wizard – Much cleaner
Discovery Wizard – Notice Unix is gone
One of the most valuable management packs to remove would be the “System.NetworkManagement.Library” MP. But removing this MP breaks the Windows Computer discovery wizard.
Any issues, comments or ideas for removing additional management packs please leave them in the comments.