PowerCLI ile vSphere HA tarafından reboot edilen sanal makineleri bulma

vSphere cluster’daki ESXi host’lardan birinda sorun olduğunda ve erişilemez olduğunda, o host üzerindeki sanal makineler, cluster içerisindeki diğer ESXi host’lar üzerinde yeniden başlatılır. Bu durumdan etkilenen sanal makineleri bulmak ve HTML olarak çıktı almak için aşağıdaki script’i kullanabilirsiniz.

$Header = @"
<style>
TABLE {border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;}
TH {border-width: 1px; padding: 3px; border-style: solid; border-color: black; background-color: #6495ED;}
TD {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@


Import-Module VMware.PowerCLI
$vmcredential = Import-Clixml -Path "${env:\userprofile}\Test-VMware.Cred"
Connect-VIServer 192.168.1.10 -Credential $vmcredential



Get-Cluster "Cluster Name" | Get-VM |
Get-VIEvent -start (Get-Date).AddMinutes(-190) |
where {$_.FullFormattedMessage -match "vSphere HA restarted virtual machine"} | Sort CreatedTime -Descending |
select CreatedTime,FullFormattedMessage | ConvertTo-Html -Property CreatedTime,FullFormattedMessage -Head $Header | Out-File c:\Script\HARestartedVMs.html | ft -AutoSize

Daha önce export ettiğimiz VMware vCenter credential bilgilerini kullanarak vCenter’a bağlanıyoruz. VMware credential bilgilerini export etmek için şuraya bakabilirsiniz.

-start (Get-Date).AddMinutes(-190) kısmındaki AddMinutes(-190) değeri, script’in çalıştığı andan itibaren geriye doğru 190 dakikayı gösterir. Bu değeri istediğiniz gibi değiştirebilirsiniz. AddMinutes yerine AddDays(-1) gibi bir değer de kullanabilirsiniz. Burada da geriye doğru 1 gün ifade edilir.

Script çalıştığında, c:\Script\ dizininde HARestartedVMs.html isimli bir dosya oluşturulacaktır.

IP, credential dosyası adı, ESXi host isimleri ve vSwitch isimlerini değiştirmeyi unutmayın.

Leave a Reply