$VCServerName = Read-Host "VC Server" $output = Read-Host "Output file/path" $VC = Connect-VIServer $VCServerName $VMs = Get-VM | Sort Name Disconnect-VIServer -Confirm:$False $myCol = @() ForEach ($VM in $VMs) { $myObj = "" | Select VMName, HostName, Disk1Folder, Disk1File, Disk2Folder, Disk2File, Disk3Folder, Disk3File $myObj.VMName = $VM.Name $myObj.HostName = $VM.Guest.HostName.Split(".")[0].ToUpper() $myObj.Disk1Folder = $VM.HardDisks[0].FileName.Split(" /.")[1] $myObj.Disk1File = $VM.HardDisks[0].FileName.Split(" /.")[2] $myObj.Disk2Folder = $VM.HardDisks[1].FileName.Split(" /.")[1] $myObj.Disk2File = $VM.HardDisks[1].FileName.Split(" /.")[2] $myObj.Disk3Folder = $VM.HardDisks[2].FileName.Split(" /.")[1] $myObj.Disk3File = $VM.HardDisks[2].FileName.Split(" /.")[2] $myCol += $myObj } $myCol | Export-Csv -NoTypeInformation $output