Hyper-V, PowerShell : List VMs without CPU compatibility enabled

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