本文目录导读:

要用脚本获取主板制造商信息,具体方法取决于你的操作系统和使用的脚本语言(如 Python, Shell, PowerShell 等)。
以下是几种主流的方法:
使用 Python(跨平台,推荐)
Python 的 wmi(Windows)和 dmidecode(Linux/macOS)库可以获取硬件信息。
方法 A:使用 wmi(Windows)
import wmi
def get_motherboard_manufacturer():
c = wmi.WMI()
# 查询主板信息
for board in c.Win32_BaseBoard():
return board.Manufacturer # 返回制造商,如 "ASUSTeK COMPUTER INC."
if __name__ == "__main__":
manufacturer = get_motherboard_manufacturer()
print(f"主板制造商: {manufacturer}")
安装: pip install wmi
方法 B:使用 subprocess + dmidecode(Linux)
如果系统没有 dmidecode,需要安装:sudo apt install dmidecode
import subprocess
def get_motherboard_manufacturer_linux():
try:
output = subprocess.check_output(
["sudo", "dmidecode", "-s", "baseboard-manufacturer"],
stderr=subprocess.STDOUT
)
return output.decode().strip()
except subprocess.CalledProcessError as e:
return f"Error: {e.output.decode()}"
if __name__ == "__main__":
manufacturer = get_motherboard_manufacturer_linux()
print(f"主板制造商: {manufacturer}")
注意: 在 Linux 上执行 dmidecode 通常需要 root 权限,脚本可能需要以 sudo 运行。
方法 C:使用 pySMBIOS(跨平台,无需 root 权限)
pySMBIOS 是一个纯 Python 库,可以解析 SMBIOS 数据,无需额外权限。
import smbios
def get_motherboard_manufacturer():
smbios_reader = smbios.SMBIOS()
for m in smbios_reader.tables():
if m.type == 2: # Baseboard Information
return m.manufacturer
if __name__ == "__main__":
manufacturer = get_motherboard_manufacturer()
print(f"主板制造商: {manufacturer}")
安装: pip install pySMBIOS
使用 PowerShell(Windows)
这是 Windows 上最简单的方法之一,无需安装额外软件。
# 直接获取主板制造商 $manufacturer = (Get-WmiObject Win32_BaseBoard).Manufacturer Write-Output "主板制造商: $manufacturer" # 或者使用 CIM 方法 (推荐用于较新系统) $manufacturer = (Get-CimInstance -ClassName Win32_BaseBoard).Manufacturer Write-Output "主板制造商: $manufacturer"
如果你需要保存到文件:(Get-WmiObject Win32_BaseBoard).Manufacturer > motherboard_info.txt
使用 Shell 脚本(Linux/Unix)
方法 A:直接读取文件(不需要 root)
某些 Linux 系统的主板信息直接存于虚拟文件系统中。
#!/bin/bash # 尝试从 DMI 信息读取 (部分系统可能没有) cat /sys/devices/virtual/dmi/id/board_vendor 2>/dev/null || echo "Unknown"
方法 B:使用 dmidecode(需要 root)
#!/bin/bash sudo dmidecode -s baseboard-manufacturer
如果你不想每次都输密码,可以修改 /etc/sudoers 文件,但出于安全考虑,通常不推荐。
使用批处理脚本(Windows 命令提示符)
虽然 CMD 功能有限,但可以通过 wmic 命令获取:
@echo off wmic baseboard get manufacturer
输出示例:
Manufacturer
ASUSTeK COMPUTER INC.
如果要只提取值(纯文本):wmic baseboard get manufacturer /format:csv
总结建议
- Windows 用户: 使用 PowerShell 方法最方便(
Get-WmiObject)。 - Linux 用户: 如果系统有
dmidecode,用 Python 的subprocess调用它,如果没有 root 权限,尝试读取/sys下的文件(需内核支持)。 - 跨平台编程: 使用 Python 的
pySMBIOS库(推荐)或wmi(仅 Windows)+dmidecode(Linux)的组合方案。
如果你需要更具体的实现(如批量获取、输出到 CSV 等),可以告诉我你的具体场景。