命令行查看已安装驱动版本怎么查:Windows、Linux、macOS 实操指南
装完显卡、命令网卡或打印机驱动后,行查很多人只知道"设备能用了",看已却不清楚系统里实际加载的安装是哪个版本。需要排查兼容性问题、驱动比对厂商官网更新、版本给多台机器做资产盘点时,实操命令行查看已安装驱动版本就比一层层点开图形界面高效得多。指南本文按 Windows、命令Linux、行查macOS 三类常见系统,看已给出可直接复制的安装命令、输出怎么看,驱动以及查不到或结果对不上时该怎么排查。版本
先说一个容易踩的实操坑:驱动版本在不同工具里的显示口径并不完全一致。厂商官网下载页写的是"驱动包版本",系统里显示的可能是"驱动日期 + 版本号"或"内核模块版本"。两者不一定相同,也不代表装错了。核对时以同一台机器上的系统界面或官方说明为准,遇到明显冲突再进一步确认。
Windows:用 pnputil 和 PowerShell 查驱动版本
Windows 10/11 自带的 pnputil 是最省事的入口。以管理员身份打开"终端"或"命令提示符",输入 pnputil /enum-drivers,系统会列出所有第三方驱动包,每个条目包含"发布名称""原始名称""提供程序""类""版本""签名者"。其中"版本"就是你驱动包的实际版本号,"原始名称"里的 .inf 文件名能帮你判断它属于显卡、网卡还是芯片组。
如果列表太长,可以配合管道筛选。在 PowerShell 里执行 pnputil /enum-drivers | Select-String -Pattern "Display|Net" -Context 0,6,就能只看显示类和网络类相关段落。想按设备反查,用 Get-PnpDevice 列出设备后,再用 Get-PnpDeviceProperty -InstanceId "设备实例ID" -KeyName DEVPKEY_Device_DriverVersion 取版本,适合写脚本批量采集。
另一个常用组合是 wmic path win32_pnpsigneddriver get devicename,driverversion,driverdate。它输出直观,但 wmic 在新版系统中已逐步弃用,能跑通就用,跑不通优先切到 PowerShell 的 CIM 写法:Get-CimInstance Win32_PnPSignedDriver | Select-Object DeviceName,DriverVersion,DriverDate。这条命令对普通用户更快,缺点是条目多,建议加 | Where-Object { $_.DeviceName -like "*NVIDIA*"} 之类的条件缩小范围。
失败分支也要提前知道:提示"拒绝访问"通常是没有用管理员身份运行;执行 pnputil 只看到少量条目,多是因为它默认聚焦第三方驱动包,系统内置驱动不全部列出,此时改用 CIM 查询更完整;输出里出现多个同名设备,说明同一硬件有多个实例(比如双网卡),要按"设备实例 ID"区分,别把两个版本混成一个。
Linux:按发行版选命令,看清内核模块与驱动包
Linux 上"驱动"常以内核模块形式存在,所以查看方式分两条线。第一条看已加载模块:lsmod 列出模块名、大小和被引用次数;配合 modinfo 模块名(例如 modinfo nvidia 或 modinfo iwlwifi)能看到 version、filename、license、依赖等字段,version 就是该模块的版本。若 modinfo 提示找不到模块,先确认模块名拼写,再用 modinfo -F filename 模块名 看内核实际加载的路径。
第二条线看发行版包管理器里的驱动包版本,因为显卡、无线网卡驱动往往以软件包形式分发。Debian/Ubuntu 系用 apt list --installed | grep -i nvidia,或更精确地 dpkg -l | grep -i firmware;RHEL/CentOS/Fedora 系用 rpm -qa | grep -i nvidia;Arch 系用 pacman -Q | grep -i nvidia。这些命令列出的是"安装的包版本",与 modinfo 显示的模块版本可能不同,两者都看一遍才完整。
查看内核与硬件信息时,uname -r 给出当前内核版本,lspci -k 会显示每个 PCI 设备正在使用的内核驱动和模块名,这对排查"设备在但驱动没加载"特别有用。dmesg | grep -i 驱动关键词 则能看到加载过程中的报错,比如固件缺失或版本不匹配。多数发行版需要 sudo 才能读取完整 dmesg,具体权限以系统提示为准。
macOS:用 system_profiler 和 kextstat 定位
macOS 图形界面里"系统信息"能看到部分驱动信息,命令行对应的是 system_profiler SPSoftwareDataType SPHardwareDataType,以及更细的 system_profiler SPUSBDataType、system_profiler SPAirPortDataType、system_profiler SPDisplaysDataType。显卡相关条目里会显示芯片组、厂商和驱动信息,但苹果对第三方驱动版本的暴露程度有限,能查到的字段以实际输出为准。
内核扩展可用 kextstat 查看已加载的扩展列表,配合 kmutil showloaded(较新系统)获取更完整信息。需要注意的是,Apple 芯片机型与 Intel 机型在驱动加载机制上差异较大,部分命令的输出结构并不一致;如果你在较新系统上执行 kextstat 提示命令不存在或结果为空,属于正常现象,改用系统信息应用查看更稳妥。
结果对不上时,按这个顺序排查
小结一下:Windows 优先用 pnputil /enum-drivers 和 Get-CimInstance Win32_PnPSignedDriver,Linux 用 lsmod 加 modinfo 再看包管理器,macOS 用 system_profiler 系列命令。把这几条命令存成自己的速查清单,下次核对驱动版本时不必再翻设置菜单。涉及系统关键驱动更新时,建议先备份重要数据,并以设备厂商和系统官方的说明为最终依据。