
The following script looks for snapshots on each VM in a vCenter environment. If the snapshot is 3 day old (or older), it will delete it. Well, I've got the -WhatIf switch on the remove command, so it won't actually delete anything unless you remove -WhatIf. You can also remove the -Confirm switch so it won't prompt you as it goes.
I put this together from bits and pieces I found on the web, so thanks for the help y'all.
$vcenter = "my-vcenter" $maxAge = (Get-Date).AddDays(-3) if (get-pssnapin vmware*) { # we're good } else { Add-pssnapin VMWare.VimAutomation.Core } Connect-VIServer $vcenter $found=0 Get-VM | Foreach-Object { $vmname = $_.Name Get-Snapshot -VM $_ | Foreach-Object { $snapshot = $_.Id $size = "{0:N3}" -f $_.SizeGB if($_.Created -lt $maxAge) { if($found -eq 0){ $found = 1 "`nVM Name `tSnapShot ID `tSize (GB)`tDate Created" "----------------------------------------------------------------------------" } "$vmname`t$snapshot`t$size`t" + $_.Created Remove-Snapshot $_ -Confirm -WhatIf } } } if($found -eq 0){ "`nNo old snapshots found!" } Disconnect-VIServer -Confirm:$False
No comments:
Post a Comment