Please enable Javascript for better experience...
 
Powershell Script - Get HBA/NIC Driver Information for Multiple ESXi Hosts
By Pranay Jha | Jun 6, 2017 | In Tips | Total Views [ 535 ]
(1 Like)
Rate

PowerCLI Script to get HBA/NIC Driver Information for Multiple ESXi Hosts and Pull Report in CSV File.

Part - 1

  • Get Driver Modules for HBA and NIC Hardware. To get this, execute below command for one of ESXi Host. Make sure you are connected with vCenter before executing.

$esxName = 'HostName'

$esxcli = Get-EsxCli -VMHost $esxName

foreach($dev in $esxcli.hardware.pci.list()){

    if($dev.ModuleName -ne 'None'){

        $esxcli.system.module.get($dev.ModuleName) |

        Select @{N='Device';E={$dev.DeviceName}},@{N='DeviceClass';E={$dev.DeviceClassName}},Module,Version

    }

}

  • You will get below output from above commands. Here we have HBA Hardware is running on "lpfc" and NIC on "elxnet" Module.
  • Now make a note of it. These hardware modules need to change in Part-2 script in place of "fnic" and "enic"

Part - 2

  • Replace "fnic" and "enic" in below script which you got from Part-1.

$report = Get-Datacenter | % {   

      $datacenter=$_

      foreach($esx in Get-VMhost -Location $datacenter){

        $esxcli = Get-EsxCli -VMHost $esx

        $nic = Get-VMHostNetworkAdapter -VMHost $esx | Select -First 1 | select -ExpandProperty Name

        $hba =Get-VMHostHBA -VMHost $esx -Type FibreChannel | where {$_.Status -eq "online"} |  Select -First 1 |select -ExpandProperty Name

        Get-VMHostHBA -VMHost $esx -Type FibreChannel | where {$_.Status -eq "online"} |

        Select @{N="Datacenter";E={$datacenter.Name}},

                @{N="VMHost";E={$esx.Name}},

                @{N="HostName";E={$($_.VMHost | Get-VMHostNetwork).HostName}},

                @{N="version";E={$esx.version}},

                @{N="Manufacturer";E={$esx.Manufacturer}},

                @{N="Hostmodel";E={$esx.Model}},

                @{Name="SerialNumber";Expression={$esx.ExtensionData.Hardware.SystemInfo.OtherIdentifyingInfo |Where-Object {$_.IdentifierType.Key -eq "Servicetag"} |Select-Object -ExpandProperty IdentifierValue}},

                @{N="Cluster";E={

                    if($esx.ExtensionData.Parent.Type -ne "ClusterComputeResource"){"Stand alone host"}

                    else{

                        Get-view -Id $esx.ExtensionData.Parent | Select -ExpandProperty Name

                    }}},

                Device,Model,Status,

                @{N="WWPN";E={((("{0:X}"-f $_.NodeWorldWideName).ToLower()) -replace "(\w{2})",'$1:').TrimEnd(':')}},

                @{N="WWN";E={((("{0:X}"-f $_.PortWorldWideName).ToLower()) -replace "(\w{2})",'$1:').TrimEnd(':')}},

              # @{N="Fnicvendor";E={$esxcli.software.vib.list() | ? {$_.Name -match ".*$($hba.hbadriver).*"} | Select -First 1 -Expand Vendor}},

                @{N="Fnicvendor";E={$esxcli.hardware.pci.list() | where {$hba -contains $_.VMKernelName} |Select -ExpandProperty VendorName }},

                @{N="fnicdriver";E={$esxcli.system.module.get("fnic").version}},

                @{N="enicdriver";E={$esxcli.system.module.get("enic").version}},

               # @{N="Enicvendor";E={$esxcli.software.vib.list() | ? {$_.Name -match ".net.*"} | Select -First 1 -Expand Vendor}}

                 @{N="Enicvendor";E={$esxcli.hardware.pci.list() | where {$nic -contains $_.VMKernelName} |Select -ExpandProperty VendorName }}

                 #@{N="Enicvendor";E={$esxcli.network.nic.list() | where {$vmnic.name -eq $_.vmnic1} | select -First 1 -ExpandProperty Description }}

      }

}

$report | Export-Csv report.csv -NoTypeInformation -UseCulture

Credit for this script is to Luc D.

Enjoy -:) . Let me know in case any suggestion or inputs.


Thanks for visiting here. Share this article if you found it useful.
Join Facebook Group https://www.facebook.com/groups/VMwareInsight/
Like Facebook Page https://www.facebook.com/VMwareInsight/
Connect to twitter https://twitter.com/VMwareInsight
Share this on Social Media

About the Author

Pranay Jha
Pranay Jha
Founder, Contributer VMwareInsight.com
Follow me

facebook linkedin twitter G+ VMTN

My name is Pranay Jha, working in IBM as Technical Solution Architect for Virtualization platform. I have been working in IT for near around 10 years. Passionate to get involved as an Independent blogger for my blog http://vmwareinsight.com. I am VMware vExpert 2016/2017, VCAP5-DCD/DCA, VCP5-DCV, VCA-Cloud, VCE-CIA, MCSE, MCITP, MCSA(Messaging). For any query or suggestion, please connect me at pranay1988jha@gmail.com. Thanks for visiting here.

 
Please SignUp/Login to comment...

Or comment as anonymous...
* Name
* Email ID
Comment
 
Sponsors
 
 
 
 
 
Facebook Likes