I wanted to get a list of all disk sizes, insert this into a .csv file then email the file to a couple of recipients. Using Powershell, I wanted to get a list of all the production severs from a vCenter 5.5 server which were all located in a "Production" folder.
Add-PSSnapin VMware.VimAutomation.Core
Connect-VIServer -Server 172.17.5.1 -User 'jordansphere' -Password 'PASSWORD_HERE'
$VMs = Get-Folder 'Production' | Get-VM | Sort Name -descending
$Results = @()
foreach ($VM in $VMs) {
$Result = new-object PSObject
$Result | add-member -membertype NoteProperty -name "VM Name" -value $VM.Name
$VMDiskCount = 1
get-harddisk $VM | foreach {
$disk = $_
$Result | add-member -name "Disk($VMDiskCount)SizeGB" -value ([math]::Round($disk.CapacityKB / 1MB)) -membertype NoteProperty
$VMDiskCount++
}
$Results += $Result
}
$Results | select-object * | export-csv -notypeinformation C:\temp\VCBDiskReport.csv
Send-MailMessage -from "Sender Name <[email protected]>" `
-to "Recipient One <[email protected]>", `
"Recipient Two <[email protected]>" `
-subject "Hard Drives - VM Sizes" `
-body "Please find the output of all Production VMs and Hard Disk sizes" `
-Attachment "C:\temp\VCBDiskReport.csv" -smtpServer smtp.jordansphere.co.uk