Aller au contenu principal
HWID Checker
hwidhow-towindows

Comment trouver votre HWID sous Windows

Des commandes étape par étape pour lire de vrais identifiants matériels — numéro de série de la carte mère, du disque, adresse MAC et MachineGuid — sous Windows 10 et 11.

HWID Checker · 10 août 2026 · 3 min de lecture

Il n'existe pas de « HWID » unique — cela dépend de l'attribut matériel que lit un logiciel. Ce guide présente les commandes les plus utiles sous Windows afin que vous puissiez trouver un véritable identifiant matériel, et pas seulement une empreinte de navigateur.

Note de confidentialité : ces valeurs sont de vrais numéros de série. Ne les collez pas dans des forums publics et ne les envoyez pas à quelqu'un en qui vous n'avez pas confiance.

Windows

Ouvrez PowerShell ou l'Invite de commandes et exécutez-les une par une.

Numéro de série de la carte mère

wmic baseboard get serialnumber

Note pour Windows 11 24H2 : wmic a été supprimé par Microsoft. Si la commande ci-dessus renvoie une erreur, utilisez la version PowerShell CIM à la place :

Get-CimInstance Win32_BaseBoard | Select-Object SerialNumber

GUID système (machine)

Windows stocke un GUID de machine dans le registre. C'est la valeur que de nombreux systèmes de licence appellent le « HWID » :

reg query "HKLM\SOFTWARE\Microsoft\Cryptography" /v MachineGuid

Numéro de série du disque

wmic diskdrive get serialnumber

Alternative PowerShell CIM (24H2) :

Get-CimInstance Win32_DiskDrive | Select-Object Model, SerialNumber

Adresse MAC

getmac

UUID SMBIOS

wmic csproduct get uuid

Alternative PowerShell CIM (24H2) :

Get-CimInstance Win32_ComputerSystemProduct | Select-Object UUID

Lire le HWID dans votre propre code

Si vous développez un logiciel qui doit identifier une machine, voici des exemples minimaux en trois langages. Chacun lit plusieurs identifiants matériels et les hache en une seule empreinte.

Go

package main

import (
	"crypto/sha256"
	"encoding/hex"
	"fmt"
	"os/exec"
	"strings"
)

func main() {
	uuid := run("wmic", "csproduct", "get", "uuid")
	board := run("wmic", "baseboard", "get", "serialnumber")
	disk := run("wmic", "diskdrive", "get", "serialnumber")

	combined := strings.Join([]string{uuid, board, disk}, "|")
	hash := sha256.Sum256([]byte(combined))
	fmt.Println(hex.EncodeToString(hash[:]))
}

func run(name string, args ...string) string {
	out, _ := exec.Command(name, args...).Output()
	return strings.Join(strings.Fields(string(out)), " ")
}

C# (.NET)

using System.Management;
using System.Security.Cryptography;
using System.Text;

string cpu = new ManagementObjectSearcher("SELECT ProcessorId FROM Win32_Processor")
    .Get().Cast<ManagementObject>().First()["ProcessorId"].ToString();
string board = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BaseBoard")
    .Get().Cast<ManagementObject>().First()["SerialNumber"].ToString();
string disk = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_DiskDrive")
    .Get().Cast<ManagementObject>().First()["SerialNumber"].ToString();

string combined = $"{cpu}-{board}-{disk}";
byte[] hash = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(combined));
Console.WriteLine(Convert.ToHexString(hash));

Note : System.Management nécessite le package NuGet System.Management sur .NET Core 3.1+ et .NET 5+.

Python

import subprocess, hashlib, re

def wmi(query):
    r = subprocess.run(["wmic"] + query.split(), capture_output=True, text=True)
    return re.sub(r"\s+", "", r.stdout.strip())

uuid = wmi("csproduct get uuid")
board = wmi("baseboard get serialnumber")
disk = wmi("diskdrive get serialnumber")

fingerprint = hashlib.sha256(f"{uuid}-{board}-{disk}".encode()).hexdigest()
print(fingerprint)

Une note sur le ProcessorId du CPU : La valeur renvoyée par wmic cpu get ProcessorId (ou l'instruction CPUID) encode le fabricant, la famille, le modèle et le stepping du CPU — ce n'est pas un numéro de série unique par puce. Deux CPU du même modèle renvoient le même ProcessorId. C'est utile comme composant d'une empreinte composite, mais insuffisant pour identifier de manière unique une machine à lui seul.

Pour une solution prête pour la production sans les cas particuliers (détection de machines virtuelles, numéros de série génériques, prise en charge multiplateforme), consultez le dépôt du projet.

Que faire de la valeur

Une fois que vous avez une valeur, collez-la dans le HWID Checker → onglet Valider pour confirmer son format, ou l'onglet Analyser pour voir sa structure.

Rappel : un navigateur ne peut pas lire ces vrais numéros de série. Notre outil web génère plutôt une empreinte de navigateur. Si vous avez besoin d'un véritable identifiant matériel depuis une interface de type web, l'outil de bureau lit ces valeurs nativement.