Connect-VIServer -Server vcenter.domain.com -User $DomainUsername -Password $DomainPassword #vCenter'a bağlanmak için kullanılır. $LogFile= "c:\HWUpgrade.txt" #Log dizininin belirtildiği kısımdır. $TimeStamp = Get-Date -Format "dd/MM/yy HH:mm:ss" #Log dosyasına tarih/saat yazmak için kullanılır. $VMs = Import-Csv -Path C:\Temp\servers.csv -UseCulture | select -ExpandProperty VMName $hwupgradeversion= "vmx-19" Foreach ($VM in $VMs ) { $hwstatus= Get-VM -Name $VM | select Name, HardwareVersion $hwversion= $hwstatus.HardwareVersion try { if ($hwversion -lt "vmx-19" ) { write-Output "$TimeStamp $VM sunucusunun hw versiyonu $hwversion dur." | out-file -FilePath "$LogFile" -Append Write-Output "$TimeStamp $VM sunucusunun hw upgrade işlemi yapılacaktır. Çalışma öncesinde sunucuda snapshot alınacaktır." | out-file -FilePath "$LogFile" -Append Get-VM -Name $VM| New-Snapshot -Name BeforeHWUpgrade -Description "$DomainUsername tarafından alınmıştır." -Confirm:$false Write-Output "$TimeStamp $VM sunucusunun snapshot'ı alınmıştır." | out-file -FilePath "$LogFile" -Append Shutdown-VMGuest -VM $VM -Confirm:$false Write-Output "$TimeStamp $VM sunucusu kapatılmıştır ." | out-file -FilePath "$LogFile" -Append .\timeout.exe /t 60 Set-VM -VM $VM -HardwareVersion $hwupgradeversion -ErrorAction Stop -Confirm:$false $hwstatus= Get-VM -Name $VM | select Name,HardwareVersion $hwversion= $hwvervison.HardwareVersion Write-Output "$TimeStamp $VM sunucusunun hw versiyonu $hwversion olmuştur " | out-file -FilePath "$LogFile" -Append Write-Output "$TimeStamp $VM sunucusu start edilecektir." | out-file -FilePath "$LogFile" -Append Start-VM -VM $VM Write-Output "$TimeStamp $VM sunucusu start edilmiştir." | out-file -FilePath "$LogFile" -Append } else { write-Output "$TimeStamp $VM sunucusunun hw versiyonu günceldir hwversion: $hwversion" | out-file -FilePath "$LogFile" -Append } } catch { Write-host "DİKKAT: hw versiyonu upgrade edilemedi !!! $LogFile dizinindeki log dosyasını kontrol ediniz." -ForegroundColor Red Write-Output "$TimeStamp HATA: $TimeStamp $VM sunucusunda hw versiyonu upgrade edilemedi.!!! : " $Error[0] | Out-File -FilePath $LogFile -Append } }