用脚本检测硬件驱动版本

wen 实用脚本 3

本文目录导读:

用脚本检测硬件驱动版本

  1. Windows 系统
  2. Linux 系统
  3. macOS 系统
  4. 使用说明

我来为您提供几个不同操作系统下检测硬件驱动版本的脚本方案。

Windows 系统

PowerShell 脚本

# 检测显卡驱动
Write-Host "=== 显卡驱动信息 ===" -ForegroundColor Green
Get-WmiObject Win32_VideoController | Select-Object Name, DriverVersion, DriverDate
# 检测网卡驱动
Write-Host "`n=== 网卡驱动信息 ===" -ForegroundColor Green
Get-WmiObject Win32_NetworkAdapter | Where-Object {$_.Manufacturer -ne "Microsoft"} | 
    Select-Object Name, DriverVersion, DriverDate, DeviceID
# 检测声卡驱动
Write-Host "`n=== 声卡驱动信息 ===" -ForegroundColor Green
Get-WmiObject Win32_SoundDevice | Select-Object Name, DriverVersion, DriverDate
# 检测所有设备驱动版本
Write-Host "`n=== 所有硬件驱动 ===" -ForegroundColor Green
Get-WmiObject Win32_PnPSignedDriver | Where-Object {$_.DeviceName -ne $null} |
    Select-Object DeviceName, DriverVersion, DriverDate, Manufacturer |
    Sort-Object DeviceName
# 输出到文件
$output = @()
$drivers = Get-WmiObject Win32_PnPSignedDriver | Where-Object {$_.DeviceName -ne $null}
foreach ($driver in $drivers) {
    $output += [PSCustomObject]@{
        DeviceName = $driver.DeviceName
        DriverVersion = $driver.DriverVersion
        DriverDate = $driver.DriverDate
        Manufacturer = $driver.Manufacturer
    }
}
$output | Export-Csv -Path "driver_report.csv" -NoTypeInformation -Encoding UTF8

VBScript 脚本

' 获取硬件驱动版本
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colDrivers = objWMIService.ExecQuery("SELECT * FROM Win32_PnPSignedDriver")
' 创建输出文件
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("driver_info.txt", True)
objFile.WriteLine "=== 硬件驱动信息报告 ==="
objFile.WriteLine "生成时间: " & Now()
objFile.WriteLine "========================"
objFile.WriteLine ""
For Each objDriver in colDrivers
    If Not IsNull(objDriver.DeviceName) Then
        objFile.WriteLine "设备名称: " & objDriver.DeviceName
        objFile.WriteLine "驱动版本: " & objDriver.DriverVersion
        objFile.WriteLine "驱动程序日期: " & objDriver.DriverDate
        objFile.WriteLine "提供商: " & objDriver.Manufacturer
        objFile.WriteLine "硬件ID: " & objDriver.HardwareID
        objFile.WriteLine "----------------------------------------"
    End If
Next
objFile.Close
WScript.Echo "驱动信息已保存到 driver_info.txt"

Linux 系统

Bash 脚本

#!/bin/bash
echo "=== 硬件驱动版本检测 ==="
echo "生成时间: $(date)"
echo "========================"
# 检测内核模块版本
echo -e "\n=== 内核模块 ==="
lsmod | while read -r line; do
    module_name=$(echo $line | awk '{print $1}')
    if [ -n "$module_name" ] && [ "$module_name" != "Module" ]; then
        mod_version=$(modinfo -F version $module_name 2>/dev/null)
        if [ -n "$mod_version" ]; then
            echo "模块: $module_name, 版本: $mod_version"
        fi
    fi
done
# 检测显卡驱动
echo -e "\n=== 显卡驱动 ==="
if command -v nvidia-smi &> /dev/null; then
    echo "NVIDIA 驱动版本:"
    nvidia-smi --query-gpu=driver_version --format=csv,noheader
fi
if lspci | grep -i "VGA" | grep -qi "AMD"; then
    echo "AMD 显卡驱动:"
    modinfo amdgpu 2>/dev/null | grep "^version:" || echo "未加载 AMD 驱动"
fi
# 检测网卡驱动
echo -e "\n=== 网卡驱动 ==="
for iface in /sys/class/net/*; do
    iface_name=$(basename $iface)
    if [ "$iface_name" != "lo" ]; then
        driver=$(readlink -f $iface/device/driver 2>/dev/null)
        if [ -n "$driver" ]; then
            echo "接口: $iface_name, 驱动: $(basename $driver)"
        fi
    fi
done
# 检测声音驱动
echo -e "\n=== 声音驱动 ==="
aplay -l 2>/dev/null || echo "请安装 alsa-utils"
# 输出到文件
{
    echo "=== 硬件驱动信息报告 ==="
    echo "生成时间: $(date)"
    echo "========================"
    echo -e "\n=== 系统信息 ==="
    uname -a
    echo -e "\n=== 加载的驱动模块 ==="
    dmesg | grep -i "driver" | tail -20
    echo -e "\n=== 所有设备驱动 ==="
    lspci -k
    echo -e "\n=== USB设备驱动 ==="
    lsusb -t
} > driver_report.txt
echo -e "\n报告已保存到 driver_report.txt"

macOS 系统

#!/bin/bash
echo "=== macOS 硬件驱动版本 ==="
# 系统扩展(驱动)
echo -e "\n=== 系统扩展 ==="
systemextensionsctl list
# 检测显卡驱动
echo -e "\n=== 显卡信息 ==="
system_profiler SPDisplaysDataType | grep -E "Chipset|VRAM|Vendor|Driver"
# 检测内核扩展
echo -e "\n=== 内核扩展 ==="
kextstat | grep -v "com.apple" | while read -r line; do
    driver_name=$(echo $line | awk '{print $6}')
    driver_version=$(echo $line | awk '{print $1}' | cut -d'(' -f2 | cut -d')' -f1)
    echo "驱动: $driver_name, 版本: $driver_version"
done
# 检测网络驱动
echo -e "\n=== 网络接口驱动 ==="
networksetup -listallhardwareports
# 输出到文件
{
    echo "=== macOS 驱动信息报告 ==="
    echo "生成时间: $(date)"
    echo "========================"
    echo -e "\n系统版本:"
    sw_vers
    echo -e "\n所有驱动信息:"
    system_profiler SPExtensionsDataType
    echo -e "\n显卡驱动:"
    system_profiler SPDisplaysDataType
} > mac_driver_report.txt
echo -e "\n报告已保存到 mac_driver_report.txt"

使用说明

  1. Windows PowerShell 脚本

    • 以管理员身份运行 PowerShell
    • 直接复制脚本执行
    • 会自动生成 CSV 报告文件
  2. Linux Bash 脚本

    chmod +x check_drivers.sh
    sudo ./check_drivers.sh
  3. macOS 脚本

    chmod +x check_mac_drivers.sh
    ./check_mac_drivers.sh

这些脚本会根据操作系统自动检测并报告主要的硬件驱动版本信息,方便您进行驱动版本管理和更新。

抱歉,评论功能暂时关闭!