VMware vSphere ESXi 7.x
VMware vSphere ESXi 8.x
esxcli vsan debug controller list -v trueesxcli vsan debug controller list --used-by-vsan=true
esxcfg-scsidevs -aesxcli storage core adapter list
vmkload_mod -s HBADriver |grep Version vmkload_mod -s pvscsi | grep Version
for a in $(esxcfg-scsidevs -a |awk '{print $2}') ;do vmkload_mod -s $a |grep -i version ;done
esxcli storage san [fc|iscsi|fcoe|sas] list /usr/lib/vmware/vmkmgmt_keyval/vmkmgmt_keyval -d
Dumping all key-value instance names:
Key Value Instance: vmhba65/qlogic
Key Value Instance: vmhba64/qlogic
Key Value Instance: MOD_PARM_FCOE/qlogic
Key Value Instance: vmnic7/QLogic
Key Value Instance: vmnic6/QLogic
Key Value Instance: vmnic5/QLogic
Key Value Instance: vmnic4/QLogic
Key Value Instance: vmnic3/QLogic
Key Value Instance: QCNIC/qlogic
Key Value Instance: vmnic2/QLogic
Key Value Instance: vmnic1/QLogic
Key Value Instance: vmnic0/QLogic
/usr/lib/vmware/vmkmgmt_keyval/vmkmgmt_keyval -l -i vmhba64/qlogic
Listing keys:
Name: ADAPTER
Type: string
value: qfle3f-QLogic Offload FCoE:57840 v2.1.30.0 over vmnic2
ql_fcoe: v1.0.38.0 (Driver)
HBA:0x431205008000 for netdev:0000:37:00.2
Host Device Name vmhba64 (Physical)
Active NPIV Ports : 0
FW version = Storm: 7.13.20.0 MFW: 7.16.3 (Firmware)
vmkchdev -l |grep vmhba1esxcfg-info | less
vmware -vl
To determine the version information for a physical network interface card in vSphere ESXi:
esxcli network nic listesxcli network nic list
Name PCI Driver Link Speed Duplex MAC Address
vmnic0 00:02:04.00 ACME Up 1000Mbps Full ##:##:##:##:##:##
vmnic1 00:02:05.00 ACME Up 1000Mbps Full ##:##:##:##:##:##
esxcli network nic get -n vmnic#esxcli network nic get -n vmnic0/usr/lib/vmware/vm-support/bin/nicinfo.sh | lessvmkchdev -l |grep vmnicvmware -vlStep 1: Connect to vCenter
Run the following command to establish the session.
Note: Please replace VCENTER_IP/FQDN and the credentials with your actual environment details.
PowerShell :Connect-VIServer -Server "VCENTER_IP/FQDN" -User "[email protected]" -Password "XXXXX"
Step 2: Run Data Collection Script
Copy and run the block below. This script iterates through all hosts, uses Get-EsxCli V2 for performance, and fetches the specific driver and firmware versions.
PowerShell
$report = foreach ($esx in Get-VMHost) {
Write-Host "Processing $($esx.Name)..." -ForegroundColor Cyan
# Use -V2 for better performance and object handling
$esxcli = Get-EsxCli -VMHost $esx -V2
# Get the list of physical NICs
$nics = $esxcli.network.nic.list.Invoke()
foreach ($nic in $nics) {
# Fetch detailed driver info for each specific vmnic
$nicDetails = $esxcli.network.nic.get.Invoke(@{nicname = $nic.Name})
[PSCustomObject]@{
HostName = $esx.Name
NIC_Name = $nic.Name
Driver = $nicDetails.DriverInfo.Driver
DriverVersion = $nicDetails.DriverInfo.Version
FirmwareVersion = $nicDetails.DriverInfo.FirmwareVersion
Status = $nic.Link
Model = $nic.Description
}
}
}
# --- OPTION A: View in a popup window ---
$report | Out-GridView
# --- OPTION B: Export to CSV (Uncomment below to use) ---
# $report | Export-Csv -Path "C:\Temp\NIC_Report.csv" -NoTypeInformation
for name in `vmkchdev -l | grep vmhba | awk '{print$5}'`;do echo $name ; echo "VID :DID SVID:SDID"; vmkchdev -l | grep $name | awk '{print $2 , $3}';printf "Driver: ";echo `esxcfg-scsidevs -a | grep $name |awk '{print $2}'`;vmkload_mod -s `esxcfg-scsidevs -a | grep $name|awk '{print $2}'` |grep -i version;echo `lspci -vvv | grep $name | awk '{print $1=$NF="",$0}'`;printf "\n";done