Windows 7: Sysprep counter reset

Sysprep ist eine sehr nützliche Funktion wenn man VMs vom Template ableitet. Die neue VM wird durch den Sysprep Vorgang wieder in eine Art Urzustand zurückversetzt. So z.B. der Computername, die Domäne, das Profil des lokalen Administrator, sowie die SID.

Zu Problemen kann es kommen wenn man die abgeleitete VM wiederum zum Template verwandelt und davon erneut VMs ableitet. Denn es gibt einen Sysprep Counter, der diesen Vorgang dreimal zulässt. Spätestens nach der dritten Template Generation könnte folgende Fehlermeldung auftreten:

Date Time, Error [0x0f0073] SYSPRP RunExternalDlls:Not running DLLs; either the machine is in an invalid state or we couldn’t update the recorded state, dwRet = 31

Date TimeFehler [0x0f0073] SYSPRP RunExternalDlls:Not ausführen DLLs; entweder der Computer befindet sich in einem ungültigen Zustand oder konnte nicht aktualisieren wir den aufgezeichneten Zustand DwRet = 31

Um dies zu vermeiden muss man sicher stellen, daß der sysprep counter nicht nach jeder Ableitung hochgezählt wird. Dies ist entweder mit der SkipRearm Option von Sysprep möglich, oder man präpariert die VM, welche Template werden soll.

Template vorbereiten

Man bereitet ein Batchfile mit folgendem Inhalt vor und legt es im root von Laufwerk C ab.

reg load HKLM\MY_SYSTEM “%~dp0Windows\System32\config\system”
reg delete HKLM\MY_SYSTEM\WPA /f
reg unload HKLM\MY_SYSTEM

Anschliessend bootet man die VM in Windows Recovery environment (WinRE), indem man beim Reboot F8 drückt. Im Startbildschirm wählt man “Computer reparieren”. Anschliessend wählt man das Tastatur Layout.

Nach Eingabe von User und Passwort gelangt man ins Hauptmenü und wählt dort “Eingabeaufforderung”.

Dort startet man auf der Commandozeile das zuvor abgelgete Batchfile. Anschliessend wird die VM neu gestartet. Sie ist nun ohne Schlüssel und bereit für Sysprep. Die Warnung, daß dieses System nicht echt sei kann man zunächst ignorieren. In der Ableitungskonfiguration wird dieser VM wieder ein gültiger Schlüssel zugeordnet.

Links

Microsoft TechNet – Funktionsweise von Sysprep

Microsoft TechNet – SkipRearm

My Digital Life – How to Reset Available Remaining Rearm Count in Windows 7

 

Sysprep: Windows 2008R2 scheitert wegen Lizenznummer

Bei der Ableitung eines Templates (Windows Server 2008 R2 Datacenter Ed.) erhielt ich reproduzierbar diesen Fehler:

Die Antwortdatei für die unbeaufsichtigte Installation für Durchgang [specialize] konnte nicht analysiert oder verarbeitet werden. Die in der Antwortdatei angegebenen Einstellungen können nicht angewendet werden. Der Fehler wurde beim Verarbeiten von Einstellungen für die Komponente [Microsoft-Windows-Shell-Setup] erkannt.

Beziehungsweise für Systeme in englischer Sprache:

Windows could not parse or process the unattend file for the pass [specialize] the settings for the specified in the answer file cannot be applied. The error detected while processing settings for the componnent [Microsoft-Windows-Shell-setup].

 

Die Lösung ist recht simpel, kann aber viel Zeit kosten bis man die Ursache gefunden hat.

Ich hatte in der Anpassungsspezifikation den Lizenzschlüssel eingetragen, allerdings anstatt der Bindestriche zwischen den Blöcken Leerzeichen gelassen.

Das schmeckt dem Sysprep nicht und es wirft obigen Fehler.

Mit Bindestrichen gab es keine weiteren Probleme und die Anpassung lief durch.

Sysprep mit vCenter5 Appliance

Seit vSphere5 gibt es eine vCenter Appliance auf Linux Basis. Damit kann eine Windows Lizenz für das vCenter eingespart werden. Die Frage, die sich mir heute stellte:

Wohin mit den Sysprep Dateien für Windows XP oder 2003 Server?

Zum Glück gibts bei VMware dazu einen Artikel unter KB 1005593.

Dort steht der Pfad zum sysprep Verzeichnis:

/etc/vmware/vmware-vpx/sysprep/

Der Login per SSH muß aktiviert sein. Die Verzeichnisstruktur ist bereits angelegt. Nur die Sysprep Dateien muß man dort noch hinkopieren.

Zur Erinnerung nochmal die Pfade unter Windows: 😉

2008 und höher:

%ALLUSERSPROFILE%\VMware\VMware VirtualCenter\Sysprep\

Andere Windows Systeme (XP, 2003)

%ALLUSERSPROFILE%\Application Data\VMware\VMware VirtualCenter\Sysprep\