本文目录导读:

获取主板集成信息(如制造商、型号、序列号、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 模块,告诉我你的具体用途(开发运维工具/硬件审计/故障排查),我可以给你更精准的建议。