List and Remove Snapshots with Powershell

Merhaba,

Bu yazım da Powershell üzerinden PowerCLI’a bağlanıp burdan vmware ortamında alınan snapshotların listelenmesi ve silinmesi konusunda yazdığım komuttan bahsedeceğim. Snapshot konusu çoğu zaman gözümüzden kaçan performans problemlerine sebep olmaktadır.

Powershell üzerine powerCLI module yükleme ve ilgili servera bağlanatı sağlama ile başlıyoruz.

Add-PSSnapin VMware.VimAutomation.Core
connect-VIServer PoweCLIserverIP

Aşağıda ki satırda $vm değişkenine belirlediğimiz conditiona uyan snapshotları atıyoruz.
Belirlediğimiz conditionlar ise alınan snapshot “1 günden önceyse” ve snapshot “10 GB boyutunu geçmesi”.

$vms = Get-VM | Get-Snapshot | Where {$_.Created -lt (Get-Date).AddDays(-1)} | where {$_.SizeMB -gt "10240"} | Select-Object VM, Created, SizeMB

Foreach döngüsü içinde $vm atadığımız snapshotların silinme işleminin yapıldığı satırdır.

foreach($item in $vms) {Get-VM $item.VM | Get-Snapshot | Remove-Snapshot -confirm:$false}

Geri dönüşü olmayan bu işlemi gerçekleştirirken dikkatli olmanızı öneriyorum. 🙂