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
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
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
Thanks Luc