Tags: Windows 10, OS Deployment, Windows ADK, VHD
Für das Deployment von Windows 10 eignet sich Microsofts Standard-Image nicht immer, oft ist ein individuell angepasstes Abbild erwünscht. Um an ein solches zu gelangen, kann man eine Referenzinstallation in einer VM erstellen und diese als WIM erfassen. Mit PowerShell lässt sich dieser Vorgang beschleunigen.
Microsoft sieht verschiedene Wege zu einem angepassten Installationsabbild für Windows 10 vor. Möchte man nur Features und Treiber hinzufügen oder Apps entfernen, dann kann man dies auch offline tun. Diesem Zweck dient DISM oder ein GUI-Tool wie WIM-Witch.
Will man aber nicht nur das Betriebssystem vor der Installation modifizieren, sondern auch gleich gängige Anwendungen in das Image integrieren, dann muss man das OS installieren. An diesem Windows nimmt man online alle gewünschten Änderungen vor, generalisiert anschließend das Image und erfasst es schließlich wieder als WIM.
Für diese Operation nimmt man heute meist keine physischen PCs mehr, sondern virtuelle Maschinen. In diesem Beispiel verwende ich Hyper-V, weil es schon in Windows 10 enthalten ist, aber VMware Workstation oder VirtualBox würden sich natürlich genauso eignen.
Installation des Gast-OS mittels Script
Wenn man das Betriebssystem interaktiv in eine VM installiert, dann ist erfordert dies viele Benutzeraktionen. Beschleunigen kann man diesen Schritt mit Hilfe eines PowerShell-Scripts, das Windows 10 aus der install.wim direkt in eine VHDX spielt.
Es handelt sich dabei um Convert-WIM2VHD, das Bestandteil des Moduls WindowsImageTools ist. Dieses installiert man durch den Aufruf von
Install-Module -Name WindowsImageTools
und importiert dessen Funktionen mit
Import-Module WindowsImageTools
Das Kommando
Get-Command -Module WindowsImageTools
zeigt die 3 im Modul enthaltenen Funktionen. Für uns von Interesse ist hier Convert-Wim2VHD. Aber bevor man sie startet, muss man noch ein paar Vorbereitungen treffen.
Vorarbeiten zur VHDX-Installation
Dazu zählt, dass man die install.wim aus der Installations-ISO bereitstellt. Es ist aber nicht nötig, das WIM-Abbild daraus zu extrahieren. Vielmehr reicht es, die ISO zu mounten.
Im nächsten Schritt muss man den Index der Edition ermitteln, die man nutzen möchte. Die gesamte Liste kann man sich mit
dism /Get-WimInfo /wimFile:D:\sources\install.wim
anzeigen lassen. Im obigen Beispiel wurde die ISO in das Laufwerk mit dem Buchstaben d: gemountet.
Schließlich sollte man sich noch Gedanken zur beabsichtigten Größe der VHDX machen und überlegen, ob man eine VM der Generation 1 oder 2 verwendet. Abhängig davon muss man sich zwischen dem Disk-Layout für BIOS oder UEFI entscheiden. Bei einer 64-Bit-Version von Windows 10 wird man normalerweise UEFI und somit eine VM der Generation 2 bevorzugen.
Installation starten
Nun kann man Convert-WIM2VHD aufrufen, wobei man als zusätzliche Information den Speicherort und den Namen des virtuellen Laufwerks angeben muss:
Convert-WIM2VHD -Path f:\images\win10-1909.vhdx -SourcePath d:\Sources\install.wim `
-index 3 -Size 40GB -DiskLayout UEFI -Dynamic
Dieses Beispiel verwendet zudem noch den Schalter Dynamic, um eine dynamische VHDX zu erzeugen.
Die Funktion unterstützt noch weitere Parameter, etwa um keine WinRE-Partition anzulegen, eine Antwortdatei zu integrieren oder Features hinzuzufügen. Einiger dieser Aufgaben kann man aber auch nach der Installation interaktiv erledigen.
VHDX in neue VM einhängen
Nach dem erfolgreichen Erstellen der VHDX, das ein paar Minuten in Anspruch nimmt, legt man eine neue virtuelle Maschine an und hängt als virtuelle Festplatte die eben erzeugte VHDX ein. Wenn man die neue VM nun einschaltet, dann bootet sie in die OOBE-Phase, bei welcher der Benutzer eine Reihe von Einstellungen konfigurieren muss.
Für die geplante Anpassung des Images benötigt man aber den Audit Mode. Diesen aktiviert man am einfachsten, indem man beim ersten OOBE-Bildschirm zur Auswahl der Region die Tastenkombination STRG + Umschalten + F3 betätigt.
Windows 10 im Audit Mode anpassen
Die virtuelle Maschine startet nun neu und meldet das eingebaute Administratorkonto automatisch an. Jetzt bietet es sich an, alle ausstehenden Updates einzuspielen und danach den virtuellen Rechner neu zu starten. Das kann man gleich über PowerShell erledigen:
$u = Start-WUScan
Install-WUUpdates -Updates $u
Nach einem allfälligen Neustart installiert man die Software, welche im Image enthalten sein soll, entfernt Features und Apps oder passt die Installation nach sonstigen Erfordernissen an.
Falls man diese Referenzinstallation weiterhin verwenden möchte, um daraus angepasste Images zu generieren, sollte man an dieser Stelle einen Snapshot anlegen, zu dem man nach dem Generalisieren wieder zurückkehren kann.
Installation mit Sysprep generalisieren
Zum Abschluss wechselt man zu sysprep, das im Audit-Modus automatisch startet (ansonsten findet man es unter %SYSTEMROOT%\system32\sysprep). Beim Start ohne Parameter erhält man eine GUI, über die man unter Systembereinigungsaktion die Option Out-of-Box-Experience (OOBE) auswählt und die Checkbox Verallgemeinern anhakt. Bei den Optionen für das Herunterfahren aktiviert man Herunterfahren und klickt auf OK.
VM von Windows PE starten
Nachdem die VM ausgeschaltet ist, verbindet man ihr virtuelles DVD-Laufwerk mit der ISO von Windows PE. Dieses Mini-OS kann man von Microsofts Website herunterladen (siehe dazu die Anleitung für das Erstellen eines USB-Sticks oder einer ISO mit WinPE).
Anschließend startet man die VM vom virtuellen DVD-Laufwerk. In WinPE ruft man auf der Eingabeaufforderung DISM auf, um das Image zu erfassen:
Dism /Capture-Image /ImageFile:"D:\MyInstall.wim" /CaptureDir:C:\ /Name:MyInstall
In diesem Beispiel schreibt DISM den Inhalt des Laufwerks c: (CaptureDir) nach d:\MyInstall.wim (ImageFile). Wenn man nicht sicher ist, unter welchem Buchstaben man das Quell-Image ansprechen soll, dann kann man dies mit diskpart.exe herausfinden, wo man folgende Befehlssequenz eingibt:
list disk
select disk <nummer>
list vol
Als Speicherort für die WIM bietet sich bei einer virtuellen Maschine eine zusätzliche VHDX an, die man nach dem erneuten Herunterfahren der VM im Host-OS mounten kann. Daraus entnimmt man dann das WIM-Abbild.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Setup von Windows 10: OOBE-Dialoge für Privatsphäre, Sprache und User-Konto überspringen mit Antwortdatei
- Windows 10 2004 ist fertig: Roll-out Ende Mai, ADK verfügbar, 32-Bit-Version vor dem Aus
- WinPE für Windows 10 in ISO oder auf USB-Stick speichern
- Windows 10 1809 und Server 2019: ADK und WinPE als separate Downloads, MDT 8456
- Deployment von Windows 10 1803: ADK, Diagose-Tool, neue DISM-Optionen
Weitere Links
4 Kommentare
Danke für diesen sehr guten Beitrag.
Um die Windows Image Tools zu installieren muss die Ausführung von PowerShell Scripten aktiviert sein. Selbst wenn man nur signierte Scripte installiert wird das nicht für Jeden sicher genug sein.
Man kommt sicher auch ohne Windows Image Tools zum Ziel. Getestet habe ich es nicht.
Wer über
dism /Get-WimInfo /wimFile:D:\sources\install.wim
stolpert.
Wenn das Windows 10 Images mit dem Media Creation Tool heruntergeladen wurde gibt es statt der install.wim eine install.esd.
Dann lautet der Befehl
dism /Get-WimInfo /wimFile:D:\sources\install.esd
Obiges gilt natürlich auch für
Convert-WIM2VHD -Path f:\images\win10-1909.vhdx -SourcePath d:\Sources\install.wim `
-index 3 -Size 40GB -DiskLayout UEFI -Dynamic
Den aufwendigen Weg über das Erstellen einer Windows PE braucht man gar nicht gehen. Es genügt, eine Windows 10.iso als DVD-Source einzubinden und diese kurz anzustarten. Sofort danach ESC drücken und mit Shift+F10 in die Command-Shell. Von da aus lässt sich auch DISM zur Erstellung der neuen install.wim aufrufen.