Thanks. I did read up a bit on fcinfo and was considering it for my 2003 servers. I've learned that 2008 includes much of the fcinfo functionality already. I don't know about command-line utilities, but if you're familiar with wmi then you can get everything you need, including the firmware (which was what I was looking for). The script below should work with 2003 servers that have fcinfo installed, but I've only tested it with 2008R2 servers that didn't.
astrServers=Array("server1", "server2")
For Each strServer In astrServers Call main(strServer) Next
Sub main(strServer) WScript.Echo "===" & strServer strWMI = "winmgmts:{impersonationLevel=impersonate}!\" & strServer & "\root/wmi" Set oWbemServices = GetObject(strWMI) Set enumSetAdapters = oWbemServices.InstancesOf("MSFC_FCAdapterHBAAttributes") Set enumSetPorts = oWbemServices.InstancesOf("MSFC_FibrePortHBAAttributes") nIndex = 0 On Error Resume next For Each oEltAdapter in enumSetAdapters sAdapterName = oEltAdapter.MfgDomain & _ " - " & oEltAdapter.Model & " - " & nIndex WScript.Echo "adapter: " & sAdapterName 'WScript.Echo " node_wwn: " & WWNToString(oEltAdapter.NodeWWN) WScript.Echo " node_firmware: " & oEltAdapter.FirmwareVersion 'WScript.Echo " node_manuf: " & oEltAdapter.Manufacturer 'WScript.Echo " node_serial: " & oEltAdapter.SerialNumber 'WScript.Echo " node_model: " & oEltAdapter.Model 'WScript.Echo " node_symbolicName: " & oEltAdapter.NodeSymbolicName 'WScript.Echo " node_driverversion: " & oEltAdapter.HardwareVersion 'WScript.Echo " node_optionROMVersion: " & oEltAdapter.OptionROMVersion 'WScript.Echo " node_firmwareVersion: " & oEltAdapter.FirmwareVersion 'WScript.Echo " node_vendorSpecificID: " & oEltAdapter.VendorSpecificID 'WScript.Echo " node_numPorts: " & oEltAdapter.NumberOfPorts 'WScript.Echo " node_DriverName: " & oEltAdapter.DriverName 'For Each oEltPort in enumSetPorts ' If (oEltAdapter.InstanceName = oEltPort.InstanceName) Then ' WScript.Echo "port " & Index ' WScript.Echo " port_wwn: " & WWNToString(oEltPort.Attributes.PortWWN) ' WScript.Echo ' nIndex = nIndex + 1 ' End If 'Next Next End sub
' (VBScript) Function WWNToString(arrayWWN) WWNToString = Hex0(arrayWWN(0)) For I = 1 To 7 WWNToString = WWNToString & ":" & Hex0(arrayWWN(I)) Next End Function
Function Hex0(n) Hex0 = Hex(n) If (n < &h10) Then Hex0 = "0" & Hex0 End Function
For 2003, I discovered that sdcli (the SnapDrive cli, which I have installed on almost all SAN-attached servers) includes hba_info.exe, which provides all the information I want. It requires a little more formatting, but the advantage for me is that I don't need to install anything else. I'm having trouble finding a resource to download a version of scli that is compatible with my QMH2462 cards, but since I have hba_info I don't think I need to think about it any further.
-----Original Message----- From: John Constable [mailto:jc18@sanger.ac.uk] Sent: Monday, June 18, 2012 5:29 AM To: Jon Hill Cc: toasters@teaparty.net Subject: Re: QLogic HBA firmware
On 15 Jun 2012, at 16:38, Jon Hill wrote:
We're in the middle of a fairly urgent process to review and remediate our servers' compatibility with onTAP 7.3.3p6. We've got everything we need except HBA firmware levels. Does anyone know of a good WMI query we could run against multiple servers that would return the HBA firmware level? Most of the HBAs are HP-OEM'd QMH2462, running under Window 2003 and 2008R2.
I'm looking into SANSurfer, but if I can avoid adding new software to my servers then that would be preferred.
Apologies if you've already seen and discounted this, but you may be able to get this via the FCInfo or SCLI programs, there's a powershell example here; http://theolddogscriptingblog.wordpress.com/2010/06/17/powershell-sans-excel...
You may be able to avoid installing the software by putting it on a read only share and calling the binary direct via UNC? Not tried myself (yet), but its something I'm looking into, so would be interested to hear if you got it working without s/w installs..
cheers
John
-- John Constable, Storage Team Wellcome Trust Sanger Institute, Wellcome Trust Genome Campus, Hinxton, Cambridge, UK
This e-mail, including any attachment(s), is intended solely for use by the named addressee(s). If you are not the intended recipient, you are not authorized to disclose, copy, distribute or retain this message, without written authorization from Jennison Associates LLC ("Jennison"). This e-mail may contain proprietary, confidential or privileged information. If you have received this message in error, please notify the sender immediately. If you have requested Jennison to e-mail any account information to you or your designee, you are deemed to have consented to electronic delivery of information from Jennison. E-mail messages are not secure and may contain computer viruses or other defects, may not be accurately replicated on other systems, or may be intercepted, deleted or interfered with without the knowledge of the sender or the intended recipient.