This is an old revision of the document!
This script need to be executed via PowerCLI
#Remove user and pass for pass-through auth Connect-VIServer -Server <HOSTNAME> $allvminfo = @() $vms = Get-Vm foreach($vm in $vms){ $vminfo = "" | Select Name, Host, Network, PowerState, CPUCount, RAMAssigned, ProvisionedSpace, UsedSpace, UnusedSpace $VMHost = Get-VM $vm.Name | select Host $VMHost = $VMHost.Host $VMNetwork = Get-VM $vm.Name | Select {@($_.guest.IPAddress[0])} $VMNetwork = $VMNetwork.Network $VMPowerState = Get-VM $vm.Name | select PowerState $VMPowerState = $VmPowerState.PowerState $CPUCount = Get-VM $vm.Name | select NumCpu $CPUCount = $CPUCount.NumCpu $RAMAssigned = Get-VM $vm.Name | select MemoryGB $RAMAssigned = $RAMAssigned.MemoryGB $vmview = Get-VM $vm.Name | Get-View $ProvisionedSpace = Get-VM $vm.Name | select ProvisionedSpaceGB $ProvisionedSpace = $ProvisionedSpace.ProvisionedSpaceGB $ProvisionedSpace = [math]::round($ProvisionedSpace, 2) $vmview.Storage.PerDatastoreUsage.Committed.gettype() $UsedSpace = [math]::round(($vmview.Storage.PerDatastoreUsage.Committed/1024/1024/1024), 2) $UsedSpace =$UsedSpace.ToString() $UsedSpace = $UsedSpace + " GB" $UnUsedSpace = [math]::round(($vmview.Storage.PerDatastoreUsage.UnCommitted/1024/1024/1024), 2) $UnUsedSpace =$UnUsedSpace.ToString() $UnUsedSpace = $UnUsedSpace + " GB" $ProvisionedSpace =$ProvisionedSpace.ToString() $ProvisionedSpace = $ProvisionedSpace + " GB" $vminfo.Name = $vm.Name $vminfo.Host = $VMHost $vminfo.Network = $VMNetwork $vminfo.PowerState = $VMPowerState $vminfo.CPUCount = $CPUCount $vminfo.RAMAssigned = $RAMAssigned $vminfo.ProvisionedSpace = $ProvisionedSpace $vminfo.UsedSpace = $UsedSpace $vminfo.UnUsedSpace = $UnUsedSpace $allvminfo += $vminfo } $allvminfo | Select Name, Host, Network, PowerState, CPUCount, RAMAssigned, ProvisionedSpace, UsedSpace, UnusedSpace | Export-Csv "C:\Temp\VMinfos.csv" -noTypeInformation