Fixlet/Analyses - Network Driver Version Matching Each Network Card (How?)

(imported topic written by SystemAdmin)

Hi Everyone,

I’m trying to make an Analyses that gives me the driver version(s) of each network interface.

If found a previous Relevance statement from http://forum.bigfix.com/viewtopic.php?id=1068

( ( value “DisplayName” of it as string ) & " # " & ( ( version of file ( pathname of windows folder & “” & ( value “ImagePath” of it as string ) ) ) as string )) of keys ( ( “HKLM\SYSTEM\CurrentControlSet\Services” & service key value name of it ) of active devices whose ( ( class of it = “Net” ) AND ( exists location information of it ) ) ) of registry as string

However it does not show me the driver versions across all our computers, so I am looking at recreating it again.

Currently I have got to the following point when using the QnA Fixlet Debugger,

Q: selects “* from Win32_PnPSignedDriver” of wmi

A: Description=Intel® 82579LM Gigabit Network Connection

A: DeviceClass=NET

A: DeviceID=PCI\VEN_8086&DEV_1502&SUBSYS_21CE17AA&REV_04\3&42FFD25&0&C8

A: DeviceName=Intel® 82579LM Gigabit Network Connection

A: DevLoader

A: DriverDate=20101221000000.******+***

A: DriverName

A: DriverProviderName=Intel

A: DriverVersion=11.8.84.0

Now I would like to match the Description with the following Driver Version. So in the example above I would like it to read {Description} - {DriverVersion} (Output Example - Intel® 82579LM Gigabit Network Connection - 11.8.84.0)

Is this possible?

(imported comment written by neonblue)

I am sort of doing the same thing. I’m just pulling the driver version specifically of my wireless adapters throughout our fleet. So my wireless adapters had 3 key characteristics (centrino,wifi,wireless) of DriverDesc key, these are taken care of in the OR’s then when one matches it pulls the value of the DriverVersion key. Unfortunately i have to multiply this out for each subkey 0001,0002, etc. But that was just a lot of copy and paste. I’m new to all of this and this was the only way I could get this done since i could not find a recurs/find and pull value of registry function. Hopefully this helps others or someone can school me on an easier way.

if((exists keys “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4D36E972-E325-11CE-BFC1-08002BE10318}\0000” whose (exists values whose(name of it = “DriverDesc” AND it as string as lowercase contains “centrino” as lowercase ) of it) of registry)

OR

(exists keys “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4D36E972-E325-11CE-BFC1-08002BE10318}\0000” whose (exists values whose(name of it = “DriverDesc” AND it as string as lowercase contains “wifi” as lowercase ) of it) of registry)

OR

(exists keys “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4D36E972-E325-11CE-BFC1-08002BE10318}\0000” whose (exists values whose(name of it = “DriverDesc” AND it as string as lowercase contains “wireless” as lowercase ) of it) of registry))

then

(value “DriverVersion” of key “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4D36E972-E325-11CE-BFC1-08002BE10318}\0000” of registry as string)

else

“No wireless adapter”

(imported comment written by neonblue)

Sorry double post take out the *'s next to the if.