Get-Credential | Export-Clixml -Path C:\PowerCLI\PowerCLICredentials.xml #Domain Username ve Password bilgisini encrypted şekilde xml dosyasına yazdırmak için kullanılır. $Getcredentials= Import-Clixml -Path C:\PowerCLI\PowerCLICredentials.xml #Domain Username ve Password bilgisini xml dosyasından çekmek için kullanılır. $DomainUsername= $Getcredentials.UserName #Username bilgisini okur $DomainPassword= $Getcredentials.GetNetworkCredential().Password #Password bilgisini okur Connect-VIServer -Server vcsaist.mutlubalik.com -User $DomainUsername -Password $DomainPassword #vCenter'a bağlanmak için kullanılır. $LogFile= "c:\diskoperation1.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. $disk=200 #Eklenecek disk boyutunun belirtildiği kısımdır. $VMs = Import-Csv C:\Temp\servers.csv | Foreach -Process { $vmname= $_.VMName $freespace= (get-vm $_.VMName | Get-Datastore ).FreeSpaceGB $gbvalue =[math]::round($freespace) try { if ( $gbvalue -lt $disk ) { $boşalan= $disk-$gbvalue Write-Output "$TimeStamp $vmname sunucusunun bulunduğu datastore üzerinde $gbvalue GB boş yer bulunmaktadır. En az $boşalan GB daha gereklidir. Datastore'u extend ettikten sonra tekrar deneyiniz. " | out-file -FilePath "$LogFile" -Append } else { write-Output "$TimeStamp $vmname sunucusunun bulunduğu datastore üzerinde $gbvalue GB boş alan mevcuttur. Disk Ekleme İşlemi Başlatılıyor" | out-file -FilePath "$LogFile" -Append Get-VM $vmname | New-HardDisk -CapacityGB $disk | out-file -FilePath "$LogFile" -Append Write-Output "$TimeStamp $vmname sunucusuna $disk GB disk başarılı bir şekilde eklenmiştir. " | out-file -FilePath "$LogFile" -Append } } catch { Write-host "DİKKAT: Disk eklenemedi !!! $LogFile dizinindeki log dosyasını kontrol ediniz." -ForegroundColor Red Write-Output "$TimeStamp HATA: $TimeStamp $vmname sunucusuna disk eklenemedi !!! : " $Error[0] | Out-File -FilePath $LogFile -Append } }