Back again, I’m going to ‘Identify orphaned agent properties’. For instance, does an agent still show up under Windows Computer, or more classes, like Windows Operating System? Typically we have handled this by using Holman’s purge blog.
First, my thanks to Kevin H, Mihai S from the SCOM PG, & Premier Support CSS, for their help. Let’s begin the ‘Identify orphaned agent properties’ discussion with ‘how’. First, how do you get an orphaned property? Second, how to you resolve?
Some example scenarios
- Server rebuilt with same name. New agent runs discovery, and creates new set of GUID’s in the database.
- The Monitoring Tab > Windows Computer view contains unhealthy <gray> server objects. Upon further inspection, the server does NOT show up in the Administration > Agent Managed view.
- Custom management pack authoring extends the Windows Computer class, or others (via SDK or PowerShell)
‘Identify and resolve’ orphaned agent properties
- Check for COMMIT or Overrides in management packs
PG recommended looking at Windows Computer extended class properties, and Connector Framework discoveries.
Microsoft.EnterpriseManagement.ConnectorFramework.IncrementalDiscoveryData.Commit()
or
Microsoft.EnterpriseManagement.ConnectorFramework.IncrementalDiscoveryData.Override()
Search for the ConnectorFramework
Search management packs (MP) via SCOM OpsDB (OperationsManager Database)
- Login to your SCOM OpsDB > New Query
select MPName, convert(xml, MPXML)
from ManagementPack
where
MPXML like ‘%Commit(%’ or
MPXML like ‘%Override(%’
Export management pack output or snag it/snippet screenshot
Example Snapshot from SQL query

FYI – mgmt packs above use %Commit(%, but not the connectorFramework
Correct discoveries that use ConnectorFramework
Replace Discoveries
Update discoveries that contain:
New-Object Microsoft.EnterpriseManagement.ConnectorFramework.IncrementalDiscoveryData.Commit()
New-Object Microsoft.EnterpriseManagement.ConnectorFramework.IncrementalDiscoveryData.Override()
Replace with:
New-Object -comObject MOM.ScriptAPI for discovery
Test discoveries that use Remove method
Microsoft.EnterpriseManagement.ConnectorFramework.IncrementalDiscoveryData.Remove()
Example management pack discovery script
Contains
$discovery = New-Object Microsoft.EnterpriseManagement.ConnectorFramework.IncrementalDiscoveryData
$discovery.RemoveInternal($Instance,$ClassInstance.GetClasses()[0])
$discovery.Commit($mg) <– This is the offender that causes the orphans
}