Você pode fazer isso facilmente com o powercli, pois há um cmdlet 'remove-shapshot':
$oneMonthAgo = (Get-Date).AddDays(-30)
Get-VM | Foreach-Object {
Get-Snapshot -VM $_ | Foreach-Object {
if($_.Created -lt $oneMonthAgo) {
Remove-Snapshot $_ -Confirm -WhatIf
}}}
Eu coloquei o -Confirm
e o -WhatIf
lá porque Remove-Snapshot
poderia causar muitos danos. Você quer ter certeza de que está direcionando os instantâneos corretos antes de remover esses parâmetros.