VMware Cloud Community
esxi1979
Expert
Expert

VM disk report : VM disk provisioned size, used sized , free size

LucD

I saw a script from you.

$FinalResult = @()

foreach($vm in Get-View -ViewType "VirtualMachine" -Filter @{'Name'='stat'}){

       $totalCapacity = $totalFree = 0

       $vm.Guest.Disk | %{

            $object = New-Object -TypeName PSObject

            $Capacity = "{0:N0}" -f [math]::Round($_.Capacity / 1MB)

            $totalCapacity += $_.Capacity

            $totalFree += $_.FreeSpace

            $Freespace = "{0:N0}" -f [math]::Round($_.FreeSpace / 1MB)

            $Percent = [math]::Round(($FreeSpace)/ ($Capacity) * 100)

            $PercentFree = "{0:P0}" -f ($Percent/100)

            $object | Add-Member -MemberType NoteProperty -Name "Server Name" -Value $vm.Name

            $object | Add-Member -MemberType NoteProperty -Name Disk -Value $_.DiskPath

            $object | Add-Member -MemberType NoteProperty -Name "Capacity MB" -Value $Capacity

            $object | Add-Member -MemberType NoteProperty -Name "Free MB" -Value $FreeSpace

            $object | Add-Member -MemberType NoteProperty -Name "Free %" -Value $PercentFree

            $finalResult += $object

        }

        $object = New-Object -TypeName PSObject

        $object | Add-Member -MemberType NoteProperty -Name "Server Name" -Value $vm.Name

        $object | Add-Member -MemberType NoteProperty -Name Disk -Value 'SubTotal'

        $object | Add-Member -MemberType NoteProperty -Name "Capacity MB" -Value ("{0:N0}" -f ($totalCapacity/1MB))

        $object | Add-Member -MemberType NoteProperty -Name "Free MB" -Value ("{0:N0}" -f ($totalFree/1MB))

        $object | Add-Member -MemberType NoteProperty -Name "Free %" -Value ("{0:P0}" -f ($totalFree/$totalCapacity))

        $finalResult += $object

    }

$finalResult | Export-Csv "C:\DiskUsageReport.csv" -NoTypeInformation  -UseCulture    # dump the report to .csv

Get-VM xx |Get-HardDisk , even that does not show this. Also i did some google

Get-VM |Select Name,ProvisionedSpaceGB,UsedSpaceGB, gives the info, and very fast too !!!

How can i add get-view to get same info.

Final o/p

1. vm name

2. cluster name

3. Data Center name

4. ProvisionedSpaceGB ( rounded )

5. used space ( rounded )

6. Free space in %

7. Free space in GB

8. Thin or Thick provisioned

9. vm has snapshot

10. snapshot size

11. vmdk file path

12. vmx file path

13. total number of disks

14. Hostname ( I have some vm on standlone - no drs - , so hostname may make some sens to have )

Thanks

Tags (1)
0 Kudos
1 Reply
LucD
Leadership
Leadership

The script you mention looks at the disk information from within the guest OS, provided through VMware Tools.

Some of the properties you are looking for are properties that belong to the VMDK.

I'm afraid that I currently do not know of a fool-proof method to link guest OS partitions to VMDK.


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos