本文目录导读:

获取无线网卡驱动的方法取决于你的操作系统,以下是针对 Windows 和 Linux 的脚本方法。
重要提示: 执行这些操作通常需要管理员/root权限,如果只是需要重新安装驱动,通常建议直接去笔记本或网卡品牌官网下载对应型号驱动,脚本更适合批量部署或自动化场景。
Windows (PowerShell)
Windows 下主要用两种思路:
- 查询当前驱动信息(如版本、供应商)用于备份或诊断。
- 自动下载/安装驱动(较复杂,通常借助第三方工具如
pnputil或Dism)。
获取当前无线网卡驱动详细信息
# 以管理员身份运行
# 方法A: 使用 Get-WmiObject (适用于旧版PS)
Get-WmiObject Win32_NetworkAdapter | Where-Object {$_.Name -like "*Wireless*" -or $_.Name -like "*Wi-Fi*" -or $_.Name -like "*802.11*"} | Select-Object Name, Manufacturer, Description, DriverVersion, PNPDeviceID
# 方法B: 使用 Get-NetAdapter (推荐,Windows 8/Server 2012+)
Get-NetAdapter -Name "*Wi-Fi*" | Get-NetAdapterHardwareInfo | Select-Object Name, DeviceType, DeviceID, VendorID
# 方法C: 获取驱动文件路径 (用于备份)
$wifi = Get-WmiObject Win32_PnPSignedDriver | Where-Object {$_.DeviceName -like "*Wireless*" -or $_.DeviceName -like "*Wi-Fi*"}
$wifi | Select-Object DeviceName, DriverVersion, DriverDate, InfName, DriverProviderName
# 导出驱动 (.inf 文件所在的文件夹)
# 批处理: dism /online /export-driver /destination:C:\DriversBackup
自动备份无线网卡驱动 (使用 dism)
# 需要管理员权限 $backupPath = "C:\DriversBackup\WiFi" # 创建备份文件夹 New-Item -ItemType Directory -Force -Path $backupPath # 使用 DISM 导出所有第三方驱动 (包括无线网卡) dism /online /export-driver /destination:$backupPath Write-Host "所有驱动已备份到 $backupPath,请手动筛选无线网卡相关 .inf 文件。"
自动安装或更新驱动 (使用 pnputil)
# 假设你已经有一个 .inf 文件 (C:\Drivers\netwfw00.inf)
# 管理员权限运行
pnputil /add-driver "C:\Drivers\netwfw00.inf" /install
# 批量安装文件夹内所有驱动
Get-ChildItem "C:\Drivers\*.inf" | ForEach-Object {
pnputil /add-driver $_.FullName /install
}
Linux (Bash)
Linux 下驱动通常集成在内核中(如 iwlwifi、ath9k、rtl88x2ce 等),脚本主要用于:
- 查询当前使用哪个内核模块。
- 检查硬件是否被识别。
- 自动编译安装第三方闭源驱动(如 Realtek RTL8821CE)。
查询无线网卡信息与内核模块
#!/bin/bash
# 需要 root 或 sudo
echo "===== PCI/USB 无线网卡硬件 ID ====="
# 查看所有网络设备
lspci -nn | grep -i network
# 查看 USB 无线网卡
lsusb | grep -i wireless
echo ""
echo "===== 当前使用的内核模块 ====="
# 查看无线网卡对应的驱动模块
lsmod | grep -E "iwl|ath|rtl|b43|brcm"
echo ""
echo "===== 详细驱动信息 ====="
# 使用 ethtool 查看 (假设无线网卡是 wlan0)
if command -v ethtool &> /dev/null; then
ethtool -i wlan0 2>/dev/null || echo "无法获取 wlan0 信息,请确认接口名称 (如 wlp2s0)"
fi
# 使用 hciconfig (如果是蓝牙)
# hciconfig
自动安装缺失的无线驱动 (Debian/Ubuntu 示例)
大多 Linux 发行版驱动是 非自由固件(non-free),脚本来自动检测并安装:
#!/bin/bash
# 检查是否 root
if [ "$EUID" -ne 0 ]; then
echo "请以 root 运行: sudo $0"
exit 1
fi
# 获取无线网卡的厂商 ID 和设备 ID
# Intel 的 Vendor: 8086, Device: 02F0
VENDOR=$(lspci -nn | grep -i network | grep -oP '\[\K[0-9a-fA-F]{4}:[0-9a-fA-F]{4}(?=\])' | head -1 | cut -d: -f1)
DEVICE=$(lspci -nn | grep -i network | grep -oP '\[\K[0-9a-fA-F]{4}:[0-9a-fA-F]{4}(?=\])' | head -1 | cut -d: -f2)
echo "检测到 PCI 无线网卡: Vendor=0x$VENDOR, Device=0x$DEVICE"
# 根据 Vendor 执行对应安装
case "$VENDOR" in
8086) # Intel
echo "Intel 无线网卡,安装 firmware-iwlwifi"
apt update && apt install -y firmware-iwlwifi
# 如果装了非自由固件源
# modprobe -r iwlwifi && modprobe iwlwifi
;;
10ec) # Realtek
echo "Realtek 无线网卡,尝试安装 rtl8821ce 或 rtw88 驱动"
# 可能需要从 GitHub 编译 (复杂)
apt install -y build-essential git dkms
# 示例: 安装 rtl8821ce
git clone https://github.com/tomaspinho/rtl8821ce.git
cd rtl8821ce
./dkms-install.sh
;;
14e4) # Broadcom
echo "Broadcom 无线网卡,安装 broadcom-sta-dkms"
apt install -y broadcom-sta-dkms
;;
*)
echo "未知厂商 (Vendor=0x$VENDOR),尝试安装通用 firmware-linux"
apt install -y firmware-linux
;;
esac
echo "完成,如果驱动已加载,尝试: nmcli radio wifi on"
一键脚本:检查并加载内核模块
#!/bin/bash
# 检测无线网卡驱动是否加载,未加载则尝试强制加载常见模块
DRIVER_LIST=("iwlwifi" "ath9k" "rtlwifi" "rtw88" "b43" "brcmfmac")
CARD_NAME=$(lspci -nn | grep -i network | head -1 | awk '{print $NF}')
echo "检测到无线网卡: $CARD_NAME"
for driver in "${DRIVER_LIST[@]}"; do
if lsmod | grep -q "^$driver"; then
echo "驱动 $driver 已加载。"
exit 0
fi
done
echo "未检测到已加载的无线驱动,尝试加载..."
for driver in "${DRIVER_LIST[@]}"; do
echo "尝试加载 $driver ..."
modprobe $driver 2>/dev/null
if [ $? -eq 0 ]; then
echo "成功加载 $driver"
# 检查网络接口是否出现
sleep 2
ip link show | grep -E "wl|wlan"
exit 0
fi
done
echo "所有常见驱动加载失败,请手动安装正确驱动。"
跨平台工具 (可选)
如果你需要更专业地处理驱动,可以尝试:
- Windows: SDI (Snappy Driver Installer) 的离线版,可命令行调用。
- Linux:
hwinfo --network、rfkill list配合dkms管理第三方驱动。
总结推荐
| 场景 | 推荐脚本 | 原理 |
|---|---|---|
| 只想看当前驱动 | Windows: Get-WmiObject |
查询系统驱动数据库 |
| 备份驱动 | dism /export-driver |
导出整个驱动包(.inf + .sys) |
| 在 Linux 上自动安装 | 根据 lspci -nn 的 Vendor ID 分支 |
针对 Intel/Broadcom/Realtek 调用包管理器 |
| 修复 Linux 驱动未加载 | modprobe 循环尝试 |
手动加载内核模块 |
谨慎操作: 在 Linux 上安装 Realtek 等闭源驱动时,最好先从官方 GitHub 仓库确认脚本兼容你的内核版本(uname -r),否则可能导致无法启动。