If you're here. Please take a minute to click on a AD. I know they are annoying but it gives me cash money, that I use to pay for things like hosting. Thank you. Now for the main attraction...
Its really annoying when you are working on a cluster and try and vacate a Hyper-V host only to find that some pain the arse hasn't been enabling CPU compatibility.
Here is a quick script that you can run from any cluster member that will give you a lovely list of all VM's that don't have this feature enabled.
$ClusterNodes = Get-ClusterNode
$VMsProcCompatFalse = @()
foreach($ClusterNode in $ClusterNodes)
{
$HostVmProcCompatFase = get-vm -ComputerName $ClusterNode | Get-VMProcessor | Where {$_.CompatibilityForMigrationEnabled -eq $false}
$VMsProcCompatFalse = $VMsProcCompatFalse + $HostVmProcCompatFase
}