ZetCode

VBScript Win32_BIOS 类

最后修改于 2025 年 4 月 9 日

VBScript 中的 Win32_BIOS 类通过 Windows Management Instrumentation (WMI) 提供对 BIOS 信息的访问。它包含有关系统 BIOS 固件的属性。这包括版本、制造商和发布日期。

使用 Win32_BIOS,脚本可以检索关键的系统固件详细信息。这对于库存、合规性检查和系统管理非常有用。该类是 WMI root\cimv2 命名空间的一部分。

Win32_BIOS 类概述

Win32_BIOS 类表示安装在计算机上的 BIOS 固件。它继承自 CIM 模型中的 CIM_BIOSElement。该类提供有关 BIOS 配置的只读属性。

关键属性包括 Manufacturer、Name、Version 和 SerialNumber。该类还提供 SMBIOS 特定信息。访问需要 WMI 权限,通常是管理员可用。

检索基本 BIOS 信息

此示例演示如何使用 Win32_BIOS 检索基本 BIOS 信息。它显示制造商、版本和发布日期。脚本连接到 WMI 并查询 BIOS 类。

basic_bios_info.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")

For Each objBIOS in colBIOS
    WScript.Echo "Manufacturer: " & objBIOS.Manufacturer
    WScript.Echo "Name: " & objBIOS.Name
    WScript.Echo "Version: " & objBIOS.Version
    WScript.Echo "Release Date: " & objBIOS.ReleaseDate
Next

脚本使用 GetObject 连接到 WMI。它查询 Win32_BIOS 的所有实例。循环输出每个 BIOS 实例的关键属性。大多数系统只有一个 BIOS 实例。

检查 BIOS 序列号

此示例检索 BIOS 序列号,该序列号通常用于资产跟踪。序列号是系统的唯一标识符。某些系统可能不公开此属性。

bios_serial.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")

For Each objBIOS in colBIOS
    If IsNull(objBIOS.SerialNumber) Then
        WScript.Echo "Serial Number: Not Available"
    Else
        WScript.Echo "Serial Number: " & objBIOS.SerialNumber
    End If
Next

脚本在显示之前检查 SerialNumber 是否为 null。这可以处理属性不可用的情况。输出显示序列号或“不可用”消息。

确定 SMBIOS 版本

此示例从 BIOS 检索 SMBIOS 版本信息。SMBIOS 是用于提供 BIOS 信息的标准。版本指示标准的合规级别。

smbios_version.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")

For Each objBIOS in colBIOS
    WScript.Echo "SMBIOS Version: " & objBIOS.SMBIOSBIOSVersion
    WScript.Echo "SMBIOS Major Version: " & objBIOS.SMBIOSMajorVersion
    WScript.Echo "SMBIOS Minor Version: " & objBIOS.SMBIOSMinorVersion
Next

脚本输出三个与 SMBIOS 相关的属性。这些属性表示 BIOS 对 SMBIOS 标准的实现。更高的版本通常支持更多的功能和信息。

检查 BIOS 特性

BIOS 特性属性包含指示支持功能的标志。此示例解码并显示这些特性。每个位代表一个不同的 BIOS 功能。

bios_characteristics.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")

For Each objBIOS in colBIOS
    If Not IsNull(objBIOS.BIOSCharacteristics) Then
        WScript.Echo "Number of BIOS Characteristics: " & _
            UBound(objBIOS.BIOSCharacteristics) + 1
    Else
        WScript.Echo "BIOS Characteristics not available"
    End If
Next

脚本检查 BIOSCharacteristics 是否可用。然后它显示特性标志的数量。每个标志都需要额外的解码才能理解具体的功能。

验证 BIOS 状态

此示例检查 BIOS 状态属性。状态指示 BIOS 是否正常运行。常见值包括“OK”、“Error”或“Degraded”。

bios_status.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")

For Each objBIOS in colBIOS
    WScript.Echo "Status: " & objBIOS.Status
    WScript.Echo "Primary BIOS: " & objBIOS.PrimaryBIOS
Next

脚本输出 BIOS 状态以及它是否为主 BIOS。在大多数系统中,主 BIOS 值将为 TRUE。对于正常运行的系统,状态应为“OK”。

来源

Win32_BIOS 类文档

在本文中,我们探讨了 VBScript 中的 Win32_BIOS 类,涵盖了其用法和实际应用。从基本信息检索到特定属性检查,这些示例展示了 BIOS 数据访问。有了这些知识,您就可以使用详细的 BIOS 信息来增强您的系统管理脚本。

作者

我的名字是 Jan Bodnar,我是一名充满热情的程序员,拥有多年的编程经验。我自 2007 年以来一直撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教授编程方面拥有八年以上的经验。

列出所有 VBScript 教程