#Create a local session for each vCenter server $vCenterSessions = New-Object System.Collections.ArrayList foreach ($vCenter in $Config.AppSettings.vCenters.HostName) { $vCenterSess...
See more...
#Create a local session for each vCenter server $vCenterSessions = New-Object System.Collections.ArrayList foreach ($vCenter in $Config.AppSettings.vCenters.HostName) { $vCenterSessions.add((New-PSSession -ComputerName localhost -Name $vCenter)) | out-null } $Config.AppSettings.vCenters.HostName is an array of vCenter servers gathered from an XML file. I have many more working examples of this using get-view. See below: ###Connect to each session to get VM info foreach ($SrvSession in $vCenterSessions) { Invoke-Command -session $SrvSession -ScriptBlock { ` $VMInfo = @() $VMInfo = Get-View -ViewType VirtualMachine -Property Guest.toolsVersionStatus, Config.Template, Runtime.PowerState, Config.guestfullname, Config.Version | Select-Object @{N="Tools Status";E={$_.Guest.toolsVersionStatus}}, @{N="Template";E={$_.Config.Template}}, ` @{N="Power State";E={$_.Runtime.PowerState}}, @{N="Guest OS";E={$_.Config.guestfullname}}, ` @{N="HW Version";E={$_.Config.Version}}, @{N="VI Server";E={$DefaultVIServer.Name}}, ` @{N="VM";E={$_.Name}} $VMInfo } -AsJob -HideComputerName } Get-Job | Wait-Job $VMInfo = @() $VMInfo += Get-Job | Receive-Job