为计算机指定硬件 ID

重要

设备元数据已弃用,并将在 Windows 的将来版本中删除。 有关替代功能的信息,请参阅驱动程序包容器元数据

设备和打印机将计算机识别为 设备容器。 因此,可以使用指定唯一硬件 ID 值的 HardwareID XML 元素在设备元数据包中标识计算机。 计算机的此硬件 ID 值(有时称为计算机硬件 ID 或 CHID)可以指定系统管理 BIOS(SMBIOS)字段数据的组合。

与其他设备容器 的硬件 ID 不同,每次系统启动时,计算机的硬件 ID 都会由 Windows 生成。 计算机的硬件 ID 可以通过运行 Windows 7、Windows 8 和 Windows 8.1 的 Windows 驱动程序工具包(WDK)中包含的 ComputerHardwareIds 工具(ComputerHardwareIDs.exe)来生成。 从 Windows 10 开始,ComputerHardwareIds 工具包含在软件开发工具包(SDK)中。

ComputerHardwareIds 工具为计算机生成一组硬件 ID,该 ID 基于系统系统管理系统 BIOS(SMBIOS)中字段的信息。 下表描述了这些 SMBIOS 字段。

字段名 结构名称和类型 SMBIOS 规范版本 Offset 长度 价值 DESCRIPTION
制造者 系统信息(类型 1) 2.0+ 04小时 BYTE STRING dmiStrucBuffer 数组中以 null 结尾的字符串的索引。 此字符串指定计算机制造商的名称。
家庭 系统信息(类型 1) 2.4+ 1Ah BYTE STRING dmiStrucBuffer 数组中以 null 结尾的字符串的索引。 此字符串指定特定计算机所属的系列。 一个系列是指一组计算机,这些计算机在硬件或软件方面相似但并不完全相同。 通常,一个系列由不同的计算机模型组成,这些模型具有不同的配置和定价点。 同一系列中的计算机通常具有类似的品牌和化妆品功能。
产品名称 系统信息(类型 1) 2.0+ 05h BYTE STRING dmiStrucBuffer 数组中以 null 结尾的字符串的索引。 此字符串指定计算机的产品名称。
供应商 BIOS 信息(类型 0) 2.0+ 04小时 BYTE STRING dmiStrucBuffer 数组中以 null 结尾的字符串的索引。 此字符串指定 BIOS 供应商的名称。
BIOS 版本 BIOS 信息(类型 0) 2.+0 05h BYTE STRING dmiStrucBuffer 数组中以 null 结尾的字符串的索引。 此字符串可以包含有关处理器核心和 OEM 版本的信息。
系统 BIOS 主要版本 BIOS 信息(类型 0) 2.4+ 14h BYTE 各不相同。 系统 BIOS 的重大发布。
系统 BIOS 小版本发布 BIOS 信息(类型 0) 2.4+ 15h BYTE 多种多样 系统 BIOS 的次要版本。
机壳类型 系统机箱(类型 3) 2.0+ 05h BYTE 多种多样 系统外壳或机箱类型。
SKU 编号 SKU 编号(类型 1) 2.4+ 19h BYTE STRING 要出售的特定计算机配置的识别。
基板制造商 制造商(类型 2) 04小时 BYTE STRING 以 null 结尾的字符串数。 此字符串标识基板制造商,其中基板 – 板类型为 0Ah(主板)。
Baseboard 产品 产品(类型 2) 05h BYTE STRING 以 null 结尾的字符串数。 此字符串标识基板的产品名称,其中基板 – 板类型为 0Ah(主板)。

有关 dmiStrucBuffer 数组和 SMBIOS 字段的详细信息,请参阅分布式管理工作队 (DMTF ) 网站上的系统管理 BIOS (SMBIOS) 规范。

当 ComputerHardwareIds 工具运行时,它会从 SMBIOS 信息创建唯一的硬件 ID。 每个硬件 ID 都是 GUID ,通过连接 SMBIOS 字段中的值来创建。

下表显示了用于在 Windows 7、Windows 8、Windows 8.1 和 Windows 10 中形成每个硬件 ID 的 SMBIOS 字段。

重要

仅当用于生成 HardwareID 的每个单独 SMBIOS 字段在系统的 SMBIOS 数据中填充时,才会生成每台计算机 HardwareID。

HWID Windows 7
HardwareID-0 制造商 + 系列 + 产品名称 + 供应商 + BIOS 版本 + 系统 BIOS 主要版本 + 系统 BIOS 次要版本
HardwareID-1 制造商 + 产品名称 + BIOS 供应商 + BIOS 版本 + 系统 BIOS 主要版本 + 系统 BIOS 次要版本
HardwareID-2 制造商 + 系列 + 产品名称
HardwareID-3 制造商 + 产品名称
HardwareID-4 制造商 + 家族
HardwareID-5 制造商 + 机箱类型
HardwareID-6 制造者
HWID Windows 8、Windows 8.1
HardwareID-0 制造商 + 系列 + 产品名称 + SKU 编号 + BIOS 供应商 + BIOS 版本 + BIOS 主要版本 + BIOS 次要版本
HardwareID-1 制造商 + 系列 + 产品名称 + BIOS 供应商 + BIOS 版本 + BIOS 主要版本 + BIOS 次要版本
HardwareID-2 制造商 + 产品名称 + BIOS 供应商 + BIOS 版本 + BIOS 主要版本 + BIOS 次要版本
HardwareID-3 制造商 + 系列 + 产品名称 + SKU 编号
HardwareID-4 制造商 + 系列 + 产品名称
HardwareID-5 制造商 + SKU 编号
HardwareID-6 制造商 + 产品名称
HardwareID-7 制造商 + 系列
HardwareID-8 制造商 + 机壳类型
HardwareID-9 制造者
HWID Windows 10操作系统
HardwareID-0 制造商 + 系列 + 产品名称 + SKU 编号 + BIOS 供应商 + BIOS 版本 + BIOS 主要版本 + BIOS 次要版本
HardwareID-1 制造商 + 系列 + 产品名称 + BIOS 供应商 + BIOS 版本 + BIOS 主要版本 + BIOS 次要版本
HardwareID-2 制造商 + 产品名称 + BIOS 供应商 + BIOS 版本 + BIOS 主要版本 + BIOS 次要版本
HardwareID-3 制造商 + 系列 + 产品名称 + SKU 编号 + 基板制造商 + 基板产品
HardwareID-4 制造商 + 系列 + 产品名称 + SKU 编号
HardwareID-5 制造商 + 系列 + 产品名称
HardwareID-6 制造商 + SKU 编号 + 基板制造商 + 基板产品
HardwareID-7 制造商 + SKU 编号
HardwareID-8 制造商 + 产品名称 + 基板制造商 + 基板产品
HardwareID-9 制造商 + 产品名称
HardwareID-10 制造商 + 系列 + 基板制造商 + 基板产品
HardwareID-11 制造商 + 系列
HardwareID-12 制造商 + 机箱类型
HardwareID-13 制造商 + 基板制造商 + 基板产品
HardwareID-14 制造者

每个硬件 ID 字符串都使用 SHA-1 哈希算法转换为 GUID。

将计算机硬件 ID 与电脑设备元数据包配合使用

对于 Windows 7 系统,强烈建议供应商在选择 硬件 ID 值以用作计算机的 HardwareID XML 元素的值时执行以下操作。

  • 如果设备元数据包与具有特定制作、系列和型号的计算机匹配,请使用 HardwareID-3HardwareID-4 作为第一选择。 这样,元数据包就可以匹配到指定的计算机,从而为该计算机提供最准确的元数据。

  • 如果设备元数据包涵盖整个计算机系列,请使用 HardwareID-5 作为第二个选项。 在这种情况下,计算机系列是独一无二的,并且不使用多个生产线的品牌。

  • 如果设备元数据包涵盖所有计算机或具有特定机箱类型的计算机,请使用 HardwareID-6HardwareID-7 作为第三选择。

注释

对于 Windows 7 电脑设备元数据, HardwareID-1HardwareID-2 保留供将来使用。 请勿将其用于计算机的硬件 ID。

注释

对于 Windows 8 电脑设备元数据,请勿将 HardwareID-1HardwareID-2HardwareID-3 作为计算机的硬件标识符。 HardwareID-1HardwareID-2HardwareID-3 保留供将来使用。 请改用 HardwareID-4HardwareID-5、HardwareID-6HardwareID-7HardwareID-8HardwareID-9HardwareID-10

若要指定硬件 ID 适用于计算机设备容器,请使用以下规则:

  • 用“{”和“}”字符分隔硬件 ID 字符串。
  • 在硬件 ID 字符串前面添加前缀“ComputerMetadata\”。

下面是计算机的 HardwareID XML 元素的示例:

DOID:ComputerMetadata\{c20d5449-511e-4cb5-902a-a541239322aa}

有关 HardwareID XML 元素的格式要求的详细信息,请参阅 HardwareID