Vom ISO zur Up-To-Date Sysprep VHDX / VHD

Bei dem letzten Microsoft IT-Camp zum Thema Cloud OS stellten die Speaker am Rand das Powershell Script Convert-WindowsImage.ps1 aus der Microsoft Technet Galerie vor, was es ermöglicht aus einer ISO Datei eine gesysprepte virtuelle Festplatte zu erstellen. Das Tool ist schon so sehr hilfreich aber ein Kursteilnehmer stellte die interessante Frage ob diese virtuelle Festplatte dann auch offline gepatcht werden könne, worauf die Speaker keine klare Antwort liefern konnten. Manchmal muss man das Rad ja nicht neu erfinden. Zum Ausführen muss die Ausführungsrichtlinie von Powershell geändert werden, da die Skripte nicht digital signiert sind.

Set-ExecutionPolicy Unrestricted und am Ende zurück mit Set-ExecutionPolicy Restricted

Teil 1 – vom ISO zur virtuellen Festplatte

Das Powershell Script verfügt über eine grafische Schnittstelle und kann mit Convert-WindowsImage.ps1 –ShowUI  aufgerufen werden, wobei hier nicht alle Optionen verfügbar sind. Anschließend werden das Quell-ISO, die Windows Edition, das Format, der Typ und die Größe der virtuellen Festplatte ausgewählt werden und los geht’s.

Convert-WindowsImage UI

Teil 2 – Offline Patchen von VHD / VHDX

Hier gibt es mehrere Möglichkeiten. Zum einen wieder ein Script Apply-WindowsUpdate.ps1 aus der Microsoft Technet Galerie was den internen WSUS als Quelle verwendet oder das Powershell Module Install-Patch von windowsitpro.com, was lokal geladene Updates verwendet.

Ich habe es mit dem Skript der Technet Gallery durchgespielt. Nachdem das Script Apply-WindowsUpdate.ps1 aufgerufen wurde, fragt es notwendige Paramter ab. Der Ordner MountDir muss vorhanden und leer sein.

VhdPath: D:\os_windows_server_2012_r2_x64_eu_msdn.vhdx
MountDir: D:\Mount 
WsusServerName: wsus
WsusContentPath: \\wsus\WSUSContent

Während der Laufzeit wird die Festplatte in dem angegeben Ordner gemountet, Änderungen werden in die DISM.vhdx geschrieben und abschließend in die eigentliche Festplatte übertragen.

Windows Explorer - Updateprozess

Einige Updates sind allerdings nicht zur Offline Installation supported! Diese könnten per Abfrage im Powershell Script sicherlich exkludiert werden.

PS-Skript-Unsupported

Der Prozess kann je nach Größe des WSUS sehr lange dauern, da das Script das gesamte WSUS Verzeichnis durchläuft. Der Prozess kann beschleunigt werden, imdem alles direkt auf dem WSUS Server ausgeführt wird. Im Ergebnis erhaltet ihr eine voll gepatchte gesysprepte VM Vorlage.

Windows Explorer - Ergebnis

Ausgeführt als virtuelle Maschine erkennt man keinen Unterschied mehr.

Test-VM Windows Update