This is the solution that should be done first before any other solution. Just remove the lingerging backup checkpoint like you would a normal one via PowerShell (attention: check that you have a minimum of free space for the merge to be done without problems):
Get-VMSnapshot -VMName "VMWithLingeringBackupCheckpoint" | Remove-VMSnapshot
Just for the record: This command deletes all checkpoints
To count the number of snapshots/checkpoints for each VM in a Hyper-V host, you can use PowerShell. Here’s a refined version of your script that will do just that:
$vms = Get-VM foreach ($vm in $vms) { $snapshotCount = (Get-VMSnapshot -VMName $vm.Name).Count Write-Output "$($vm.Name): $snapshotCount" }
Explanation:
Get-VMSnapshot fetches the snapshots, and .Count gives the number of snapshots.