Wenn man Sysprep beim Klonen von Windows-VMs verwendet, kann es passieren, dass alle geklonten Systeme die gleiche IdentifyingNumber
aus Win32_ComputerSystemProduct
erhalten – insbesondere bei virtuellen Maschinen (VMs).
đź§© Warum ist das so?
IdentifyingNumber
stammt aus SMBIOS
- Die Eigenschaft
Win32_ComputerSystemProduct.IdentifyingNumber
wird vom SMBIOS geliefert. - Bei physischen PCs enthält sie z. B. die Seriennummer des Mainboards.
- Bei VMs (z. B. Hyper-V, VMware, VirtualBox) wird dieser Wert vom Hypervisor simuliert oder fix vorgegeben.
Sysprep verändert SMBIOS-Werte nicht
- Sysprep entfernt Benutzerinformationen, SIDs, Netzwerkkonfigurationen etc.
- Aber es verändert keine Hardwareinformationen wie:
IdentifyingNumber
UUID
(ausWin32_ComputerSystemProduct.UUID
)SerialNumber
(ausWin32_BIOS
)
- Diese Werte bleiben nach dem Sysprep-Klonen identisch, wenn der Hypervisor sie nicht automatisch generiert oder du sie manuell ersetzt.
⚠️ Warum ist das ein Problem?
Asset-Management
Tools wie SCCM, GLPI, OCS Inventory oder Lizenzsysteme nutzen IdentifyingNumber
zur Erkennung von Geräten.
➡️ Wenn alle VMs die gleiche ID haben → Geräteüberschreibung.
Lizenzierung
Software, die per Hardware-ID lizenziert wird (z. B. manche PHP-Verschlüsselungen, SQL-Server-Bindungen), wird beim Klonen ungültig oder doppelt registriert.
🛠Lösung: Eindeutige SMBIOS-IDs zuweisen
FĂĽr Hyper-V:
powershellKopierenBearbeitenSet-VMFirmware -VMName "VM-Name" -SystemSerialNumber "DEINE-EINDEUTIGE-ID"
FĂĽr VMware Workstation/ESXi:
- In
.vmx
-Datei: iniKopierenBearbeitenuuid.bios = "56 4d 12 34 56 78 90 ab-cd ef 12 34 56 78 90 ab" serialNumber = "VM-1234567890"
FĂĽr VirtualBox:
cmdKopierenBearbeitenVBoxManage setextradata "VM Name" "VBoxInternal/Devices/pcbios/0/Config/SerialNumber" "UNIQUE-ID"
⚠️ Diese Werte müssen vor dem ersten Boot nach dem Klonen gesetzt werden.
âś… Empfohlener Klon-Prozess fĂĽr VMs mit Sysprep
- Sysprep ausfĂĽhren (generalize + shutdown)
- VM nicht sofort starten, sondern:
- eine neue UUID, Seriennummer, MAC-Adresse etc. konfigurieren
- Erst danach VM starten und initialisieren lassen
đź”’ Alternative: Bessere Hardware-IDs nutzen
Wenn du eine eindeutige Systemkennung brauchst, verwende eine dieser Optionen:
WMI Property | Vorteil |
---|---|
Win32_ComputerSystemProduct.UUID |
Etwas robuster, aber oft auch identisch |
Win32_BIOS.SerialNumber |
Manchmal vom Host ĂĽberschrieben (z. B. „VMware-56…“) |
Get-CimInstance Win32_BaseBoard + SerialNumber |
BIOS-Board-spezifisch, aber bei VMs oft leer |
MAC-Adresse der NIC | Unterscheidbar, falls per DHCP/Hypervisor generiert |
Oder:
Erzeuge bei Erststart eine eindeutige Kennung (z. B. GUID in Datei/Registry) → das ist verlässlich, selbst bei gleichen Hardware-IDs.
đź§ľ Fazit
Punkt | Aussage |
---|---|
IdentifyingNumber wird nicht von Sysprep zurĂĽckgesetzt |
âś… korrekt |
Klone ohne Anpassung erzeugen Duplikate | ⚠️ problematisch für Inventar, Lizenzierung, Monitoring |
Lösung | Seriennummer/UUID per Hypervisor setzen vor dem Start der geklonten VM |
Alternativ | Eigene GUID beim First Boot generieren und persistieren |
Kommentare