本文目录导读:

获取主板信息的方法取决于你使用的操作系统,以下是 Windows、Linux 和 macOS 三个平台常用的脚本方式。
Windows (使用 PowerShell 或 WMI)
这是最常用且信息最丰富的方式。
方法 A: 使用 PowerShell (推荐,信息最全)
PowerShell 可以直接调用 WMI 类来获取详细的硬件信息。
获取所有主板信息:
Get-WmiObject Win32_BaseBoard
或者使用更新的 Get-CimInstance:
Get-CimInstance Win32_BaseBoard
获取关键字段 (制造商、型号、序列号、版本):
Get-WmiObject Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber, Version
输出示例:
Manufacturer Product SerialNumber Version
------------ ------- ------------ -------
ASUSTeK COMPUTER INC. ROG STRIX X670E-E GAMING WIFI 123456789000 Rev 1.xx
提示:
SerialNumber为空,说明主板可能没有烧录序列号(常见于组装机或工程样品),或者被 BIOS 设置为隐藏。
方法 B: 使用 WMIC (传统命令行)
在 cmd 命令行下运行:
wmic baseboard get Manufacturer, Product, SerialNumber, Version
Linux (使用 dmidecode)
dmidecode 是 Linux 下获取主板信息的标准工具,它需要 root 权限读取 DMI 表。
安装 dmidecode:
# Debian/Ubuntu sudo apt install dmidecode # CentOS/RHEL/Fedora sudo yum install dmidecode # 或 sudo dnf install dmidecode
获取主板信息:
sudo dmidecode -t baseboard
获取关键字段 (制造商、产品名、序列号、版本):
sudo dmidecode -s baseboard-manufacturer sudo dmidecode -s baseboard-product-name sudo dmidecode -s baseboard-serial-number sudo dmidecode -s baseboard-version
输出示例:
ASUSTeK COMPUTER INC.
ROG STRIX X670E-E GAMING WIFI
123456789000
Rev 1.xx
提示: 在某些虚拟机或容器环境中,
dmidecode可能无法获取真实物理信息。
替代方案 (无需 root): 读取 /sys 文件系统 (部分信息)
如果无法使用 sudo,可以尝试读取 sysfs (信息可能不如 dmidecode 完整):
cat /sys/class/dmi/id/board_vendor cat /sys/class/dmi/id/board_name cat /sys/class/dmi/id/board_serial # 通常需要 root 才能读取 cat /sys/class/dmi/id/board_version
注意:
board_serial文件通常权限为 400 且属主为 root,普通用户无法读取。
macOS (使用 system_profiler)
macOS 的内置命令可以直接输出硬件信息。
获取所有主板(硬件)信息:
system_profiler SPHardwareDataType
你会看到类似“主板型号”(Model Identifier) 或者“主板序列号”(Serial Number) 等信息,macOS 中主板信息通常与系统序列号关联。
提取关键信息 (Boot ROM Version 或 Hardware UUID 有时也包含主板标识):
system_profiler SPHardwareDataType | grep "Model Identifier" system_profiler SPHardwareDataType | grep "Serial Number (system)"
输出示例:
Model Identifier: MacBookPro18,3
Serial Number (system): FVF... (这是整机序列号)
注意: macOS 没有像 Windows 那样直接暴露“主板制造商”和“主板型号”的单独命令,因为苹果的自研芯片/主板是不公开的。主板序列号通常等于系统序列号 或 硬件 UUID。
总结脚本示例
Windows PowerShell 脚本 (.ps1)
Write-Host "=== 主板信息 ===" $board = Get-WmiObject Win32_BaseBoard Write-Host "制造商: $($board.Manufacturer)" Write-Host "型号: $($board.Product)" Write-Host "序列号: $($board.SerialNumber)" Write-Host "版本: $($board.Version)"
Linux Bash 脚本 (.sh)
#!/bin/bash echo "=== 主板信息 ===" echo "制造商: $(sudo dmidecode -s baseboard-manufacturer)" echo "型号: $(sudo dmidecode -s baseboard-product-name)" echo "序列号: $(sudo dmidecode -s baseboard-serial-number)" echo "版本: $(sudo dmidecode -s baseboard-version)"
macOS Bash 脚本 (.sh)
#!/bin/bash echo "=== 主板信息 (macOS) ===" system_profiler SPHardwareDataType | grep -E "Model Identifier:|Serial Number \(system\):|Hardware UUID:"
常见问题及注意事项
- 权限问题:
- Linux: 使用
dmidecode必须加sudo。 - Windows: 通常无需管理员权限,但在某些企业环境中可能被组策略限制。
- Linux: 使用
- 序列号为空: 很多主板(尤其是工程样板、某些品牌机)序列号字段是空白的,这是正常现象,不代表脚本出错。
- 虚拟机: 在 VMware、VirtualBox 等虚拟机中获取到的将是虚拟机模拟的主板型号,不是真实物理主板。
- DMI 表损坏: 极少数情况下,Linux 的
dmidecode会因为 DMI 表损坏而报错。