Reply to Message

View discussion in a popup

Replying to:
LucD
Leadership
Leadership

You could get that information directly from the VirtualMachine object, no need to do a Get-HardDisk.

Something like this

$report = @()

foreach ($dc in Get-Datacenter) {

    foreach ($cluster in Get-Cluster -Location $dc){

      $vms = Get-view -ViewType VirtualMachine -SearchRoot $cluster.ExtensionData.MoRef

      foreach ($vm in $vms){

        $info = "" | select Datacenter, Name, ToolsStatus, NumCpu, MemoryMB, guestos, IPAddress, Datastore, DatastoreUsedGB

        $info.IPAddress = ($vm.Guest.net.IPAddress | where{$_} | Sort-Object -Unique) -join '|'

        $info.Datastore = (Get-View -Id $vm.Datastore -Property Name).Name -join '|'

        $info.DatastoreUsedGB = [math]::Round(($vm.Storage.PerDatastoreUsage.Committed | Measure-Object -Sum).Sum/1GB,1)

        $info.datacenter = $dc.name

        $info.Name = $vm.name

        $info.toolsstatus = $vm.guest.toolsstatus

        $info.NumCpu = $vm.Summary.config.NumCpu

        $info.MemoryMB = $vm.Summary.config.memorySizeMB

        $info.guestos = $vm.guest.guestfullname

        $report += $info

      }

    }

}

$report | export-csv "\Report.csv" -NoTypeInformation


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

View solution in original post