怎么用脚本获取主板集成信息

wen 实用脚本 2

本文目录导读:

怎么用脚本获取主板集成信息

  1. Windows 系统
  2. Linux 系统
  3. 获取“集成”信息的特殊场景
  4. 跨平台通用脚本 (Python 示例)

获取主板集成信息(如制造商、型号、序列号、BIOS版本等)通常需要借助操作系统的底层接口,这里提供 Windows 和 Linux 下的几种主流脚本方法。

重要提示:部分信息(如序列号、UUID)需要 管理员/root 权限才能读取。


Windows 系统

推荐使用 PowerShell,它是 Windows 下最强大且无需额外安装的脚本工具。

使用 WMI 获取基本信息

# 获取主板制造商、型号、序列号
Get-WmiObject Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber, Version
# 获取 BIOS 信息(也属于主板集成)
Get-WmiObject Win32_BIOS | Select-Object Manufacturer, Name, SerialNumber, SMBIOSBIOSVersion

示例输出:

Manufacturer Product           SerialNumber     Version
------------ -------           ------------     -------
LENOVO       20KGS0DV00        PF2N3K8Z         SDK0J40697 WIN

使用 CIM (替代 WMI,更现代)

Get-CimInstance -ClassName Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber

一行命令输出所有主板信息(适合脚本)

Write-Output "主板型号:$(Get-CimInstance Win32_BaseBoard).Product, 制造商:$(Get-CimInstance Win32_BaseBoard).Manufacturer, 序列号:$(Get-CimInstance Win32_BaseBoard).SerialNumber"

使用 wmic (已弃用,但通用)

wmic baseboard get product,manufacturer,serialnumber,version
wmic bios get serialnumber,smbiosbiosversion

Linux 系统

Linux 下主要通过读取 /sys 伪文件系统或使用 dmidecode 工具。

读取 sysfs 文件 (最快,无额外依赖)

echo "制造商: $(cat /sys/class/dmi/id/board_vendor)"
echo "型号: $(cat /sys/class/dmi/id/board_name)"
echo "版本: $(cat /sys/class/dmi/id/board_version)"
echo "序列号: $(cat /sys/class/dmi/id/board_serial)"

注意board_serial 通常需要 root 权限才能读取。

使用 dmidecode (最全面,需 root)

# 查看主板信息
sudo dmidecode -t baseboard
# 提取关键字段
sudo dmidecode -s baseboard-manufacturer
sudo dmidecode -s baseboard-product-name
sudo dmidecode -s baseboard-version
sudo dmidecode -s baseboard-serial-number
# 查看 BIOS 信息
sudo dmidecode -t bios

注意:需安装 dmidecode (CentOS自带,Ubuntu需 apt-get install dmidecode)。

一行脚本获取所有关键主板信息 (Linux)

echo "Board: $(cat /sys/class/dmi/id/board_vendor) $(cat /sys/class/dmi/id/board_name) (Serial: $(sudo cat /sys/class/dmi/id/board_serial 2>/dev/null || echo 'N/A'))"

获取“集成”信息的特殊场景

你说的“集成信息”可能指主板集成的具体硬件(如声卡、网卡、显卡、SATA控制器):

查看所有 PCI 设备 (集成的外设)

Windows (PowerShell):

Get-WmiObject Win32_PnPEntity | Where-Object {$_.PNPClass -ne $null} | Format-Table Name, PNPClass, DeviceID

或查看指定类别:

Get-WmiObject Win32_SoundDevice | Select-Object Name, Manufacturer, Status
Get-WmiObject Win32_NetworkAdapter | Where-Object {$_.PhysicalAdapter -eq $true} | Select-Object Name, Manufacturer, NetConnectionStatus

Linux:

lspci | grep -E "Audio|Ethernet|VGA|SATA"
lshw -short

查看主板集成的具体功能开关(如 RAID、虚拟化、集成显卡)

这些信息位于 BIOS 设置 中,操作系统通常无法直接读取,要获取 BIOS 设置状态,需使用专用工具:

  • Windows: wmic /namespace:\\root\wmi path MSI_BIOS_Setting (前提是 BIOS 支持 WMI 接口,通常只有少数品牌支持)
  • Linux: 尝试读取 /dev/nvram 或通过 modprobe nvram 加载模块后读取。

最可靠的方法: 直接通过 BIOS 设置界面查看,或使用厂商提供的管理工具(如 Dell OpenManage、HP SUM、Lenovo ThinkVantage)。


跨平台通用脚本 (Python 示例)

如果需要跨平台集成,可以使用 Python:

import platform
import subprocess
import os
import sys
def get_board_info():
    system = platform.system()
    info = {}
    if system == "Windows":
        try:
            cmd = 'Get-CimInstance Win32_BaseBoard | Select-Object Manufacturer,Product,SerialNumber | ConvertTo-Json'
            output = subprocess.check_output(['powershell', '-Command', cmd]).decode('utf-8')
            import json
            data = json.loads(output)
            info = data if isinstance(data, dict) else data[0]
        except Exception as e:
            info['error'] = str(e)
    elif system == "Linux":
        try:
            with open('/sys/class/dmi/id/board_vendor') as f: info['Manufacturer'] = f.read().strip()
            with open('/sys/class/dmi/id/board_name') as f: info['Product'] = f.read().strip()
            try:
                with open('/sys/class/dmi/id/board_serial') as f: info['SerialNumber'] = f.read().strip()
            except PermissionError:
                info['SerialNumber'] = 'N/A (need root)'
        except Exception as e:
            info['error'] = str(e)
    else:
        info['platform'] = system
        info['note'] = 'Not fully supported'
    return info
print(get_board_info())

场景 最佳方法 权限 依赖
Windows 基础信息 Get-CimInstance Win32_BaseBoard 管理员可选
Linux 基础信息 cat /sys/class/dmi/id/board_* root (读取序列号需要)
Linux 详细信息 sudo dmidecode -t baseboard root dmidecode
集成外设 lspci (Linux) / Get-CimInstance Win32_PnPEntity (Windows)
BIOS 内部设置 手动进 BIOS 或厂商 API 特殊驱动 无通用方法

如果你需要获取的是特定品牌的主板(如华硕、微星)的集成控制芯片信息,可能需要用到该品牌特定的 SDK 或 WMI 模块,告诉我你的具体用途(开发运维工具/硬件审计/故障排查),我可以给你更精准的建议。

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