首页 > 焦点 > 正文

命令行怎么查看已安装驱动列表?Windows、macOS、Linux 三平台实操

2026-10-24 22:52:17 · 韬光敛彩网 · 休闲 · 阅读 959

电脑出现显卡不识别、命令网卡掉线、行查外设插上没反应时,看已很多人第一反应是安装打开设备管理器点一圈。但如果你在远程 SSH 里、驱动在批量排查多台机器,列表或者想快速导出一份驱动清单存档,台实图形界面就不够用了。命令命令行查看驱动的行查好处是:结果可复制、可筛选、看已可对比,安装出问题时也方便把输出贴给同事或厂商支持。驱动下面按 Windows、列表macOS、台实Linux 三个平台,命令把常用命令和容易踩的坑讲清楚。

先说明一个概念:所谓“已安装驱动列表”,在不同系统里含义并不完全一样。Windows 更强调“已加载的内核驱动模块”和“设备对应的驱动文件”;Linux 的驱动大多以内核模块形式存在;macOS 则把驱动信息封装在系统扩展里,普通用户能看到的细节有限。所以不要指望一条命令走遍天下,按系统选方法才靠谱,具体字段含义以本机系统版本和官方文档为准。

Windows:用 driverquery 和 pnputil 两条主线

最直接的是 driverquery。打开命令提示符或 PowerShell(普通权限即可),输入 driverquery 回车,会列出模块名、显示名、驱动类型和链接日期。信息比较长,建议加参数:driverquery /v 输出更详细的版本与路径,driverquery /fo csv > drivers.csv 直接导出成表格文件,方便用 Excel 筛选。注意 /v 在部分精简系统上可能提示参数不可用,这时退回默认输出即可。

如果关心的是“这台机器装过哪些第三方驱动包”,用 pnputil /enum-drivers 更合适。它会列出驱动包的发布名称、原始名称、提供商、类和版本,第三方的显卡、打印机、USB 驱动通常都能看到。这个命令需要管理员权限的命令行窗口,否则可能报拒绝访问。想按类过滤,可以配合 findstr,例如只看显示类相关条目,就把输出管道接给 findstr /i display。

还有一个常被忽略的角度:查某个设备到底用了哪个驱动文件。在 PowerShell 里可以用 Get-PnpDevice 列出设备及状态,再结合 Get-PnpDeviceProperty 查具体属性。命令较长、字段偏底层,适合有一定基础的人。若只是想确认“驱动有没有装上”,看设备状态是否为 OK 通常就够了。失败分支也要知道:如果命令提示“不是内部或外部命令”,多半是环境变量被改过,改用完整路径或换 PowerShell 重试。

macOS:system_profiler 是主力,kextstat 看内核扩展

在 macOS 上,终端输入 system_profiler SPSoftwareDataType 可以看到系统概览,但查驱动更常用的是 system_profiler SPExtensionsDataType,它会列出系统扩展的名称、版本、来源和是否已加载。输出可能很长,建议重定向到文件:system_profiler SPExtensionsDataType > ~/Desktop/ext.txt,再用文本编辑器搜索关键词,比如显卡厂商名或网卡型号。

另一个命令是 kextstat,用于查看当前已加载的内核扩展。新版 macOS 对第三方内核扩展限制越来越严,很多驱动改成了系统扩展形式,所以 kextstat 的结果可能比你预期的少,这不代表没装驱动,而是架构变了。另外苹果芯片与 Intel 机型在扩展加载策略上也有差异,遇到“列表里看不到某设备”的情况,先确认系统版本和芯片类型,再判断是否正常。涉及系统扩展的启用与放行,以“系统设置—隐私与安全性”中的实际界面为准。

Linux:lsmod、lspci、modinfo 组合使用

Linux 下查看已加载驱动模块,第一条命令通常是 lsmod,它输出模块名、占用内存大小和被谁引用。模块名往往比较短,比如显卡相关常见 nvidia、amdgpu、i915,网卡常见 e1000e、iwlwifi。想确认硬件与驱动的对应关系,用 lspci -k 最直观:它会先列出 PCI 设备,再在下面标注“正在使用的内核驱动”和可用的内核模块,一眼就能看出某块网卡有没有绑定驱动。

如果想知道某个模块的详细信息,用 modinfo 模块名,可以看到版本、作者、许可证和文件路径。反过来,想查“这个设备本该用哪个驱动”,可以用 lspci -nn 拿到厂商与设备 ID,再去核对发行版文档。注意 lsmod 只显示“当前已加载”的模块,编译进内核而非以模块形式存在的驱动不会出现在列表里,这是常见误判点。不同发行版的内核版本差异较大,具体模块命名以本机 uname -r 对应的内核为准。

结果看不懂或命令报错时怎么办

第一,先确认权限。Windows 的 pnputil、Linux 的部分查询命令、macOS 的某些系统扩展信息,都可能需要管理员或 sudo 权限,权限不足时的报错通常是“拒绝访问”而不是“命令不存在”。第二,确认输出被截断。终端缓冲区有限,长列表建议直接重定向到文件再查看,避免滚动时漏掉关键行。第三,注意“已安装”和“已加载”的区别:驱动包存在不代表当前生效,设备正常工作的判断依据应是设备状态和实际功能,而不是列表里有没有名字。

另外提醒一点:本文给的命令用于查看和排查,不建议在不清楚作用的情况下随意卸载或禁用驱动模块,尤其是存储、网络和显卡相关模块,误操作可能导致无法进入系统或失去网络。需要更新驱动时,优先通过系统自带的更新入口或硬件厂商官方渠道获取,不要从来源不明的站点下载。涉及政务、医疗等专业设备的驱动问题,应以设备厂商和主管单位的官方说明为准。

小结一下可执行步骤:Windows 先用 driverquery /fo csv 导出全量清单,再用 pnputil /enum-drivers 看第三方驱动包;macOS 用 system_profiler SPExtensionsDataType 导出后搜索;Linux 用 lsmod 看已加载模块、lspci -k 看设备绑定关系。把这三条路径记下来,下次排查驱动问题就不必只依赖图形界面了。