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 :
wmica é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.Managementnécessite le package NuGetSystem.Managementsur .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.