コンピューターのハードウェア ID の指定
デバイスとプリンターは、コンピューターをデバイス コンテナーとして認識します。 その結果、一意のハードウェア ID 値を指定する HardwareID XML 要素を使用して、デバイス メタデータ パッケージ内でコンピューターを識別できます。 コンピューターのこのハードウェア ID 値 (コンピューターハードウェア ID または CHID とも呼ばれます) は、System Management BIOS (SMBIOS) フィールド データの組み合わせを指定できます。
他のデバイス コンテナーのハードウェア ID とは異なり、コンピューターのハードウェア ID は、システムが起動するたびに Windows によって生成されます。 コンピューターのハードウェア ID は、Windows 7、Windows 8、Windows 8.1 用 Windows Driver Kit (WDK) に含まれている ComputerHardwareIds ツール (ComputerHardwareIDs.exe) を実行することで生成できます。 Windows 10 以降、ComputerHardwareIds ツールはソフトウェア開発キット (SDK) に含まれています。
ComputerHardwareIds ツールは、システムのシステム管理 BIOS (SMBIOS) のフィールドからの情報に基づいて、コンピューターのハードウェア ID のセットを生成します。 次の表ではこれらの SMBIOS フィールドについて説明します。
フィールド名 | 構造体の名前とタイプ | SMBIOS仕様バージョン | オフセット | Length | Value | 説明 |
---|---|---|---|---|---|---|
メーカー | システム情報 (タイプ1) | 2.0+ | 04h | BYTE | STRING | dmiStrucBuffer配列内のnullで終わる文字列のインデックス。 この文字列は、コンピューターの製造元の名前を指定します。 |
家族 | システム情報 (タイプ1) | 2.4+ | 1Ah | BYTE | STRING | dmiStrucBuffer配列内のnullで終わる文字列のインデックス。 この文字列は、特定のコンピューターが属するファミリを指定します。 ファミリとは、ハードウェアまたはソフトウェアの観点から見て似ているが同一ではないコンピューターのセットを指します。 通常、ファミリは、構成と価格ポイントが異なるさまざまなコンピューター モデルで構成されます。 同じファミリ内のコンピューターは、多くの場合、ブランドと外観の機能が似ています。 |
製品名 | システム情報 (タイプ1) | 2.0+ | 05h | BYTE | STRING | dmiStrucBuffer配列内のnullで終わる文字列のインデックス。 この文字列は、コンピューターの製品名を指定します。 |
仕入先 | BIOS情報 (タイプ0) | 2.0+ | 04h | 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 | 販売対象の特定のコンピューター構成の識別。 |
Baseboard メーカー | メーカー (タイプ2) | 04h | BYTE | STRING | null で終わる文字列の数。 この文字列は、ベースボードの製造元を識別します。ベースボード - ボードの種類は 0Ah (マザーボード) です。 | |
ベースボード製品 | 製品 (タイプ 2) | 05h | BYTE | STRING | null で終わる文字列の数。 この文字列は、ベースボードの製品名識別します。ベースボード - ボードの種類は 0Ah (マザーボード) です。 |
dmiStrucBuffer 配列と SMBIOS フィールドの詳細については、分散管理タスク フォース (DMTF) Web サイトのシステム管理 BIOS (SMBIOS) の仕様を参照してください。
ComputerHardwareIds ツールを実行すると、SMBIOS 情報から一意のハードウェア ID が作成されます。 各ハードウェア ID は GUID であり、SMBIOS フィールドの値を連結して作成されます。
次の表は、Windows 7、Windows 8、Windows 8.1、および Windows 10 の各ハードウェア ID を形成するために使用される SMBIOS フィールドを示しています。
重要: 各コンピューター HardwareID は、HardwareID の生成に使用される個々の SMBIOS フィールドがシステムの SMBIOS データに設定されている場合にのみ生成されます。
HWID | Windows 7 |
---|---|
ハードウェアID-0 | 製造元+ファミリ + 製品名+BIOSベンダー + BIOSバージョン + システム BIOS メジャーリリース + システム BIOSマイナーリリース |
ハードウェアID-1 | 製造元+ファミリ + 製品名 + BIOS ベンダー + BIOS バージョン + システム BIOS メジャーリリース + システム BIOSマイナーリリース |
ハードウェアID-2 | 製造元+ファミリ+ProductName |
ハードウェアID-3 | 製造元+ProductName |
ハードウェアID-4 | 製造元+ファミリ |
ハードウェアID-5 | 製造元+エンクロージャの種類 |
ハードウェアID-6 | メーカー |
HWID | Windows 8、Windows 8.1 |
---|---|
ハードウェアID-0 | 製造元+ファミリ+製品名+SKU番号+BIOSベンダー+BIOSバージョン+BIOSメジャーリリース+BIOSマイナーリリース |
ハードウェアID-1 | 製造元+ファミリ+製品名+BIOSベンダー+BIOSバージョン+BIOSメジャーリリース+BIOSマイナーリリース |
ハードウェアID-2 | 製造元+製品名+BIOSベンダー+BIOSバージョン+BIOSメジャーリリース+BIOSマイナーリリース |
ハードウェアID-3 | 製造元+ファミリ+ProductName+SKU番号 |
ハードウェアID-4 | 製造元+ファミリ+ProductName |
ハードウェアID-5 | 製造元+SKU番号 |
ハードウェアID-6 | 製造元+ProductName |
ハードウェアID-7 | 製造元+ファミリ |
ハードウェアID-8 | 製造元+エンクロージャの種類 |
ハードウェアID-9 | メーカー |
HWID | Windows 10 |
---|---|
ハードウェアID-0 | 製造元+ファミリ+製品名+SKU番号+BIOSベンダー+BIOSバージョン+BIOSメジャーリリース+BIOSマイナーリリース |
ハードウェアID-1 | 製造元+ファミリ+製品名+BIOSベンダー+BIOSバージョン+BIOSメジャーリリース+BIOSマイナーリリース |
ハードウェアID-2 | 製造元+製品名+BIOSベンダー+BIOSバージョン+BIOSメジャーリリース+BIOSマイナーリリース |
ハードウェアID-3 | 製造元 + ファミリ + 製品名 + SKU 番号 + ベースボード製造元 + ベースボード製品 |
ハードウェアID-4 | 製造元 + ファミリ + 製品名 + SKU番号 |
ハードウェアID-5 | 製造元 + ファミリ + 製品名 |
ハードウェアID-6 | 製造元 + SKU 番号 + ベースボード製造元 + ベースボード製品 |
ハードウェアID-7 | 製造元+SKU番号 |
ハードウェアID-8 | 製造元 + 製品名 + ベースボード製造元 + ベースボード製品 |
ハードウェアID-9 | 製造元 + 製品名 |
ハードウェアID-10 | 製造元 + ファミリ + ベースボード製造元 + ベースボード製品 |
ハードウェアID-11 | 製造元+ファミリ |
ハードウェアID-12 | 製造元+エンクロージャの種類 |
ハードウェアID-13 | 製造元 + ベースボード製造元 + ベースボード製品 |
ハードウェアID-14 | メーカー |
各ハードウェア ID 文字列は、SHA-1 ハッシュ アルゴリズムを使用して GUID に変換されます。
PC デバイス メタデータ パッケージでのコンピューターハードウェア ID の使用
Windows 7 システムの場合は、コンピューターの HardwareID XML 要素値として使用するハードウェア ID 値を選択するときに、ベンダーが次の操作を行うことを強くお勧めします。
デバイス メタデータ パッケージが特定の make、family、および model を持つコンピューターと一致する場合は、最初の選択肢として HardwareID-3 または HardwareID-4 を使用します。 これにより、メタデータ パッケージは指定されたコンピューターと一致し、コンピューターに最も正確なメタデータが提供されます。
デバイス メタデータ パッケージがコンピューターのファミリ全体を対象にしている場合は、2 番目の選択肢として HardwareID-5 を使用します。 この場合、コンピューター ファミリは一意であり、複数の製品ラインを持つブランド化とはなっていません。
デバイス メタデータ パッケージがすべてのコンピューターまたは特定のエンクロージャの種類を持つコンピューターを対象とする場合は、HardwareID-6 または HardwareID-7 を 3 番目の選択肢として使用します。
注: Windows 7 PC デバイス メタデータの場合は、コンピューターのハードウェア ID に HardwareID-1 または HardwareID-2 を使用しないでください。 ハードウェア ID-1 または HardwareID-2 は、将来使用するために予約されています。
注: Windows 8 PC デバイス メタデータの場合、ベンダーは、コンピューターのハードウェア ID に HardwareID-1、HardwareID-2、HardwareID-3 を使用しないことを強くお勧めします。 HardwareID-1、HardwareID-2、HardwareID-3 は、将来使用するために予約されています。 代わりに、ベンダーは HardwareID-4、HardwareID-5、HardwareID-6、HardwareID-7、HardwareID-8, HardwareID-9, HardwareID-10 を使用できます。
ハードウェア ID がコンピューター デバイス コンテナー用であることを指定するには、次の規則を使用します。
ハードウェア ID 文字列を '{' および '}' 文字で区切ります。
ハードウェア ID 文字列の前にプレフィックス 'ComputerMetadata\' を追加します。
コンピューターの HardwareID XML 要素の例を次に示します。
DOID:ComputerMetadata\{c20d5449-511e-4cb5-902a-a541239322aa}
HardwareID XML 要素の形式要件の詳細については、「HardwareID」を参照してください。