Windows-Features offline in einer virtuellen Maschine installieren

    Virtual Hard Disk (VHD)Wenn man Windows in einer virtuellen Maschine einrichtet, dann muss man Rollen und Features nicht im Live-System mit dem Server Manager akti­vieren. Alter­nativ kann man die VHDX-Datei für ein Offline-Servicing mit DISM oder PowerShell mounten. Damit lässt sich die Bereit­stellung von VMs be­schleunigen.

    DISM und die PowerShell-Cmdlets des gleichnamigen Moduls dienen nicht nur der Bearbeitung von WIM-Archiven, sondern eignen sich schon länger für das Servicing von VHDs. Diese Fähigkeit kann man sich zunutze machen, um die Konfiguration des Gast­betriebs­systems zu automatisieren.

    Das gilt besonders, wenn man zuvor Windows mit Hilfe von Wim2VHD ohne Benutzerinteraktion in eine VHD installiert. Anschließend muss man das virtuelle Laufwerk nicht erst an eine VM anhängen und hochfahren, sondern kann die benötigten Features gleich offline hinzufügen.

    Die dafür erforderlichen Schritte, nämlich das Mounten der VHD, das Aktivieren der Features sowie das Aushängen des Images und das Schreiben der Änderungen kann man leicht in ein Script packen und in einem Durchgang abarbeiten.

    VHD mounten

    Wenn man sich für DISM entscheidet, dann würde man die VHD nach diesem Muster mounten:

    dism /mount-image /imageFile:"F:\myvm.vhdx" /MountDir:F:\mnt /index:1

    Virtuelles Laufwerk für das Offline-Servicing mit DISM mounten und verfügbare Features anzeigen

    Der Parameter Index muss bei VHDs immer den Wert 1 haben. Der äquivalente Aufruf würde in PowerShell so aussehen:

    Mount-WindowsImage -Path f:\mnt -ImagePath "F:\myvm.vhdx" -Index 1

    Features anzeigen und aktivieren

    Anschließend kann man sich die Liste der Windows-Features anzeigen lassen, um deren genauen Namen für die Aktivierung zu ermitteln:

    Dism /Image:F:\mnt /Get-Features

    Möchte man nur ein bestimmtes aus der langen Liste der Features anzeigen, dann müsste man die Ausgabe durch eine Pipe an findstr.exe schicken.

    Bei PowerShell kann man dagegen gleich den Namen angeben, wobei auch Wildcards erlaubt sind:

    Get-WindowsOptionalFeature -Path f:\mnt -FeatureName Hyper*

    Anschließend aktiviert man das gewünschte Feature auf diese Weise:

    Dism /Image:F:\mnt /enable-Feature:Microsoft-Hyper-V /ALL

    Dieser Aufruf würde Hyper-V installieren.

    Hyper-V mit DISM in einer Offline-VHD installieren

    Die PowerShell-Variante würde so aussehen:

    Enable-WindowsOptionalFeature -Path f:\mnt -FeatureName Microsoft-Hyper-V

    Features anzeigen und aktivieren mit PowerShell, anschließend VHD aushängen und Änderungen speichern

    Als nützlich kann sich diese Art der Installation von Hyper-V bei Nested Virtualization für ein Lab mit Azure Stack HCI erweisen. Möchte man den Hypervisor in der laufenden Host-VM aktivieren, dann kann das an der Prüfung der Voraus­setzungen scheitern, obwohl diese objektiv erfüllt sind.

    Wenn die Aktivierung von Hyper-V bei Nested Virtualization im Gast-OS scheitert, kann die Offline-Aktivierung helfen.

    Fügt man ihn aber offline hinzu, dann bestehen gute Chancen, dass Hyper-V in der VM anschließend funktioniert.

    VHD aushängen und Änderungen speichern

    Zu Abschluss muss man die VHDX nur noch aushängen und dabei die Änderungen speichern. Dazu gibt man entweder

    dism /unmount-image /mountDir:F:\mnt /commit

    oder bei PowerShell

    Dismount-WindowsImage -Path f:\mnt -Save

    ein.

    VHD mit DISM aushängen und Änderungen speichern über den Schalter 'commit'.

    Das virtuelle Laufwerk kann man nun zu einer VM hinzufügen, wenn nicht ohnehin vorher geschehen.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Keine Kommentare