Simple PowerCLI to look for FC HBA adapters that are offline.
Write-Host "Getting all ESXi hosts"
$esxi_hosts = Get-Cluster | Get-VMHost -State Connected,Maintenance
foreach ($esxi_host in $esxi_hosts) {
$host_hbas = $esxi_host | Get-VMHostHba -Type FibreChannel | Sort-Object
foreach ($host_hba in $host_hbas) {
$host_hba_name = $host_hba.Name
$host_hba_status = $host_hba.Status
Write-Host $esxi_host - $host_hba_name - $host_hba_status
if ($host_hba_status -inotmatch "online") {
Write-Host "$esxi_host - $host_hba_name - $host_hba_status" -ForegroundColor Red
}
}
}