<# .SYNOPSIS Usage report for VMware datastores. .DESCRIPTION Usage report for VMware datastores. .NOTES Requires VMware PowerCLI module. Requires connection to vCenter. .EXAMPLE Get-ITDVMwareDatastoreReport Retrieves a report of all datastores in the vCenter. .EXAMPLE Get-ITDVMwareDatastoreReport -Name "*78*" Retrieves a report of all datastores in the vCenter that match the name pattern "*78*". .PARAMETER Name The name of the datastore to retrieve. If not specified, all datastores will be returned. Supports wildcards. #> function Get-ITDVMwareDatastoreReport { [CmdletBinding()] param ( [string] $Name ) begin { } process { if ($PSBoundParameters.ContainsKey('Name')) { $AllDatastores = Get-Datastore -Name $Name } else { $AllDatastores = Get-Datastore } foreach ($Datastore in $AllDatastores) { $FreeSpaceGB = $Datastore.FreeSpaceGB $CapacityGB = $Datastore.CapacityGB $UsedSpaceGB = $CapacityGB - $FreeSpaceGB $obj = [PSCustomObject]@{ Name = $Datastore.Name; Datacenter = $Datastore.Datacenter.Name FreeSpaceGB = $FreeSpaceGB; UsedSpaceGB = ($CapacityGB - $FreeSpaceGB); CapacityGB = $CapacityGB; FreePercent = [math]::round($Datastore.FreeSpaceGB / $Datastore.CapacityGB * 100, 2); } #$null = $Result.Add($obj) Write-Output $obj } } end { } }