Where to Find Hardware UUID in Windows Registry

This article explains where the hardware Universally Unique Identifier (UUID) exposed by Windows Management Instrumentation (WMI) is stored in the Windows Registry. While WMI queries the motherboard’s SMBIOS directly to retrieve the system UUID, Windows stores a raw, binary copy of this table in the registry rather than a dedicated plaintext string. Below is a breakdown of the exact registry location, how the data is structured, and how it differs from standard Windows identification keys.

The SMBIOS Hardware UUID Registry Path

Windows does not maintain a dedicated plaintext key for the hardware UUID in the Registry. Instead, the kernel reads the system’s SMBIOS tables at boot and stores the complete binary dump at the following registry path:

How the UUID Is Stored Inside SMBiosData

The SMBiosData binary entry contains the raw SMBIOS table payload. The hardware UUID is located within the SMBIOS Type 1 record (System Information Structure):

  1. Header Check: The record begins with byte 0x01 (representing Type 1).
  2. Length Field: The second byte specifies the total length of the header.
  3. UUID Offset: The 16-byte UUID field begins at offset 0x08 within the Type 1 structure.

Due to byte-ordering conventions (little-endian versus big-endian formatting specified in the SMBIOS 2.6+ standard), the raw binary bytes in the registry may appear byte-swapped compared to the output displayed by WMI queries.

Hardware UUID vs. Windows MachineGuid

A common point of confusion is mistaking the hardware UUID for the Windows OS GUID. These are two distinct identifiers stored in different locations:

Querying the UUID Directly via WMI

Because reading and parsing raw binary data in Regedit is prone to formatting discrepancies, the standard method to read this parsed value is through WMI using PowerShell or the Command Prompt:

Get-CimInstance -ClassName Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID

This command parses the raw SMBIOS data table on demand and displays the exact UUID in the standard 8-4-4-4-12 hexadecimal format.