PowerShell ile VMware vCenter üzerindeki bir sanal sunucunun snapshot’ını almak için, VMware’in PowerCLI modülünü kullanabilirsiniz. PowerCLI, VMware altyapınızı yönetmek için PowerShell üzerinde komutlar ve işlevler sağlar.
Eğer henüz yüklemediyseniz, PowerCLI modülünü PowerShell üzerinden yüklemeniz gerekmekte, bunun için Powershell ISE’yi “Run as Administrator” olarak başlatıp aşağıdaki komutu kullanabilirsiniz.
1 |
Install-Module -Name VMware.PowerCLI |
PowerCLI modülünü yükledikten sonra, vCenter sunucunuza bağlanmanız gerekiyor.
1 |
Connect-VIServer -Server 'vcenter_server_adresi' -User 'kullanıcı_adı' -Password 'şifre' |
Powershell ile Snapshot Nasıl Alınır?
PowerCLI modülünü yükleyip, vCenter’a bağlandıktan sonra snapshot alınacak sunucunun bilgisi aşağıdaki şekilde doldurulmalıdır.

1 2 3 4 5 |
Connect-VIServer -Server 'vcenter_server_adresi' -User 'kullanıcı_adı' -Password 'şifre' $vm = "WIN10TEST" # Snapshot’u alınacak sunucunun hostname bilgisi $snapshotname = $vm + "-Powershell ile Snapshot alma" # VM ismi + Snapshot ismi write-host "Creating snapshot [$snapshotname] for the VM [$vm]" $snapstatus = New-Snapshot -vm $vm -name $snapshotname -confirm:$false -runasync:$true |
İlgili alanlar doldurulduktan sonra, F5 ile script çalıştırılır ve aşağıdaki gibi vCenter üzerinde snapshot’un başladığı görülür.

Snapshot alma işlemi tamamlandıktan sonra, scriptte belirtilen VM+Snapshot ismi şeklinde snapshot’ımız oluşur.

Powershell ile Snapshot Nasıl Silinir?
Powershell kullanarak aldığımız snapshot’ı, tekrar powershell kullanarak silelim.

1 2 3 4 5 6 |
# 1 adet VM'in snapshot'ını silinmesi için; $vm = "WIN10TEST" $snapshotname = $vm + "-Powershell ile Snapshot alma"# Remove Snapshot $snap = get-Snapshot -vm $vm -name $snapshotname write-host "Removing snapshot [$snapshotname] for the VM [$vm]" remove-snapshot -snapshot $snap -confirm:$false -runasync:$true |
İlgili alanlar doldurulduktan sonra, F5 ile script çalıştırılır ve aşağıdaki gibi vCenter üzerinde “Remove snapshot” job’ının başladığı görülür.
*snapshotname satırı, snapshot alırken kullanılan satırda verilen bilgiler ile eşleşmesi gerekmektedir, aksi taktirde snapshot ismi uyuşmadığı için script hata verecektir.

Powershell scripti çalışıp, tamamlandıktan sonra ilgili sanal sunucunun snapshot’ı silinmiş olacaktır.
