foreach ($esx in $(get-vmhost -Location (get-cluster '<cluster>') | ? {$_.State -eq 'Connected'})) {(get-view (get-vmhoststorage $esx).Id).StorageDeviceInfo.HostBusAdapter | % {if ($_.key -match 'FibreChannel') {if ($_.status -ne 'online') { Write-Host ("Host: {0} - HBA: {1} - WWNP: {2:X}" -f $esx.name,$_.Device,$_.PortWorldWideName) -Foreground Red} else { Write-Host ("Host: {0} - HBA: {1} - WWNP: {2:X}" -f $esx.name,$_.Device,$_.PortWorldWideName) -Foreground Green}}}}
Si en lugar de controlar los ESX que están en un cluster quereis controlar todos los ESX de vuestro datacenter simplemente teneis que eliminar la parte: -Location (get-cluster '<cluster>'). El OneLiner controla el estado de los servidores, de forma que sólo interroga a los ESX que están conectados actualmente al Virtual Center, sin tener en cuenta si el ESX está en modo mantenimiento o en modo desconectado.