Thoughts from the EPS Windows Server Performance Team
Useful Microsoft Blogs
Hello AskPerf! Blake here to discuss an internal command line tool called DriverQuery. What exactly is DriverQuery? I’m glad you asked. In a nutshell, DriverQuery is a command line tool that displays a list of all installed device drivers and their properties. Let’s check out its options and some examples. When you type “DriverQuery /?” from a command prompt, the following appears:
Now let’s take a look at some DriverQuery examples:
Show all installed device drivers which includes Module Name, Display Name, Driver Type, and Link Date
*To display addition columns (see below), add the “/V” switch
Module Name, Display Name, Description, Driver Type, Start Mode, State, Status, Accept Stop, Accept Pause, Paged Pool, Code(bytes, BSS(by, Link Date, Path, Init(bytes
Show all installed device drivers in a list view
C:\>Driverquery.exe /fo list
Do not list the column header
Find drivers that are not signed
C:\>Driverquery.exe /si | findstr FALSE
Find drivers that are currently Running
C:\>Driverquery.exe /v |findstr Running
For most of these commands, you may want to add the “>” command redirection option to output the results to a .txt file. For example:
C:\>Driverquery.exe /v > C:\results.txt
Great tool that let's you quickly check the current version of any driver. Very handy when you want to upgrade a system driver and want to compare the currently installed ones with the ones in a hotfix!
DriverQuery is a nice tool but it's read-only by definition. If you need to modify something (e.g. update or replace a driver) using command-line interface you go either with PNPUtil or DevCon. Please see social.technet.microsoft.com/.../how-to-manage-device-drivers-with-command-line.aspx for features and differences.
Yes, I agree. I meant that if you need to update, say mrxsmb20.sys on a file server, you can quickly check which version is currently installed and compare it to the version in the latest hotfix. :)
Unfortunately, when it comes to “check... the latest hotfix” it surprisengly becomes a very tough task. For instance, for Hyper-V I'm maintaining such a list: social.technet.microsoft.com/.../3150.aspx. The same is true for clustering: social.technet.microsoft.com/.../3153.aspx. But for other Windows components there are no such lists. So it becomes increadingly hard to determine which exactly hotfix is the “latest” to date.
Nice tool. Can we expect it to be merged with Powershell one day ?
Good question, to which if I knew I could not answer. Sorry!
You can do it today by querying WMI from Windows PowerShell. For instance, you could use the “Win32_PnPSignedDriver” class (msdn.microsoft.com/.../aa394354) or find something more appropriate.