0

We are standing up a new SCOM 2019 beside curent SCOM 2012 R2.

Will exporting an MP delete or disable the original MP in Ops console (SCOM 2012 R2)?

Considering exporting unsealed MP from SCOM 2012 R2 to import into SCOM 2019?,... would this be worth the effort to import these or is it better to import the latest MPs? These are old MPs and I have no idea of the interdepedencies because of custom MP for overrides,... does this make sense to start from the beginning with brand new latest MPs.

d1260
  • 81
  • 1
  • 1
  • 5

1 Answers1

0

I would recommend starting fresh with your MPs. You can use the following script to grab all the overrides in your environment. After you run the SCOM Data Collector check under the output zip file: CSV\Overrides.csv
https://aka.ms/SCOM-DataCollector

ALTERNATIVELY
You can also use the following TSQL Query to gather all the Overrides set in your SCOM Environment, run against the OperationsManager DB:

Select WorkflowType, WorkflowName, Overview.OverrideName, OverrideableParameterName, OverrideValue, OverrideDescription, OverrideEnforced, OverrideScope, TargetedInstanceName, TargetedInstancePath, ORMPName, ORMPDescription, ORMPSealed, MPTargetClass, TargetManagementPack, ModuleOverrideId, ORMPLanguage, OverrideLastModified, OverrideCreatedOn  from (
SELECT 'Rule'          AS 'WorkflowType',
       rv.displayname  AS WorkflowName,
       OverrideName,
       op.OverrideableParameterName,
       mo.value        AS OverrideValue,
       lt.ltvalue      AS OverrideDescription,
       mo.enforced     AS OverrideEnforced,
       mt.typename     AS OverrideScope,
       bme.displayname AS TargetedInstanceName,
       bme.path        AS TargetedInstancePath,
       mpv.displayname AS ORMPName,
       mpv.description AS ORMPDescription,
       mpv.sealed      AS ORMPSealed,
       mpv.LanguageCode AS ORMPLanguage,
       mo.lastmodified AS OverrideLastModified,
       mo.timeadded    AS OverrideCreatedOn
--op.TimeAdded AS MPTimeCreated
FROM moduleoverride mo
INNER JOIN managementpackview mpv
ON mpv.id = mo.managementpackid
INNER JOIN ruleview rv
ON rv.id = mo.parentid
INNER JOIN managedtype mt
ON mt.managedtypeid = mo.typecontext
LEFT JOIN localizedtext lt
ON lt.ltstringid = mo.moduleoverrideid
LEFT JOIN basemanagedentity bme
ON bme.basemanagedentityid = mo.instancecontext
LEFT JOIN overrideableparameter op
ON mo.overrideableparameterid = op.overrideableparameterid
--Where (lt.LTStringType = 2 and mpv.LanguageCode = 'ENU')
--Where (mpv.Sealed = 0 and mpv.LanguageCode = 'ENU')
--Where mpv.Sealed = 0
UNION ALL
SELECT 'Monitor'        AS 'WorkflowType',
       mv.displayname   AS WorkflowName,
       OverrideName,
       op.OverrideableParameterName,
       mto.value        AS OverrideValue,
       lt.ltvalue       AS OverrideDescription,
       mto.enforced     AS OverrideEnforced,
       mt.typename      AS OverrideScope,
       bme.displayname  AS TargetedInstanceName,
       bme.path         AS TargetedInstancePath,
       mpv.displayname  AS ORMPName,
       mpv.description  AS ORMPDescription,
       mpv.sealed       AS ORMPSealed,
       mpv.LanguageCode AS ORMPLanguage,
       mto.lastmodified AS OverrideLastModified,
       mto.timeadded    AS OverrideCreatedOn
--mpv.TimeCreated AS MPTimeCreated
FROM monitoroverride mto
INNER JOIN managementpackview mpv
ON mpv.id = mto.managementpackid
INNER JOIN monitorview mv
ON mv.id = mto.monitorid
INNER JOIN managedtype mt
ON mt.managedtypeid = mto.typecontext
LEFT JOIN localizedtext lt
ON lt.ltstringid = mto.monitoroverrideid
LEFT JOIN basemanagedentity bme
ON bme.basemanagedentityid = mto.instancecontext
LEFT JOIN overrideableparameter op
ON mto.overrideableparameterid = op.overrideableparameterid
--Where (lt.LTStringType = 2 and mpv.LanguageCode = 'ENU')
--Where (mpv.Sealed = 0 and mpv.LanguageCode = 'ENU')
--Where mpv.Sealed = 0
UNION ALL
SELECT 'Discovery'     AS 'WorkflowType',
       dv.displayname  AS WorkflowName,
       OverrideName,
       op.OverrideableParameterName,
       mo.value        AS OverrideValue,
       lt.ltvalue      AS OverrideDescription,
       mo.enforced     AS OverrideEnforced,
       mt.typename     AS OverrideScope,
       bme.displayname AS TargetedInstanceName,
       bme.path        AS TargetedInstancePath,
       mpv.displayname AS ORMPName,
       mpv.description AS ORMPDescription,
       mpv.sealed      AS ORMPSealed,
       mpv.LanguageCode AS ORMPLanguage,
       mo.lastmodified AS OverrideLastModified,
       mo.timeadded    AS OverrideCreatedOn
--mpv.TimeCreated AS MPTimeCreated
FROM moduleoverride mo
INNER JOIN managementpackview mpv
ON mpv.id = mo.managementpackid
INNER JOIN discoveryview dv
ON dv.id = mo.parentid
INNER JOIN managedtype mt
ON mt.managedtypeid = mo.typecontext
LEFT JOIN localizedtext lt
ON lt.ltstringid = mo.moduleoverrideid
LEFT JOIN basemanagedentity bme
ON bme.basemanagedentityid = mo.instancecontext
LEFT JOIN overrideableparameter op
ON mo.overrideableparameterid = op.overrideableparameterid
--Where (lt.LTStringType = 2 and mpv.LanguageCode = 'ENU')
--Where (mpv.Sealed = 0 and mpv.LanguageCode = 'ENU')
)Overview


LEFT JOIN (
SELECT mo.ModuleOverrideId, mo.OverrideName, mpv.DisplayName as 'MPTargetClass', mpv.FriendlyName as [TargetManagementPack] FROM ModuleOverride mo
INNER JOIN Managedtype mt on mt.ManagedTypeId = mo.TypeContext
INNER JOIN ManagementPackView mpv on mpv.ID = mt.ManagementPackId
Where mpv.LanguageCode = 'ENU'
) OverridesOverview ON OverridesOverview.OverrideName = Overview.OverrideName

ORDER BY OverrideLastModified DESC

Query Result

Doing this will keep you from adding back in potential issues from your SCOM 2012 R2 environment into the SCOM 2019 environment.

If you are doing a side-by-side migration, you should check out this post on side-by-side migrations:
https://learn.microsoft.com/en-us/answers/questions/167044/whats-the-best-practice-to-migrate-scom-2012-to-sc.html

Blake Drumm
  • 137
  • 1
  • 7