VMware Cloud Community
tdubb123
Expert
Expert
Jump to solution

script not showing the correct DAtacenter for vms

I am trying to run this script but some VMs asre not displaying the correct datacenter

$vmProps = 'Name', 'guest.IPAddress','Guest.GuestFullName','Config.Version','Runtime.PowerState','Guest.Toolsstatus', 'guest.toolsversion'

$results = foreach($dc in Get-View -ViewType Datacenter -Property Name ){

  Get-View -ViewType VirtualMachine -SearchRoot $dc.MoRef -Property $vmProps |

   Select Name,

  @{N='OS';E={$_.Guest.GuestFullName}},

  #@{N='IP';E={$_.guest.IPAddress}},

  @{N='vHardware';E={$_.Config.Version}},

  @{N='Toolsstatus';E={$_.Guest.ToolsStatus}},

  @{N='ToolsVersion';E={$_.Guest.ToolsVersion}},

  @{N='Datacenter';E={$dc.Name}},

  @{N='PowerState';E={$_.Runtime.PowerState}},

  @{N='vCenter';E={([uri]$_.Client.ServiceUrl).Host}}

  }

$results | sort-object -property vcenter | Out-GridView

any idea?

I am connected to multiple vcenters but only one session

0 Kudos
1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

If you are connected to multiple vCenters, I would do like this

$vmProps = 'Name', 'guest.IPAddress','Guest.GuestFullName','Config.Version','Runtime.PowerState','Guest.Toolsstatus', 'guest.toolsversion'

$results = foreach($vc in $global:DefaultVIServers){

    foreach($dc in Get-View -ViewType Datacenter -Property Name -Server $vc){

      Get-View -ViewType VirtualMachine -SearchRoot $dc.MoRef -Property $vmProps -Server $vc |

      Select Name,

        @{N='OS';E={$_.Guest.GuestFullName}},

        @{N='IP';E={$_.guest.IPAddress}},

        @{N='vHardware';E={$_.Config.Version}},

        @{N='Toolsstatus';E={$_.Guest.ToolsStatus}},

        @{N='ToolsVersion';E={$_.Guest.ToolsVersion}},

        @{N='Datacenter';E={$dc.Name}},

        @{N='PowerState';E={$_.Runtime.PowerState}},

        @{N='vCenter';E={$vc.Name}}

    }

}

$results | sort-object -property vcenter | Out-GridView


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

View solution in original post

0 Kudos
2 Replies
LucD
Leadership
Leadership
Jump to solution

If you are connected to multiple vCenters, I would do like this

$vmProps = 'Name', 'guest.IPAddress','Guest.GuestFullName','Config.Version','Runtime.PowerState','Guest.Toolsstatus', 'guest.toolsversion'

$results = foreach($vc in $global:DefaultVIServers){

    foreach($dc in Get-View -ViewType Datacenter -Property Name -Server $vc){

      Get-View -ViewType VirtualMachine -SearchRoot $dc.MoRef -Property $vmProps -Server $vc |

      Select Name,

        @{N='OS';E={$_.Guest.GuestFullName}},

        @{N='IP';E={$_.guest.IPAddress}},

        @{N='vHardware';E={$_.Config.Version}},

        @{N='Toolsstatus';E={$_.Guest.ToolsStatus}},

        @{N='ToolsVersion';E={$_.Guest.ToolsVersion}},

        @{N='Datacenter';E={$dc.Name}},

        @{N='PowerState';E={$_.Runtime.PowerState}},

        @{N='vCenter';E={$vc.Name}}

    }

}

$results | sort-object -property vcenter | Out-GridView


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

0 Kudos
tdubb123
Expert
Expert
Jump to solution

Thanks Luc

0 Kudos