怎么用脚本获取主板制造商

wen 实用脚本 1

本文目录导读:

怎么用脚本获取主板制造商

  1. 使用 Python(跨平台,推荐)
  2. 使用 PowerShell(Windows)
  3. 使用 Shell 脚本(Linux/Unix)
  4. 使用批处理脚本(Windows 命令提示符)
  5. 总结建议

要用脚本获取主板制造商信息,具体方法取决于你的操作系统和使用的脚本语言(如 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 等),可以告诉我你的具体场景。

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