LucD
Leadership
Leadership

Try like this

function get-mysummary() {

   param(

   [VMware.VimAutomation.ViCore.Types.V1.Inventory.Folder]$Folder,

   [switch]$Recursion = $false

   )


   $vms = Get-VM -Location $Folder -NoRecursion:(-not $Recursion)


   if ($vms.Count -gt 0) {

   $vms | Select Folder, Name,

   @{N = "IP Address"; E = {@($_.guest.IPAddress[0])}},

   @{N = "VM PowerState"; E = {@($_.PowerState)}},

   @{N = "OS"; E = {@($_.guest.OSFullName)}},

   @{N = "CPU"; E = {@($_.NumCPU)}},

   @{N = "Memory (GB)"; E = {@($_.MemoryGB)}},

   @{N = "Provisioned (GB)"; E = {[math]::Round($_.provisionedspacegb)}},

   @{N = "FreeSpace(GB)"; E = {

   $script:vdiskFree = ($_.Guest.Disks | Measure-Object -Property FreeSpaceGB -Sum).Sum

   $script:vdiskCapacity = ($_.Guest.Disks | Measure-Object -Property CapacityGB -Sum).Sum

   [math]::Round($script:vdiskCapacity, 0)}},

   @{N = "FreeSpace(%)"; E = {[math]::Round($script:vdiskFree / $script:vdiskCapacity * 100, 0)}},

   @{N = "UsedSpace(GB)"; E = {[math]::Round($script:vdiskCapacity - $script:vdiskFree, 0)}}

   }

}


Get-Folder |

   ForEach-Object -Process {

   get-mysummary -Folder $_

}


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

View solution in original post

Reply
0 Kudos