Zum Hauptinhalt springen
HWID Checker

HWID-Seriennummern mit CMD und PowerShell auslesen: Alle Windows-Hardware-IDs erklärt

So lesen Sie HWID-Seriennummern mit CMD und PowerShell aus: SMBIOS-UUID, Mainboard, BIOS, Datenträger, RAM, CPU ProcessorId, MAC und MachineGuid – mit Beispielausgaben und den Ursachen für Änderungen.

HWID Checker · 4. September 2026 · 19 Min. Lesezeit

Es gibt keinen einzelnen Befehl, der „Ihre HWID“ ausgibt. Das sollten Sie verstehen, bevor Sie ein schwarzes Fenster öffnen und mit dem Tippen beginnen. Windows speichert nicht nur eine Hardware-ID. Das System stellt ein Dutzend separate Kennungen bereit – eine Firmware-UUID, eine Mainboard-Seriennummer, eine BIOS-Seriennummer, eine Seriennummer pro Datenträger und Speichermodul, eine CPU-Signatur, eine MAC-Adresse pro Netzwerkadapter sowie einige softwaregenerierte GUIDs. Jedes Programm, das von „Ihrer HWID“ spricht, wählt eine Teilmenge dieser Werte aus und kombiniert sie auf eigene Weise.

Wer danach sucht, wie sich HWID-Seriennummern in CMD prüfen lassen, benötigt daher eigentlich eine Liste, die zeigt, welche Seriennummern es gibt, mit welchem Befehl jede davon ausgelesen wird, wie die Ausgabe aussieht und wodurch sich der jeweilige Wert ändert. Genau das bietet dieser Leitfaden. Er behandelt sowohl die klassische Eingabeaufforderung (cmd.exe) als auch PowerShell, denn unter aktuellen Windows-Versionen benötigen Sie beides: Mehrere ältere CMD-Befehle basierten auf wmic, das Microsoft aus standardmäßigen Windows-11-Installationen entfernt hat. Die unterstützten Ersatzlösungen sind PowerShell-Cmdlets.

Alle hier beschriebenen Vorgänge sind schreibgeschützt. Die Befehle fragen lediglich Werte ab, die Windows und Ihre Firmware bereits bereitstellen; keiner der folgenden Schritte verändert, randomisiert oder fälscht eine Kennung. Die Befehle wurden mit der Microsoft-Dokumentation für Windows 10 22H2 und Windows 11 24H2/25H2 mit Stand vom 4. September 2026 abgeglichen.

Schnellübersicht: die vollständige Tabelle

Wenn Sie nur die Befehle benötigen, finden Sie sie hier. Jede Zeile steht für eine Kennung. Die Spalte „Veraltetes CMD“ zeigt die alte wmic-Schreibweise als Referenz, da sie noch häufig in Forenbeiträgen auftaucht. Heute sollten Sie die PowerShell-Variante verwenden.

KennungSpeicherortPowerShell (empfohlen)Veraltetes CMD (unter Windows 11 möglicherweise nicht vorhanden)
SMBIOS-System-UUIDMainboard-Firmware(Get-CimInstance Win32_ComputerSystemProduct).UUIDwmic csproduct get uuid
SystemseriennummerFirmware (OEM)(Get-CimInstance Win32_ComputerSystemProduct).IdentifyingNumberwmic csproduct get identifyingnumber
BIOS-SeriennummerFirmware(Get-CimInstance Win32_BIOS).SerialNumberwmic bios get serialnumber
Mainboard-SeriennummerBaseboard-Firmwaretabelle(Get-CimInstance Win32_BaseBoard).SerialNumberwmic baseboard get serialnumber
GehäuseseriennummerGehäuse-Firmwaretabelle(Get-CimInstance Win32_SystemEnclosure).SerialNumberwmic systemenclosure get serialnumber
Seriennummern physischer DatenträgerLaufwerks-FirmwareGet-PhysicalDisk | Select-Object FriendlyName, SerialNumberwmic diskdrive get model,serialnumber
Volumeseriennummer (keine Hardware)Dateisystem-Header(Get-CimInstance Win32_LogicalDisk -Filter "DeviceID='C:'").VolumeSerialNumbervol C:
Seriennummern der RAM-ModuleDIMM-SPD-ChipGet-CimInstance Win32_PhysicalMemory | Select-Object DeviceLocator, SerialNumberwmic memorychip get devicelocator,serialnumber
CPU ProcessorIdCPUID-Instruktion(Get-CimInstance Win32_Processor).ProcessorIdwmic cpu get processorid
MAC-AdressenFirmware/Treiber des NetzwerkadaptersGet-NetAdapter | Select-Object Name, MacAddress, Statusgetmac /v
Monitorseriennummer (EDID)Display-Firmwaresiehe Abschnitt zu Monitorenkeiner
MachineGuidRegistrierung, bei der Windows-Installation gesetzt(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Cryptography').MachineGuidreg query HKLM\SOFTWARE\Microsoft\Cryptography /v MachineGuid
Windows-Produkt-IDRegistrierung/Lizenzierung(Get-CimInstance Win32_OperatingSystem).SerialNumberwmic os get serialnumber
ComputerHardwareIdsRegistrierung, aus SMBIOS abgeleitet(Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\SystemInformation').ComputerHardwareIdsreg query "HKLM\SYSTEM\CurrentControlSet\Control\SystemInformation" /v ComputerHardwareIds

Im weiteren Verlauf dieses Artikels wird jede Zeile erläutert: was der Wert bedeutet, wie ein normales und ein fehlerhaftes Ergebnis aussieht und durch welche Vorgänge er sich ändert. Wenn Sie nur einen Abschnitt lesen, wählen Sie den darüber, welche dieser Werte tatsächlich in einer „HWID“ landen.

CMD oder PowerShell? Warum dasselbe schwarze Fenster zwei Sprachen verwendet

Sowohl cmd.exe als auch PowerShell sind textbasierte Konsolen. Unter Windows 11 werden beide meist in derselben Windows-Terminal-App geöffnet, sodass leicht der Eindruck entsteht, die Befehle seien austauschbar. Das sind sie nicht.

  • cmd.exe führt Befehle im Batch-Stil aus: dir, reg, vol, getmac, systeminfo und – historisch – wmic. Es gibt keine Objekt-Pipeline; die Ausgabe besteht aus reinem Text.
  • PowerShell (Windows PowerShell 5.1 ist in Windows enthalten; PowerShell 7 wird separat installiert) führt Cmdlets wie Get-CimInstance und Get-PhysicalDisk aus. Die Ausgabe besteht aus Objekten, die Sie mit Select-Object filtern können.

Für HWID-Abfragen ist dieser Unterschied wegen wmic.exe wichtig. Nahezu jede vor 2024 verfasste Anleitung zum „Prüfen Ihrer HWID in CMD“ verwendet wmic csproduct get uuid, wmic bios get serialnumber und ähnliche Befehle. WMIC wurde 2016 als veraltet eingestuft, anschließend zu einem optionalen „Feature on Demand“, das in Windows 11 24H2 standardmäßig deaktiviert ist, und wird vollständig entfernt. Auf einem frisch installierten Windows-11-PC sehen Sie typischerweise:

'wmic' is not recognized as an internal or external command,
operable program or batch file.

Die zugrunde liegenden WMI-Klassen (Win32_BIOS, Win32_BaseBoard usw.) sind weiterhin vorhanden. Lediglich der alte Befehlszeilenclient fehlt. Deshalb verwenden alle PowerShell-Befehle in diesem Artikel Get-CimInstance: Das Cmdlet liest dieselben Klassen über die unterstützte CIM-Schnittstelle aus. Wenn ein vorhandenes Skript noch von wmic abhängt, erklärt der Leitfaden zur WMIC-Fehlerbehebung die Migration ausführlich.

Sie müssen CMD nicht verlassen, um PowerShell-Befehle zu verwenden. Jeder PowerShell-Einzeiler in diesem Artikel lässt sich aus einer Eingabeaufforderung oder einer .bat-Datei ausführen, indem Sie ihn folgendermaßen einbetten:

powershell -NoProfile -Command "(Get-CimInstance Win32_BaseBoard).SerialNumber"

Genau so funktioniert unser herunterladbares BAT-Skript: Eine Klartext-Batchdatei ruft PowerShell einmal pro Kennung auf, sodass Sie jede Zeile vor der Ausführung lesen können.

Benötigen Sie Administratorrechte? Für alle Inhalte dieses Artikels lautet die Antwort: nein. Das Auslesen von SMBIOS-Tabellen, Datenträgerseriennummern, SPD-Daten des Arbeitsspeichers, CPUID und der betreffenden Registrierungsschlüssel funktioniert in einer Standardsitzung. Gibt ein Befehl Access denied zurück, führen Sie ihn mit großer Wahrscheinlichkeit auf einem Remotecomputer oder unter einer eingeschränkten Unternehmensrichtlinie aus; bei einer normalen lokalen Abfrage liegt üblicherweise keine Berechtigungshürde vor.

SMBIOS-System-UUID

Was ist das? Eine 128-Bit-Kennung, die der Mainboardhersteller in der SMBIOS-Systeminformationstabelle (Typ 1) speichert. Dieser Wert ist meist gemeint, wenn ohne weitere Erläuterung von „der HWID“ die Rede ist: Er liegt auf Firmwareebene, bleibt bei einer Neuinstallation des Betriebssystems erhalten und lässt sich einfach auslesen.

(Get-CimInstance Win32_ComputerSystemProduct).UUID

Typische Ausgabe:

4C4C4544-0034-5A10-8047-B8C04F4E3232

So interpretieren Sie den Wert. Bei Dell-Geräten wird die UUID wie im obigen Beispiel teilweise aus dem Service-Tag abgeleitet, sodass zwei Dell-Geräte niemals dieselbe UUID besitzen. Bei vielen Mainboards für Endverbraucher handelt es sich um einen zufälligen, werkseitig geschriebenen Wert. In beiden Fällen ist er nicht geheim – jeder mit lokalem Zugriff kann ihn lesen – und er ist nicht verschlüsselt.

Fehlerhafte Ergebnisse und ihre Bedeutung.

  • 00000000-0000-0000-0000-000000000000 oder FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF – die Firmware hat das Feld nicht befüllt. Dies kommt bei einigen günstigen Mainboards, nach dem Austausch eines BIOS-Chips und in manchen virtuellen Maschinen mit minimaler SMBIOS-Konfiguration vor.
  • 03000200-0400-0500-0006-000700080009 – ein bekannter Standardplatzhalter aus einem Referenz-BIOS. Er ist nicht eindeutig; Tausende Mainboards melden diesen Wert.
  • Leer – meist stellt eine Virtualisierungsplattform keine UUID bereit.

Wodurch ändert sich der Wert? Durch den Austausch des Mainboards. Ein normales erneutes Flashen des BIOS behält ihn bei, doch ein vollständiger CMOS-/NVRAM-Reset auf einigen Mainboards oder ein Mainboardtausch im Servicecenter kann einen neuen Wert erzeugen. Eine Neuinstallation von Windows ändert ihn nicht. In einer VM legt der Hypervisor den Wert fest; beim Klonen einer VM wird er je nach Plattform möglicherweise neu generiert.

In derselben Klasse finden Sie unter IdentifyingNumber die OEM-Systemseriennummer – dieselbe Zeichenfolge, die auf dem Aufkleber an der Unterseite eines Laptops steht:

Get-CimInstance Win32_ComputerSystemProduct |
  Select-Object Vendor, Name, IdentifyingNumber, UUID

BIOS-Seriennummer

Was ist das? Die über die Klasse Win32_BIOS gemeldete Seriennummer aus der SMBIOS-Systeminformationstabelle. Bei Komplett-PCs und Laptops entspricht sie fast immer der oben beschriebenen IdentifyingNumber. Bei selbst zusammengestellten Desktop-PCs enthält sie den vom Mainboardhersteller eingetragenen Wert – häufig also nichts Brauchbares.

(Get-CimInstance Win32_BIOS).SerialNumber

Typische Ausgaben, von brauchbar bis nutzlos:

5CG1234XYZ                    ← HP laptop, real serial
To Be Filled By O.E.M.        ← common on ASRock/ASUS retail boards
Default string                 ← common on MSI/Gigabyte retail boards
System Serial Number           ← another placeholder

Die letzten drei Werte sind keine Fehler. Mainboards für den Einzelhandel werden verkauft, damit jemand anderes daraus ein System zusammenstellt. Daher überlässt der Mainboardhersteller dem Integrator das Ausfüllen der „System“-Seriennummer – was praktisch niemand tut. Software, die sich auf die BIOS-Seriennummer als eindeutigen Schlüssel verlässt, behandelt alle diese Computer als dasselbe Gerät. Dies ist eine reale Ursache für fälschlich positive Warnungen wegen „doppelter Hardware“.

Wodurch ändert sich der Wert? Wie bei der UUID durch einen Mainboardtausch. BIOS-Updates verändern ihn unter normalen Umständen nicht.

Mainboard-Seriennummer (Baseboard)

Was ist das? Die Seriennummer aus der SMBIOS-Baseboard-Tabelle (Typ 2). Im Gegensatz zur BIOS-/Systemseriennummer ist dieser Wert auf Mainboards für den Einzelhandel meist befüllt, weil er das Mainboard selbst und nicht das fertig montierte System bezeichnet.

Get-CimInstance Win32_BaseBoard |
  Select-Object Manufacturer, Product, SerialNumber

Typische Ausgabe:

Manufacturer                 Product            SerialNumber
------------                 -------            ------------
ASUSTeK COMPUTER INC.        ROG STRIX B650-A   230412345678901

Fehlerhafte Ergebnisse. To Be Filled By O.E.M., Default string, None oder eine ausschließlich aus Nullen bestehende Seriennummer. Dies ist seltener als bei der BIOS-Seriennummer, kommt aber vor – insbesondere bei sehr günstigen Mainboards und einigen Gigabyte-Modellen, deren Seriennummer bis zu einem Firmwareupdate als Default string erscheint.

Wodurch ändert sich der Wert? Ausschließlich durch den Austausch des Mainboards. Deshalb gewichten die meisten Anti-Cheat- und Lizenzierungssysteme die Mainboard-Seriennummer zusammen mit der SMBIOS-UUID am stärksten.

Gehäuseseriennummer (System Enclosure)

Was ist das? Die Seriennummer aus der SMBIOS-Gehäusetabelle (Typ 3). Bei Laptops und OEM-Desktop-PCs stimmt sie meist mit der Systemseriennummer überein. Bei selbst zusammengestellten PCs ist sie fast immer ein Platzhalter, weil das Gehäuse keine Firmware besitzt und der Mainboardhersteller nicht weiß, welches Gehäuse Sie gekauft haben.

(Get-CimInstance Win32_SystemEnclosure).SerialNumber

Sie können diesen Wert bedenkenlos als sekundäre Kennung behandeln. Er ist hier aufgeführt, weil einige HWID-Tools ihn auslesen und Sie sich nicht wundern sollten, wenn Default string angezeigt wird.

Seriennummern physischer Datenträger – und warum vol keine davon ist

Hier herrscht die größte Verwirrung, denn Windows stellt zwei völlig unterschiedliche Werte bereit, die beide oft als „Datenträgerseriennummer“ bezeichnet werden.

Hardware-Seriennummer (die gesuchte Kennung)

Jede SSD und HDD besitzt eine vom Hersteller vergebene Seriennummer, die in der Firmware des Laufwerks gespeichert wird. Sie ist auf dem Laufwerksetikett aufgedruckt und wird über SATA- oder NVMe-Identify-Befehle gemeldet.

Unter aktuellen Windows-Versionen lässt sie sich am zuverlässigsten mit dem Storage-Modul auslesen:

Get-PhysicalDisk | Select-Object DeviceId, FriendlyName, MediaType, SerialNumber

Typische Ausgabe:

DeviceId FriendlyName                 MediaType SerialNumber
-------- ------------                 --------- ------------
0        Samsung SSD 990 PRO 2TB      SSD       S6Z2NJ0T123456A
1        WDC WD40EZAZ-00SF3B0         HDD       WD-WX12D34ABCDE

Die klassische WMI-Klasse funktioniert ebenfalls und wurde vom veralteten Befehl wmic diskdrive verwendet:

Get-CimInstance Win32_DiskDrive | Select-Object Model, SerialNumber

Besonderheiten, auf die Sie stoßen werden.

  • Führende oder nachgestellte Leerzeichen. Manche Treiber füllen die Seriennummer mit Leerzeichen auf eine feste Breite auf. Vergleichen Sie Werte mit .Trim(), da sonst fälschliche Abweichungen entstehen.
  • Byte-vertauschtes Hexadezimalformat auf alten Systemen. Unter Windows 7 und älter gab Win32_PhysicalMedia die Seriennummer als Hexadezimalwert zurück, wobei jedes Zeichenpaar vertauscht war. Aktuelle Windows-Versionen geben eine normale Zeichenfolge zurück. Wenn Sie den Wert mit einer vor Jahren protokollierten Kennung vergleichen und er verwürfelt aussieht, ist dies der Grund.
  • Leere Werte bei USB-, RAID- oder einigen NVMe-Laufwerken. Laufwerke hinter einem RAID-Controller melden den virtuellen Datenträger des Controllers statt des physischen Laufwerks; USB-Gehäuse verbergen manchmal die interne Seriennummer. Get-PhysicalDisk liefert hier im Allgemeinen bessere Ergebnisse als Win32_DiskDrive, aber beide können nicht durch ein Hardware-RAID hindurchsehen.
  • Virtuelle Maschinen. Hypervisoren weisen synthetische Seriennummern zu, die sich ändern, wenn der virtuelle Datenträger neu erstellt wird.

Wodurch ändert sich der Wert? Nur durch den Austausch des Laufwerks. Formatieren, Neupartitionieren, Klonen auf ein neues Laufwerk (der Klon besitzt die Seriennummer des neuen Laufwerks) und eine Neuinstallation von Windows verändern ihn nicht. Auch Firmwareupdates lassen ihn unverändert.

Volumeseriennummer (meist nicht die gesuchte Kennung)

vol C:
 Volume in drive C is Windows
 Volume Serial Number is 8A3F-1C2B

Dieser achtstellige Hexadezimalwert wird beim Formatieren des Volumes in den Dateisystem-Header geschrieben. Er ist nicht in der Laufwerks-Firmware gespeichert und hat nichts mit der Hardware zu tun. Wenn Sie die Partition neu formatieren, entsteht ein neuer Wert. Bei einem sektorweisen Klonen übernimmt der Klon dieselbe Volumeseriennummer wie das Original.

Ältere Lizenzierungssysteme – einige aus den 1990er- und 2000er-Jahren – verwendeten tatsächlich die Volumeseriennummer von C: als Schlüssel. Deshalb taucht sie weiterhin in HWID-Diskussionen auf. Moderne Anti-Cheat- und DRM-Systeme ignorieren sie meist gerade deshalb, weil sie sich trivial ändern lässt. Meldet ein Tool als „Datenträgerseriennummer“ einen Wert wie 8A3F-1C2B, liest es die Volumeseriennummer und nicht das Laufwerk aus.

Das PowerShell-Äquivalent für Skripte lautet:

(Get-CimInstance Win32_LogicalDisk -Filter "DeviceID='C:'").VolumeSerialNumber

Dieser Befehl gibt 8A3F1C2B ohne Bindestrich zurück.

Seriennummern der RAM-Module

Was ist das? Jedes Speichermodul besitzt einen SPD-Chip (Serial Presence Detect), der seine Teilenummer, den Hersteller und – bei den meisten Modulen – eine Seriennummer enthält. Windows stellt diese Daten über Win32_PhysicalMemory bereit.

Get-CimInstance Win32_PhysicalMemory |
  Select-Object DeviceLocator, Manufacturer, PartNumber, SerialNumber

Typische Ausgabe:

DeviceLocator Manufacturer PartNumber           SerialNumber
------------- ------------ ----------           ------------
DIMM_A2       Corsair      CMK32GX5M2B5600C36   00000000
DIMM_B2       Corsair      CMK32GX5M2B5600C36   00000000

Beachten Sie die Seriennummern. 00000000, ein leerer Wert oder dieselbe Kennung auf jedem Modul sind bei Arbeitsspeicher für Endverbraucher ausgesprochen häufig. Einige Hersteller programmieren keine Seriennummer; einige Mainboards geben das SPD-Seriennummernfeld nicht an SMBIOS weiter. Server- und Workstation-Speicher meldet wesentlich häufiger echte, eindeutige Seriennummern.

Wodurch ändert sich der Wert? Durch das Hinzufügen, Entfernen oder Austauschen von Modulen. Das Ändern von XMP-/EXPO-Profilen hat keine Auswirkungen. Beachten Sie außerdem, dass DeviceLocator (die Bezeichnung des Steckplatzes) mainboardspezifisch ist. Wenn Sie dieselben Module in andere Steckplätze einsetzen, ändert sich daher die Zuordnung von Steckplatz und Seriennummer, obwohl die Seriennummern selbst gleich bleiben – ein Detail, an dem naive HWID-Implementierungen scheitern.

CPU ProcessorId – der Wert, der keine Seriennummer ist

Was ist das? Ein 16-stelliger Hexadezimalwert, den Windows aus der CPUID-Instruktion bildet: der Prozessorsignatur (Familie, Modell, Stepping) und den Feature-Flags.

Get-CimInstance Win32_Processor | Select-Object Name, ProcessorId
Name                                       ProcessorId
----                                       -----------
AMD Ryzen 7 7800X3D 8-Core Processor       178BFBFF00A60F12

Nahezu jede HWID-Anleitung erklärt diesen Punkt falsch: ProcessorId ist für Ihren Chip nicht eindeutig. Jeder Ryzen 7 7800X3D mit demselben Stepping und demselben, für den Mikrocode sichtbaren Funktionsumfang gibt denselben Wert 178BFBFF00A60F12 zurück. Intel entfernte die individuelle Prozessorseriennummer (Processor Serial Number, PSN) nach dem Pentium III im Jahr 2000 aufgrund von Datenschutzbedenken aus CPUID; AMD führte eine solche Kennung nie ein. Windows meldet heute eine Modellkennung, keine Einzelgerätekennung.

Das macht den Wert nicht nutzlos. In einem zusammengesetzten Hash ist er eine stabile Komponente – er ändert sich nur, wenn Sie die CPU durch ein anderes Modell ersetzen – und hilft dabei, die Gesamtkonfiguration eines Computers zu unterscheiden. Allein kann er lediglich nicht einen bestimmten Computer von allen anderen Geräten mit demselben Prozessor abgrenzen.

Wodurch ändert sich der Wert? Durch den Austausch der CPU gegen ein anderes Modell oder Stepping. Ein Mikrocodeupdate, das gemeldete Feature-Flags ändert, kann theoretisch die niederwertigen Bits verändern; in der Praxis geschieht das selten.

MAC-Adressen

Was ist das? Eine in jeden Netzwerkadapter eingebrannte 48-Bit-Adresse, die als sechs Hexadezimalpaare dargestellt wird. Kabelgebundene Ethernet-, WLAN- und Bluetooth-Adapter besitzen jeweils eine eigene Adresse.

Der reine CMD-Befehl funktioniert weiterhin und ist nützlich:

getmac /v /fo list

PowerShell zeigt den Adapternamen und -status gemeinsam an:

Get-NetAdapter | Select-Object Name, InterfaceDescription, MacAddress, Status
Name      InterfaceDescription                     MacAddress        Status
----      --------------------                     ----------        ------
Ethernet  Realtek Gaming 2.5GbE Family Controller  04-42-1A-9B-3C-7D Up
Wi-Fi     Intel(R) Wi-Fi 6E AX211 160MHz           A0-B1-C2-D3-E4-F5 Up

Für HWIDs relevante Besonderheiten.

  • Virtuelle Adapter. VPN-Clients, Hyper-V, VMware, WSL2 und Docker fügen virtuelle Adapter mit eigenen MAC-Adressen hinzu. Diese erscheinen und verschwinden mit der Installation von Software. Eine HWID, die „alle MAC-Adressen“ einschließt, ist daher instabil. Mit Get-NetAdapter -Physical können Sie nach physischen Adaptern filtern.
  • Zufällige Hardwareadressen. Windows 10 und 11 können die WLAN-MAC pro Netzwerk randomisieren (Einstellungen → Netzwerk und Internet → WLAN → Zufällige Hardwareadressen). Ist diese Option aktiviert, unterscheidet sich die auf einem WLAN angezeigte MAC von derjenigen in einem anderen Netzwerk. Kabelgebundene Adapter sind von dieser Einstellung nicht betroffen.
  • Durch Administratoren änderbar. Bei den meisten Treibern lässt sich die MAC im Geräte-Manager unter Erweitert → Network Address überschreiben. Dies ist eine legitime, dokumentierte Funktion und kein Hack – und der Hauptgrund, warum eine MAC allein eine schwache Kennung darstellt.

Wodurch ändert sich der Wert? Durch den Austausch des Adapters, die Aktivierung der WLAN-Randomisierung, das Festlegen einer Treiberüberschreibung oder das Hinzufügen bzw. Entfernen von Virtualisierungssoftware (bei virtuellen Adaptern).

Monitorseriennummern aus EDID

Die meisten HWID-Anleitungen überspringen diesen Wert, doch einige Anti-Cheat-Systeme lesen ihn aus. Deshalb gehört er in eine vollständige Liste. Jeder Monitor sendet der Grafikkarte einen EDID-Block, der das Gerät beschreibt und einen Herstellercode sowie in der Regel eine Seriennummer enthält.

Get-CimInstance -Namespace root\wmi -ClassName WmiMonitorID | ForEach-Object {
  [PSCustomObject]@{
    Manufacturer = -join [char[]]($_.ManufacturerName -ne 0)
    Model        = -join [char[]]($_.UserFriendlyName -ne 0)
    Serial       = -join [char[]]($_.SerialNumberID -ne 0)
  }
}
Manufacturer Model          Serial
------------ -----          ------
DEL          DELL S2721DGF  9X2Y3Z4

Die Felder sind Byte-Arrays mit Nullauffüllung. Deshalb wandelt das Codebeispiel sie in Zeichen um und entfernt die Nullen. Manche Monitore – insbesondere günstigere Modelle – melden als Seriennummer 0 oder einen Wert, den die gesamte Produktionsserie gemeinsam verwendet.

Wodurch ändert sich der Wert? Durch den Austausch des Monitors. Ein anderes Kabel oder ein anderer Anschluss ändert ihn nicht.

MachineGuid – die Software-ID, die Hardwarewechsel übersteht

Was ist das? Eine GUID, die Windows während der Installation generiert und unter HKLM\SOFTWARE\Microsoft\Cryptography\MachineGuid speichert. Es handelt sich nicht um Hardware. Dennoch ist sie die am weitesten verbreitete „Computerkennung“ in Windows-Software, weil sie sich ausgesprochen einfach auslesen lässt und unabhängig von ausgetauschten Komponenten unverändert bleibt.

Reines CMD:

reg query HKLM\SOFTWARE\Microsoft\Cryptography /v MachineGuid
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography
    MachineGuid    REG_SZ    7e3a1b2c-4d5e-4f60-9a7b-8c9d0e1f2a3b

PowerShell:

(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Cryptography').MachineGuid

Wodurch ändert sich der Wert? Durch eine Neuinstallation von Windows – konkret eine saubere Installation, nicht ein direktes Upgrade oder ein Zurücksetzen, bei dem die Registrierungsstruktur erhalten bleibt. Wird ein Datenträgerabbild auf einem anderen Computer wiederhergestellt, übernimmt die neue Hardware dieselbe MachineGuid. Deshalb stellen Organisationen, die Images verteilen, manchmal fest, dass Software, die allein diesen Wert als Schlüssel verwendet, Hunderte „identische“ Computer erkennt.

Da sie sich bei einer Neuinstallation, aber nicht bei einem Hardwarewechsel ändert, verhält sich die MachineGuid entgegengesetzt zu einer Firmware-UUID. Seriöse HWID-Implementierungen verwenden beide Werte, damit weder eine Neuinstallation noch der Austausch einer einzelnen Komponente allein einen „neuen“ Computer erzeugt.

Windows-Produkt-ID

Was ist das? Die unter Einstellungen → System → Info angezeigte Zeichenfolge im Format xxxxx-xxxxx-xxxxx-AAOEM. Sie bezeichnet den Windows-Lizenzkanal und die Installation, nicht die Hardware.

(Get-CimInstance Win32_OperatingSystem).SerialNumber

Sie ist hier aufgeführt, weil wmic os get serialnumber in zahlreichen Batchdateien zum „Prüfen Ihrer HWID“ vorkommt und häufig mit einer Hardware-Seriennummer verwechselt wird. Das ist sie nicht. Sie ändert sich bei einer Neuinstallation und gelegentlich bei einem Editionswechsel oder einer erneuten Aktivierung.

ComputerHardwareIds – Microsofts eigene Hardware-ID

Diese Kennung wird außerhalb der Treiberentwicklung nur selten erwähnt und entspricht am ehesten einer offiziellen „HWID“ von Windows.

Windows Update verwendet eine Gruppe von GUIDs namens Computer Hardware IDs, um Firmware- und Treiberpakete bestimmten Systemen zuzuordnen. Sie werden durch das Hashen unterschiedlicher Kombinationen von SMBIOS-Feldern berechnet – Hersteller, Produktname, SKU, Produktfamilie, BIOS-Anbieter und -Version sowie Baseboard-Informationen – und in der Registrierung gespeichert:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\SystemInformation" /v ComputerHardwareIds
(Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\SystemInformation').ComputerHardwareIds
{a8b1c2d3-e4f5-5a6b-9c8d-7e6f5a4b3c2d}
{b9c2d3e4-f5a6-5b7c-8d9e-6f5a4b3c2d1e}
{c0d3e4f5-a6b7-5c8d-9e0f-5a4b3c2d1e0f}
...

Diese Kennungen gelten auf Modellebene, nicht auf Ebene eines einzelnen Geräts: Zwei identische Laptops mit derselben BIOS-Version erzeugen dieselbe Gruppe. Sie eignen sich jedoch als Plausibilitätsprüfung, wenn Ihre anderen Werte wie Platzhalter aussehen, weil sie aus denselben Firmwarezeichenfolgen abgeleitet werden, die auch ein HWID-Tool auslesen würde. Wenn mehrere Computer alle ComputerHardwareIds gemeinsam haben, liegt fast sicher auch das oben beschriebene Problem mit der SMBIOS-UUID oder mit To Be Filled By O.E.M. vor.

Das Windows Driver Kit enthält ComputerHardwareIds.exe. Dieses Programm gibt dieselbe Liste zusammen mit den genauen SMBIOS-Feldern aus, die in jeden Hash eingeflossen sind – hilfreich, wenn Sie exakt nachvollziehen möchten, welche Firmwarezeichenfolgen Ihr System bereitstellt.

Welche Seriennummern bilden tatsächlich eine „HWID“?

Damit sind wir bei der Frage, die hinter beiden Suchanfragen steht. Sie haben ein Dutzend Werte gelesen. Welcher davon ist die HWID?

Keiner für sich allein. Eine HWID, wie sie von Anti-Cheat-Systemen, Lizenzservern und Geräteverwaltungswerkzeugen verwendet wird, ist ein Hash aus mehreren der oben genannten Werte. Jeder Anbieter wählt eine andere Kombination und eine andere Hashmethode. Deshalb gibt es den Leitfaden zu HWID-Formaten, und deshalb lässt sich ein Wert aus einem Programm nicht mit dem Wert eines anderen vergleichen.

Aus öffentlichen Dokumentationen und Reverse-Engineering-Berichten lässt sich ungefähr ableiten, wie die Werte gewichtet werden:

KennungTypische GewichtungGrund
Mainboard-Seriennummer, SMBIOS-UUIDHochÜberstehen eine Neuinstallation des Betriebssystems und ändern sich nur bei einem Mainboardtausch
Seriennummer des physischen Datenträgers (Systemlaufwerk)HochStabil, eindeutig und einfach auszulesen
MachineGuidMittel bis hochErkennt Neuinstallationen, wird jedoch von geklonten Images gemeinsam verwendet
CPU ProcessorIdMittelStabil, aber bei jedem Chip desselben Modells identisch
Physische MAC-AdresseNiedrig bis mittelEinfach zu überschreiben; Randomisierung bei WLAN
RAM-SeriennummernNiedrigBei Speichermodulen für Endverbraucher häufig null oder doppelt vorhanden
EDID-Seriennummer des MonitorsNiedrigWird von einigen Anti-Cheat-Systemen gelesen; Peripheriegeräte werden häufig ausgetauscht
VolumeseriennummerSehr niedrigÄndert sich bei jeder Formatierung
BIOS-/GehäuseseriennummerAbhängig vom GerätHervorragend bei OEM-Geräten, auf Mainboards für den Einzelhandel jedoch oft nur ein Platzhalter

Daraus ergeben sich zwei praktische Folgen:

  1. Der Austausch einer einzelnen Komponente ändert Ihre HWID für ein gut konzipiertes System nur selten. Die meisten Implementierungen tolerieren eine bestimmte Anzahl geänderter Felder, bevor sie den Computer als neues Gerät betrachten. Der Austausch einer GPU – die in diesem Artikel bewusst nicht vorkommt, weil GPUs über WMI keine Seriennummer bereitstellen – ändert in der Regel nichts.
  2. Eine Neuinstallation von Windows ändert die MachineGuid und die Volumeseriennummer, aber keinen Wert auf Firmwareebene. Wenn Sie nachvollziehen möchten, warum eine Sperre oder Lizenzbindung eine Neuinstallation überstanden hat, ist dies die Erklärung: Mainboard, Datenträger und UUID blieben unverändert. Der Leitfaden zu HWID-Sperren erläutert die praktischen Folgen.

Alle Werte auf einmal auslesen

Vierzehn Befehle einzeln auszuführen ist einmalig kein Problem. Wenn Sie einen einzelnen Bericht speichern oder später vergleichen möchten, stehen Ihnen drei vollständig schreibgeschützte Optionen zur Verfügung.

Ein PowerShell-Block zum Einfügen. Dieser gibt die stark gewichteten Werte aus und lässt Platzhalter sichtbar, damit Sie erkennen können, was Ihre Firmware tatsächlich meldet:

$csp = Get-CimInstance Win32_ComputerSystemProduct
$bb  = Get-CimInstance Win32_BaseBoard
[PSCustomObject]@{
  SmbiosUuid    = $csp.UUID
  SystemSerial  = $csp.IdentifyingNumber
  BiosSerial    = (Get-CimInstance Win32_BIOS).SerialNumber
  BoardSerial   = $bb.SerialNumber
  BoardProduct  = $bb.Product
  DiskSerials   = (Get-PhysicalDisk | ForEach-Object { $_.SerialNumber.Trim() }) -join ', '
  CpuId         = (Get-CimInstance Win32_Processor).ProcessorId
  PhysicalMacs  = (Get-NetAdapter -Physical | ForEach-Object MacAddress) -join ', '
  MachineGuid   = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Cryptography').MachineGuid
} | Format-List

Das BAT-Skript. Wenn Sie lieber eine Datei vor der Ausführung prüfen, ist die herunterladbare .bat-Datei eine Klartext-Batchdatei, die für jede Kennung eine PowerShell-Abfrage ausführt und am Ende pausiert. Sie verwendet kein wmic, berechnet keinen Hash und schreibt nichts auf den Datenträger.

Die EXE-Datei. Der HWID Checker für Windows liest dieselben Kennungen sowie RAM- und Volumeseriennummern aus, gibt sie aus und berechnet zusätzlich einen SHA-256-Hash aus den stabilen Feldern. So erhalten Sie eine einzelne Zeichenfolge, die Sie im Zeitverlauf vergleichen können. Es handelt sich um eine portable Konsolenanwendung: Doppelklicken, lesen, Eingabetaste drücken. Der Hash ist unsere Kombination und kein Wert, den ein Spiel oder Lizenzserver verwendet. Das Werkzeug dient dazu, zu prüfen, ob Ihr eigener Computer dieselben Werte wie im Vormonat meldet, nicht dazu, die Berechnung fremder Software vorherzusagen. Der SHA-256-Hash der ausführbaren Datei selbst wird auf der Downloadseite veröffentlicht, damit Sie die Datei vor der Ausführung überprüfen können.

Häufig gestellte Fragen

Warum erhalte ich ein anderes Ergebnis als mit dem „HWID Checker“-Tool eines Freundes? Weil es keinen Standard gibt. Das andere Tool hat eine andere Gruppe von Feldern gehasht. Vergleichen Sie statt der Hashes die Rohwerte aus diesem Artikel.

Bei meiner Mainboard- und BIOS-Seriennummer steht jeweils To Be Filled By O.E.M. – stimmt etwas nicht? Nein. Sie besitzen ein Mainboard für den Einzelhandel, und der Systemintegrator – also Sie – hat die OEM-Felder nie ausgefüllt. Einige Mainboardhersteller liefern ein DMI-Bearbeitungswerkzeug, mit dem sie sich setzen lassen; normalerweise gibt es dafür jedoch keinen Grund.

Kann ich diese Werte auf einem Computer prüfen, auf den ich keinen physischen Zugriff habe? Ja, mit den entsprechenden Rechten: Get-CimInstance -ComputerName <name> Win32_BaseBoard funktioniert über WinRM oder DCOM. Jeder hier aufgeführte Befehl mit Get-CimInstance akzeptiert -ComputerName oder -CimSession.

Zeigt systeminfo HWID-Seriennummern an? Nein. Der Befehl zeigt Hersteller, Modell, BIOS-Version und Windows-Produkt-ID an, aber keine Hardware-Seriennummern. Diese Angaben bieten nützlichen Kontext, stellen aber keine Seriennummernabfrage dar.

Welche dieser Kennungen kann ich ändern? Dieser Artikel behandelt keine Änderungen an Kennungen, und der HWID Checker verändert nichts. MAC- und Volumeseriennummern sind bewusst durch Benutzer änderbar. Firmwarewerte sind nicht dafür vorgesehen; ihre Änderung auf einem Mainboard in Ihrem Eigentum ist eine Frage an den Firmwarehersteller und keine Windows-Frage.

Werden Daten hochgeladen, wenn ich diese Befehle ausführe? Nein. Jeder Befehl liest lokale Firmwaretabellen, lokale Gerätetreiber oder die lokale Registrierung aus. Kein Befehl in diesem Leitfaden stellt eine Netzwerkverbindung her – auch die herunterladbare EXE- und BAT-Datei nicht, die keinerlei Netzwerkcode enthalten.


Wenn Sie eine Kennung aus einem Programm besitzen und wissen möchten, welchem der obigen Werte sie am ehesten ähnelt, erkennt der Online-Prüfer für HWID-Formate UUIDs, MAC-Adressen, Hexadezimal-Hashes und gängige Seriennummernmuster und erklärt deren Struktur – direkt in Ihrem Browser, ohne den Wert irgendwohin zu senden.