driverqueryDRIVERQUERY Command Guide - List Installed Device Drivers in Windows
Learn how to use the driverquery command to display installed device drivers, their properties, and status in Windows CMD. Includes syntax, examples, and troubleshooting.
The driverquery command is a Windows Command Prompt utility that displays a list of all installed device drivers and their properties, including module name, display name, driver type, and state. Use it without parameters for a table view, or with /fo csv or /fo list for alternative formats. IT professionals and system administrators rely on driverquery for driver audits, troubleshooting hardware issues, and documenting system configurations.
Whether you're diagnosing driver conflicts, preparing for system migrations, or verifying that specific drivers are loaded after updates, driverquery provides a quick command-line snapshot of your system's driver landscape. Unlike Device Manager's graphical interface, driverquery enables scripting, remote execution, and output redirection for automation and reporting.
This comprehensive guide covers driverquery syntax, all output format options, practical examples for common scenarios, troubleshooting tips for driver-related issues, and frequently asked questions. By the end, you'll confidently audit and document device drivers from the command line for system administration and support tasks.
What Is the Driverquery Command?
The driverquery command has been part of Windows since Windows XP and is available in all modern Windows versions including Windows 11, Windows 10, and Windows Server. It queries the Windows Driver Model (WDM) and displays information about kernel-mode and user-mode drivers installed on the system.
Driverquery runs in Command Prompt (CMD) and requires administrator privileges for full output including signed driver information. Without elevation, it still displays basic driver information. The command is useful for scripting, remote administration, and generating driver inventories for compliance or migration documentation.
Driverquery Command Syntax
DRIVERQUERY [/S system] [/U username [/P password]] [/FO format] [/NH] [/V] [/SI]
Parameters and Switches
| Parameter | Description |
|---|---|
/S system | Specifies a remote computer name or IP address |
/U username | User context for connecting to remote system |
/P password | Password for the specified user (use * for prompt) |
/FO format | Output format: TABLE, LIST, or CSV |
/NH | Suppress column headers (TABLE and CSV only) |
/V | Verbose output with additional driver details |
/SI | Display signed driver information |
If you omit all parameters, driverquery displays drivers in table format with default columns.
Driverquery Output Formats
TABLE (Default)
The default table format displays drivers in a formatted table with columns for Module Name, Display Name, Driver Type, and State. Best for on-screen viewing and quick audits.
LIST
The list format displays one property per line, making it easier to parse in scripts or when searching for specific values.
CSV
The CSV format outputs comma-separated values ideal for importing into Excel, databases, or processing with scripting tools like PowerShell.
Practical Driverquery Command Examples
Display All Drivers in Default Table Format
To see all installed drivers in a table:
driverquery
Expected Output:
Module Name Display Name Driver Type State
============================== ============================== ============= ========
ntoskrnl.exe NT Kernel & System Kernel Running
ntfs.sys NTFS Kernel Running
tcpip.sys TCP/IP Protocol Driver Kernel Running
Explanation: This is the most common use—a quick overview of loaded drivers. Use this when you need to verify a driver is present or check its state.
Export Drivers to CSV for Documentation
To create a driver inventory file for documentation or migration planning:
driverquery /fo csv > C:\Reports\drivers.csv
Explanation: Redirects driver list to a CSV file. Open in Excel for sorting, filtering, or comparison with another system's driver list. Essential for IT asset documentation.
Display Drivers in List Format
For script parsing or detailed per-driver output:
driverquery /fo list
Explanation: List format outputs one property per line, making it easier to grep or parse in batch scripts when you need specific driver details.
Query a Remote Computer
To list drivers on a remote system (requires admin rights and network access):
driverquery /S SERVER01 /U DOMAIN\admin /P *
Explanation: Prompts for password and displays drivers from SERVER01. Use for remote troubleshooting or centralized driver audits across the network.
Suppress Headers for Clean Script Output
When piping or processing output in scripts:
driverquery /fo csv /nh
Explanation: The /nh (no header) switch removes the header row, useful when appending to files or when headers would interfere with parsing.
Verbose Output for Detailed Driver Information
To see additional driver properties including start type and path:
driverquery /v
Explanation: Verbose mode adds columns like Start Type and Path. Use when diagnosing why a driver failed to load or when you need full driver metadata.
Display Signed Driver Information
To include digital signature status for security audits:
driverquery /si
Explanation: Shows which drivers are signed. Important for security compliance and identifying unsigned or tampered drivers. Requires administrator privileges.
Combine Format and Redirect for Reports
Create a timestamped driver report:
driverquery /fo csv /nh >> C:\Logs\driver-audit-%date:~-4,4%%date:~-10,2%%date:~-7,2%.csv
Explanation: Appends driver list to a date-stamped file. Use in scheduled tasks for ongoing driver change tracking.
Filter Output with FINDSTR
Find only network-related drivers:
driverquery | findstr -i "tcpip net ndis"
Explanation: Pipes driverquery output to findstr to filter for network drivers. Useful when troubleshooting connectivity and you need to verify network stack drivers.
Compare Driver Lists Between Systems
Document drivers before and after an update:
driverquery /fo csv > before-update.csv
REM Apply Windows Update or driver update
driverquery /fo csv > after-update.csv
Explanation: Capture driver state before and after changes. Use diff tools or Excel to compare and identify newly added or updated drivers.
Common Use Cases for the Driverquery Command
-
Driver conflict troubleshooting – When a device fails or shows errors in Device Manager, use driverquery to verify the driver is loaded and check its state. Compare with a known-good system to identify missing or different drivers.
-
Pre-migration system documentation – Before migrating to new hardware or virtualizing a server, export the driver list to CSV for reference. Ensures you can replicate or update drivers on the target system.
-
Security and compliance audits – Use driverquery with
/sito verify signed drivers. Many compliance frameworks require documentation of installed software and drivers; driverquery provides an auditable snapshot. -
Identifying unsigned or problematic drivers – Unsigned drivers can cause stability issues or security risks. Regular driverquery audits help identify drivers that need updating or replacement.
-
Remote system inventory – Query multiple servers with driverquery
/Sin a loop to build a centralized driver inventory across your infrastructure. -
Post-patch verification – After applying Windows Updates or driver updates, run driverquery to confirm new drivers are present and in Running state.
-
Troubleshooting boot or startup issues – Verbose output shows driver start type (Boot, System, Auto, Manual). Identify drivers that load at boot when diagnosing startup failures.
-
Scripted health checks – Incorporate driverquery into monitoring scripts to detect unexpected driver changes or failures that could indicate compromise or misconfiguration.
-
Driver version tracking – Combine driverquery with other tools to track driver versions across deployments for consistency and rollback planning.
-
Support ticket documentation – When opening support tickets for hardware or driver issues, include driverquery output to give support engineers immediate context.
-
Virtual machine driver verification – After creating or cloning VMs, verify that virtualization drivers (e.g., vmbus, storflt) are present and running.
-
Kernel vs. user-mode driver identification – Use driverquery to distinguish kernel-mode drivers (more critical) from user-mode drivers when prioritizing troubleshooting efforts.
Tips and Best Practices
-
Run as Administrator for full output – Some driver properties, especially signed driver info, require elevated privileges. Right-click CMD and select "Run as administrator."
-
Use CSV for automation – When scripting driver audits, prefer
/fo csvfor easy parsing. Most scripting languages and tools handle CSV natively. -
Redirect output for large systems – Systems with many drivers produce lengthy output. Redirect to a file:
driverquery > drivers.txtto avoid buffer overflow and enable search. -
Combine with findstr for filtering – Pipe to findstr to narrow results:
driverquery | findstr "Running"shows only active drivers. -
Document before major changes – Always capture driverquery output before applying major updates, driver rollbacks, or hardware changes for comparison and rollback reference.
-
Use consistent formats in scripts – Stick to one format (e.g., CSV) across your scripts for predictable parsing and reporting.
-
Schedule periodic driver audits – Use Task Scheduler to run driverquery periodically and archive output for change tracking and compliance.
-
Verify remote connectivity first – Before querying remote systems, ensure WMI and firewall rules allow remote administration. Test with
pingandnet useif needed. -
Handle credentials securely – Avoid embedding passwords in scripts. Use
/P *to prompt, or use credential management solutions for automation. -
Cross-reference with Device Manager – For graphical verification, use Device Manager alongside driverquery. Device Manager shows device-level view; driverquery shows driver-level view.
Troubleshooting Common Issues
"Access is denied" When Running Driverquery
Problem: Driverquery fails or returns limited output with an access denied error.
Cause: Insufficient privileges. Some driver information requires administrator rights.
Solution: Run Command Prompt as Administrator. Right-click cmd.exe, select "Run as administrator," then run driverquery again.
Prevention: Always use elevated CMD when performing driver audits or including signed driver information.
Driverquery Returns No Output or Empty Results
Problem: Driverquery runs but produces no output or very few drivers.
Cause: WMI (Windows Management Instrumentation) may be stopped or corrupted. System may be in a minimal state (e.g., Safe Mode).
Solution: Start the WMI service: net start winmgmt. If WMI is corrupted, run winmgmt /resetrepository (requires reboot). In Safe Mode, many drivers are not loaded—this is expected.
Prevention: Ensure WMI is healthy and running before driver audits. Include WMI health in routine system checks.
Remote Query Fails with "RPC server is unavailable"
Problem: driverquery /S remotecomputer fails with RPC or network errors.
Cause: Firewall blocking WMI/RPC, WMI not running on remote system, or insufficient network permissions.
Solution: Enable "Windows Management Instrumentation (WMI)" exception in Windows Firewall on the remote computer. Verify WMI service is running: sc query winmgmt. Ensure you have admin rights on the remote system.
Prevention: Document firewall and WMI requirements for remote administration. Test connectivity with wmic /node:remotecomputer os get caption first.
Output Format Not Recognized
Problem: Using /fo with an invalid value causes an error.
Cause: Only TABLE, LIST, and CSV are valid. Typos or wrong casing may cause issues on some Windows versions.
Solution: Use exactly: driverquery /fo table, driverquery /fo list, or driverquery /fo csv. Case may matter on some systems.
Prevention: Stick to documented formats. When scripting, validate the format parameter before calling driverquery.
Driverquery Is Slow on Large Systems
Problem: Driverquery takes a long time to complete on systems with many drivers.
Cause: Large driver set, slow disk, or remote query over high-latency network.
Solution: Use /fo csv for slightly faster output. For remote systems, run driverquery locally on the target and copy the output file. Consider running during maintenance windows.
Prevention: Set expectations for query time. For very large environments, consider PowerShell's Get-WmiObject or CIM for more efficient queries.
Signed Driver Information Not Displayed
Problem: driverquery /si doesn't show signature information.
Cause: Running without administrator privileges, or system doesn't support the feature.
Solution: Run CMD as Administrator. On older Windows versions, /si may not be available—check with driverquery /?.
Prevention: Always elevate when using /si. Document Windows version compatibility for your scripts.
Related Commands
systeminfo – System Overview
systeminfo displays comprehensive system information including OS version, hardware, and hotfixes. Use systeminfo for high-level system context; use driverquery for driver-specific details.
When to use driverquery: Driver audits, troubleshooting driver conflicts, driver inventory. When to use systeminfo: General system identification, OS and patch level, hardware summary.
wmic – WMI Command-Line Tool
wmic can query drivers and other WMI data with more flexibility. Use wmic for custom WMI queries; driverquery is simpler for standard driver listing.
When to use driverquery: Quick driver list, standard formats, simple scripting. When to use wmic: Custom queries, filtering by specific driver properties, integration with other WMI data.
sc – Service Control
sc manages Windows services. Some drivers run as services. Use sc to start, stop, or configure driver services; use driverquery to list and inspect them.
When to use driverquery: List all drivers, audit driver state. When to use sc: Control specific driver services, change start type, query service status.
pnputil – PnP Utility
pnputil manages driver packages in the driver store. Use pnputil to add, remove, or enumerate driver packages; use driverquery to see what's currently loaded.
When to use driverquery: See loaded drivers. When to use pnputil: Manage driver store, add/remove driver packages, prepare drivers for deployment.
devcon – Device Console
devcon (from Windows Driver Kit) provides low-level device and driver management. Use devcon for enabling, disabling, or updating specific devices; use driverquery for listing and auditing.
When to use driverquery: Standard Windows tool, no extra installation. When to use devcon: Advanced device management, automation requiring device enable/disable.
Frequently Asked Questions
What does the driverquery command do?
Driverquery displays a list of all installed device drivers on a Windows system, including module name, display name, driver type (Kernel or User), and state (Running, Stopped, etc.). Use it for driver audits, troubleshooting, and system documentation.
How do I export driverquery results to a file?
Use output redirection: driverquery > drivers.txt for default format, or driverquery /fo csv > drivers.csv for CSV. For list format: driverquery /fo list > drivers.txt. Open the file in a text editor or Excel (for CSV).
Does driverquery require administrator privileges?
Driverquery works without admin rights for basic output, but administrator privileges are required for verbose output (/v) and signed driver information (/si). For full functionality, run CMD as Administrator.
Can driverquery list drivers on a remote computer?
Yes. Use driverquery /S computername /U username /P password to query a remote system. You need admin rights on the remote computer, and WMI must be accessible (firewall rules, WMI service running).
What is the difference between driverquery and Device Manager?
Device Manager is a graphical tool for managing devices and drivers interactively. Driverquery is a command-line tool for listing drivers, scripting, remote querying, and output redirection. Use Device Manager for configuration; use driverquery for auditing and automation.
How do I filter driverquery output for specific drivers?
Pipe driverquery to findstr: driverquery | findstr "tcpip" shows only lines containing "tcpip". For case-insensitive search: driverquery | findstr /i "network". Use findstr's regex for more complex filtering.
What output formats does driverquery support?
Driverquery supports three formats: TABLE (default), LIST, and CSV. Use /fo table, /fo list, or /fo csv. TABLE is best for viewing; LIST and CSV are better for scripting and importing into other tools.
How do I get signed driver information with driverquery?
Use driverquery /si to include signed driver information. This requires administrator privileges. The output indicates which drivers are digitally signed, important for security audits.
Why is driverquery slow on my system?
Systems with many drivers, slow storage, or remote queries over slow networks can make driverquery slow. Use /fo csv for slightly faster output. For remote systems, consider running driverquery locally on the target and copying the result.
Can I use driverquery in PowerShell?
Yes, driverquery runs in PowerShell since it invokes the same cmd.exe driverquery executable. For native PowerShell driver queries, use Get-WmiObject Win32_PnPSignedDriver or Get-CimInstance, but driverquery is simpler for quick listing.
How do I suppress the header row in driverquery output?
Use the /nh (no header) switch: driverquery /fo csv /nh or driverquery /fo table /nh. Useful when appending to files or when headers would interfere with script parsing.
What drivers does driverquery show?
Driverquery shows kernel-mode and user-mode device drivers installed on the system—the same drivers that appear in Device Manager but in a list format. It does not show applications or user-installed software, only system drivers.
Quick Reference Card
| Command | Purpose | Example Use Case |
|---|---|---|
driverquery | List all drivers (table) | Quick driver audit |
driverquery /fo csv | Output in CSV format | Export for Excel or scripts |
driverquery /fo list | Output in list format | Script parsing |
driverquery /fo csv /nh | CSV without headers | Append to reports |
driverquery /v | Verbose output | Detailed driver info |
driverquery /si | Signed driver info | Security audit |
driverquery /S server /U user /P * | Query remote system | Remote driver audit |
driverquery > drivers.txt | Save to file | Documentation |
driverquery | findstr "Running" | Filter by state | Active drivers only |
Try the Driverquery Command in Our Simulator
Practice the driverquery command safely in our Windows Command Simulator. Run driverquery, driverquery /fo csv, and other examples in your browser without affecting your system. Perfect for learning, testing commands before production use, or training IT staff.
Visit the Commands Reference for a full list of supported Windows CMD commands, including system information, networking, and administration utilities.
Summary
The driverquery command is an essential tool for listing installed device drivers in Windows Command Prompt. Use it without parameters for a quick table view, or with /fo csv or /fo list for scripting and documentation. The /v switch adds verbose details, and /si shows signed driver information for security audits—both require administrator privileges.
Key use cases include driver conflict troubleshooting, pre-migration documentation, compliance audits, remote system inventory, and post-patch verification. Combine driverquery with findstr for filtering, redirect output to files for reporting, and run it as Administrator for full functionality.
For related tasks, use systeminfo for system overview, wmic for custom WMI queries, sc for service control, and pnputil for driver store management. Master driverquery to efficiently audit and document your Windows driver landscape from the command line.