This script gives you a gridview with the differences, as well as an CSV output file.
#Compares unsealed/sealed MP's between two management groups
#Author: Michiel Wouters
#Date: 23-03-2016
[CmdletBinding()]
Param(
[Parameter(Mandatory=$False)]
[string]$ms1="server1", # A management server of the source environment, default value
[Parameter(Mandatory=$False)]
[string]$ms2="server2", # A management server of the target environment, default value
[Parameter(Mandatory=$False)]
[boolean]$Sealed=$True
)
New-SCOMManagementGroupConnection -ComputerName $ms1
$mmgtgrpconn1 = Get-SCOMManagementGroupConnection -ComputerName $ms1
New-SCOMManagementGroupConnection -ComputerName $ms2
$mmgtgrpconn2 = Get-SCOMManagementGroupConnection -ComputerName $ms2
Set-SCOMManagementGroupConnection -Connection $mmgtgrpconn1
$mgmtgrp1mps = Get-SCOMManagementPack | ? {$_.Sealed -eq $Sealed} | Select DisplayName, Name, Version | Sort DisplayName
Set-SCOMManagementGroupConnection -Connection $mmgtgrpconn2
$mgmtgrp2mps = Get-SCOMManagementPack | ? {$_.Sealed -eq $Sealed} | Select DisplayName, Name, Version | Sort DisplayName
#set SynWindow for compare object
if($mgmtgrp2mps.Count -gt $mgmtgrp1mps.count) {
$SyncWindow = [math]::Ceiling($mgmtgrp2mps.Count/2)
} else {
$SyncWindow = [math]::Ceiling($mgmtgrp1mps.Count/2)
}
$comparison = Compare-Object -ReferenceObject $mgmtgrp1mps -DifferenceObject $mgmtgrp2mps -Property DisplayName, Name, Version -SyncWindow $SyncWindow | Sort DisplayName
#output to screen
$comparison | Out-GridView
#output to csv file
$comparison | Export-CSV -Path .\SCOM_MPDiff_$(Get-Date -Format "yyyyMMdd_HHmm").csv -NoTypeInformation -Delimiter ";"
Screenshots:


