脚本如何检测显卡驱动版本

wen 实用脚本 1

本文目录导读:

脚本如何检测显卡驱动版本

  1. Windows 系统 (PowerShell)
  2. Windows 系统 (CMD/Batch)
  3. Linux 系统 (Bash)
  4. Python 跨平台脚本
  5. JavaScript (Node.js)
  6. 注册表查询 (Windows)
  7. 注意事项

脚本检测显卡驱动版本的方法取决于操作系统和使用的脚本语言,以下是几种常见场景的解决方案:

Windows 系统 (PowerShell)

# 方法1:使用 WMI 查询
Get-WmiObject Win32_VideoController | Select-Object Name, DriverVersion
# 方法2:使用 CIM 查询 (PowerShell 5+)
Get-CimInstance -ClassName Win32_VideoController | Select-Object Name, DriverVersion
# 方法3:获取NVIDIA驱动版本
nvidia-smi --query-gpu=driver_version --format=csv,noheader

Windows 系统 (CMD/Batch)

@echo off
REM 方法1:使用wmic
wmic path win32_videocontroller get name,driverversion
REM 方法2:只输出版本号
for /f "skip=1 tokens=2" %%i in ('wmic path win32_videocontroller get driverversion') do set DRIVER_VER=%%i
echo Driver Version: %DRIVER_VER%

Linux 系统 (Bash)

# 方法1:NVIDIA
nvidia-smi --query-gpu=driver_version --format=csv,noheader
# 方法2:AMD (需要安装rocm-smi)
rocm-smi --showdriverversion
# 方法3:Intel
cat /sys/module/i915/version
# 方法4:通用方法 - 使用lshw
lshw -class display -short 2>/dev/null | grep -i "vga" | awk '{print $NF}'
# 方法5:解析Xorg日志
grep "Driver version" /var/log/Xorg.0.log

Python 跨平台脚本

import subprocess
import platform
def get_gpu_driver_version():
    system = platform.system()
    if system == "Windows":
        try:
            import wmi
            c = wmi.WMI()
            for gpu in c.Win32_VideoController():
                return {
                    "name": gpu.Name,
                    "driver_version": gpu.DriverVersion
                }
        except:
            # 使用nvidia-smi作为备选
            result = subprocess.run(
                ["nvidia-smi", "--query-gpu=driver_version", "--format=csv,noheader"],
                capture_output=True, text=True
            )
            if result.returncode == 0:
                return {"driver_version": result.stdout.strip()}
    elif system == "Linux":
        # 尝试nvidia-smi
        result = subprocess.run(
            ["nvidia-smi", "--query-gpu=driver_version", "--format=csv,noheader"],
            capture_output=True, text=True
        )
        if result.returncode == 0:
            return {"driver_version": result.stdout.strip()}
        # 尝试lshw
        result = subprocess.run(
            ["lshw", "-class", "display", "-short"],
            capture_output=True, text=True
        )
        if result.returncode == 0:
            for line in result.stdout.split('\n'):
                if 'VGA' in line or '3D' in line:
                    return {"info": line.strip()}
    elif system == "Darwin":  # macOS
        result = subprocess.run(
            ["system_profiler", "SPDisplaysDataType"],
            capture_output=True, text=True
        )
        for line in result.stdout.split('\n'):
            if "Driver Version" in line:
                return {"driver_version": line.split(":")[-1].strip()}
    return None
# 使用
info = get_gpu_driver_version()
if info:
    print(f"GPU Info: {info}")

JavaScript (Node.js)

const { exec } = require('child_process');
const os = require('os');
function getGPUDriverVersion() {
    return new Promise((resolve, reject) => {
        const platform = os.platform();
        if (platform === 'win32') {
            // Windows - 使用PowerShell
            exec('powershell "Get-WmiObject Win32_VideoController | Select-Object Name, DriverVersion"', 
                (error, stdout, stderr) => {
                    if (error) reject(error);
                    resolve(stdout);
                });
        } else if (platform === 'linux') {
            // Linux - 使用nvidia-smi
            exec('nvidia-smi --query-gpu=driver_version --format=csv,noheader', 
                (error, stdout, stderr) => {
                    if (error) reject(error);
                    resolve(stdout.trim());
                });
        } else if (platform === 'darwin') {
            // macOS
            exec('system_profiler SPDisplaysDataType | grep "Driver Version"', 
                (error, stdout, stderr) => {
                    if (error) reject(error);
                    resolve(stdout.trim());
                });
        } else {
            reject(new Error('Unsupported platform'));
        }
    });
}
// 使用
getGPUDriverVersion()
    .then(version => console.log('Driver Version:', version))
    .catch(err => console.error('Error:', err));

注册表查询 (Windows)

REM NVIDIA驱动版本
reg query "HKLM\SOFTWARE\NVIDIA Corporation\Global\Driver" /v "Version" 2>nul
REM AMD驱动版本
reg query "HKLM\SOFTWARE\AMD\CN" /v "DriverVersion" 2>nul
REM Intel驱动版本
reg query "HKLM\SOFTWARE\Intel\Display" /v "DriverVersion" 2>nul

注意事项

  1. 权限问题:某些方法需要管理员/root权限
  2. 驱动类型:NVIDIA、AMD、Intel有不同的查询方法
  3. 系统差异:Windows/Linux/macOS命令不同
  4. 虚拟环境:虚拟机中可能无法正确获取

选择适合你操作系统和使用场景的方法即可。

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