Brauchen Sie Hyper-V-VMs zu exportieren und von einem Host zum anderen zu übertragen? Wie wäre es mit dem Exportieren einer VM von Ihrer Entwicklungsarbeitsstation zu einem Hyper-V-Host in der Produktion? Wenn ja, sind Sie hier genau richtig!
In diesem Artikel erfahren Sie, wie Sie eine virtuelle Maschine mithilfe des Hyper-V Managers und PowerShell exportieren und importieren können. Bereit? Los geht’s!
Voraussetzungen
Dieser Artikel wird ein Tutorial sein. Wenn Sie planen, Schritt für Schritt mitzumachen, benötigen Sie folgendes:
- PowerShell 7 oder Windows PowerShell 5.1 – Dieses Tutorial konzentriert sich auf PowerShell 7, aber die Befehle funktionieren auch mit Windows PowerShell 5.1.
- A Windows Server with Hyper-V enabled – This tutorial is based on the insider preview released March 2021, but any Windows Server from 2012R2 onward will suffice.
- A virtual machine guest – This tutorial is using an Alpine Linux guest because it’s light on resources. You can use any guest Operating System you like.
- A local Windows user account in the local administrators group on the Hyper-V host.
Schritte zum Exportieren von Hyper-V-VMs
Wenn Sie kein Fan der Befehlszeile sind oder einfach nur eine einzelne VM auf die Festplatte speichern möchten, ist der Hyper-V-Manager eine solide Wahl. Vorausgesetzt, Sie befinden sich auf Ihrem Hyper-V-Host und haben eine virtuelle Maschine ausgeführt:
1. Geben Sie im Windows-Suchmenü „hyper“ ein. Die Hyper-V-Manager-Konsole sollte für Sie erscheinen. Wenn ja, klicken Sie darauf, um sie zu öffnen.
2. Finden Sie die zu exportierende VM, klicken Sie mit der rechten Maustaste darauf und klicken Sie auf Exportieren.

3. Wählen Sie als Nächstes einen Ordner aus, um die VM und Konfiguration zu speichern, und klicken Sie auf Exportieren.

Der Speicherort, den Sie auswählen, um die VM zu speichern, sollte genügend Speicherplatz für den exportierten VM haben. Dies wird variieren. Denken Sie daran, dass Sie zwar 60 GB für die Festplatte zugewiesen haben können, dies jedoch nicht bedeutet, dass die VM-Festplatte auf 60 GB angewachsen ist.
Sobald der Exportvorgang in Hyper-V beginnt, sehen Sie den Status des Exports im Hyper-V-Managerfenster.

4. Bestätigen Sie nun, dass alle erforderlichen Dateien vorhanden sind. Sie sollten drei Unterordner sehen. Diese Unterordner enthalten alle für den Start der exportierten VM erforderlichen Dateien; Snapshots, Virtuelle Festplatten und Virtuelle Maschinen.

- Der Snapshots-Ordner enthält Informationen zu Snapshots für die VM. Der Ordner kann leer sein, wenn es keine Snapshots für die VM gab. In diesem Ordner sehen Sie Dateierweiterungen VMCX, VMRS und VMGS. Die VMCX-Binärdatei enthält Konfigurationsinformationen, die spezifisch für Ihre exportierte VM sind. Die VMRS-Binärdatei enthält Informationen zum VM-Laufzeitstatus. Ohne diese Datei kann die VM nicht starten. Last but not least gibt es die Datei VMGS. Ich bin mir nicht sicher, wofür diese Datei ist. Wenn Sie es wissen, hinterlassen Sie einen Kommentar.
Wenn Sie bereits Erfahrung mit Hyper-V haben, haben Sie möglicherweise etwas Besonderes an den Dateierweiterungen bemerkt. Ab Windows Server 2016 verwendet Hyper-V keine XML-Dateien mehr für Konfigurationsinformationen und ist stattdessen zu Binärdateien gewechselt. Erfahren Sie mehr über diese neuen Erweiterungen.
Wenn Ihre VM mehr als einen Kontrollpunkt hat, sehen Sie mehrere VMCX-, VMRS- und VMGS-Dateien für jeden Kontrollpunkt, den die VM hat.

- Der Ordner Virtual Hard Disks enthält alle Festplattenabbilddateien oder *.vhdx für die VM. Die AVHDX– oder Automatic virtual hard disk-Datei ist eine Differenzdatenträger, der für virtuelle Maschinenkontrollpunkte verwendet wird. Wenn Ihre virtuelle Maschine mehr als einen Kontrollpunkt hat, sehen Sie mehrere AVHDX-Dateien.

- Der Ordner Virtual Machines enthält die VM-Konfigurationsdateien, die zum Starten der VM verwendet werden. Ähnlich wie im Snapshots-Ordner finden Sie hier auch VMCX-, VMRS- und VMGS-Binärdateien.

Wenn alle drei Ordner vorhanden sind und Dateien enthalten, war der Export erfolgreich.
Verwenden von PowerShell zum Exportieren einer VM
Wenn Sie ein Fan der Befehlszeile sind oder viele VMs exportieren müssen, ist die Verwendung von PowerShell zum Exportieren einer VM ebenfalls eine gute Option. Verwenden Sie das Export-VM
-Cmdlet, um eine Hyper-V mit PowerShell zu exportieren. Nehmen Sie an, Sie befinden sich auf Ihrem Hyper-V-Host und Ihre VM ist offline:
1. Öffnen Sie eine PowerShell-Konsole.
2. Fragen Sie den Hyper-V-Host ab, um eine Bestandsaufnahme Ihrer VMs und den Namen der zu exportierenden VM zu erhalten. In diesem Tutorial wird eine VM namens Alpine Linux 01
exportiert.

Export-VM
command3. Erstellen Sie einen Ordner, um die VM zu exportieren. In diesem Tutorial wird die VM in C:\Export_VM exportiert.
4. Exportieren Sie nun die VM mit dem Export-VM
-Befehl und geben Sie den Namen der virtuellen Maschine für den Name
-Parameter, den Pfad
zum Ordner, in dem sie gespeichert werden soll, und den PassThru
-Parameter an.
Der
PassThru
-Parameter ist optional, um das exportierte VM-Objekt zurückzugeben. Andernfalls liefertExport-VM
keine Ausgabe.

Wenn eine VM läuft, speichert
Export-VM
den Speicher nicht automatisch. Wenn Sie den Inhalt des im VM ausgeführten Speichers speichern möchten, verwenden Sie den-CaptureLiveState CaptureSavedState
-Parameter mitExport-VM
. Erfahren Sie mehr über die Technologie zur Speichererfassung.
5. Entfernen Sie nun die VM aus Hyper-V. Keine Sorge! Sie haben sie gespeichert!
Verwenden des Hyper-V-Managers zum Importieren einer VM
Nachdem Sie die VM exportiert haben, ist ein Desaster eingetreten und die VM ist verschwunden. Keine Sorge! Sie haben sie bereits auf die Festplatte exportiert. Holen wir sie zurück. Dazu gehen Sie davon aus, dass Sie sich wieder auf Ihrem Hyper-V-Host befinden:
1. Öffnen Sie den Hyper-V-Manager.
2. Klicken Sie auf den Menüpunkt Virtuelle Maschine importieren auf der rechten Seite des Hyper-V-Manager-Fensters. Es wird der Assistent Virtuelle Maschine importieren angezeigt. Klicken Sie auf Weiter.

3. Geben Sie als Nächstes den Pfad zur exportierten virtuellen Maschine ein, die Sie importieren möchten, und klicken Sie auf Weiter. Für dieses Tutorial wird die VM unter C:\Export_VM\Alpine Linux 01 gespeichert.
Im Gegensatz zum Importieren mit PowerShell wird der Assistent die VMCX-Datei der VM für Sie finden.

4. Sobald Hyper-V die VM-Konfigurationsdateien im Ordner entdeckt hat (in diesem Beispiel C:\Exported_VM\Alpine Linux 01\Virtual Machines\), wird Hyper-V Sie auffordern, eine virtuelle Maschine zum Importieren auszuwählen. Wählen Sie die VM aus, die Sie importieren möchten, und klicken Sie auf Weiter.

5. Wählen Sie als Nächstes den Typ des Imports aus, den Sie durchführen möchten. Lassen Sie uns zunächst die Optionen genauer erkunden.
Wenn Sie die Option „Registrieren Sie die virtuelle Maschine vor Ort (verwenden Sie die vorhandene eindeutige ID)“ wählen, gehen Sie davon aus, dass die exportierten VM-Dateien sich an ihrem endgültigen Speicherort befinden, was bedeutet, dass Sie die VM nicht in einen neuen Ordner verschieben. Die exportierten VM-Dateien werden zum laufenden Zustand der virtuellen Maschine. Die UID ändert sich nicht.
Die UID ist das, was Hyper-V verwendet, um eine virtuelle Maschine zu identifizieren. Wenn Hyper-V feststellt, dass dieselbe UID derzeit registriert ist, erhalten Sie einen Fehler.
Beim Wiederherstellen der virtuellen Maschine können Sie einen Speicherort auswählen oder den Standard-Hyper-V-Speicherort für die exportierten VM-Dateien verwenden.
Wenn Sie die virtuelle Maschine kopieren, ist dies ähnlich wie das Wiederherstellen einer exportierten VM, jedoch mit einer neuen eindeutigen ID (UID). Eine neue UID ermöglicht es, dieselbe virtuelle Maschine mehrmals auf denselben oder verschiedenen Hyper-V-Hosts bereitzustellen.
Für die Demonstration wählen wir zunächst den Importtyp. Kopieren Sie die virtuelle Maschine. Durch das Kopieren der VM wird eine neue eindeutige ID (UID) generiert. Jede Hyper-V-VM wird durch eine UID identifiziert. Diese Option ist für jetzt in Ordnung, also klicken Sie auf Weiter.

6. Da Sie die Option Kopieren gewählt haben, können Sie den Speicherort ändern, an dem die Dateien der virtuellen Maschine gespeichert sind. Klicken Sie auf Weiter, um die Standardeinstellungen für dieses Tutorial zu akzeptieren.

7. Wählen Sie abschließend einen Speicherort für die VM, der als Speicherordner bekannt ist. Der Speicherordner ist der Ort, an dem sich die VHDX- und AVHDX-Dateien befinden werden. Akzeptieren Sie für dieses Tutorial den Standardstandort und klicken Sie auf Weiter.

8. Überprüfen Sie die Zusammenfassungsseite und klicken Sie auf Beenden, wenn Sie bereit sind, mit dem Import zu beginnen.

Wenn der Importvorgang von Hyper-V abgeschlossen ist, kehrt er zum Hyper-V-Managerfenster zurück, und Sie sehen jetzt die importierte VM, wie unten dargestellt.

Verwenden von PowerShell zum Importieren einer VM
Wenn das Importieren einer VM über den Hyper-V-Manager nicht Ihre Sache ist, kein Problem. Verwenden Sie PowerShell! Um eine VM mit PowerShell zu importieren, verwenden Sie das Import-VM-Cmdlet. Betrachten Sie das folgende Szenario:
Du hast eine VM exportiert, und sie befindet sich in C:\Exported_VM\, und nehmen wir an, sie wird versehentlich gelöscht oder wird möglicherweise auf einem anderen Hyper-V-Host benötigt? Da sie bereits exportiert ist, ist sie im Grunde genommen gesichert und kann problemlos importiert werden, um die VM wiederherzustellen.
Wenn das Export-VM
eine VM auf die Festplatte speichert, führt das Import-VM
-Cmdlet das Gegenteil aus; es liest eine VM von der Festplatte und importiert sie in Hyper-V.
1. Nehmen wir an, du hast bereits eine PowerShell-Konsole geöffnet und befindest dich im Verzeichnis, in dem du eine VM exportiert hast (C:\Exported_VM). Führe zuerst das Get-ChildItem
-Cmdlet mit dem Recurse
-Schalter aus, um alle Dateien aufzulisten und notiere den Dateinamen mit der Erweiterung *.vmcx mit dem folgenden Code:
Es können mehrere .vmcx-Dateien angezeigt werden, abhängig davon, ob die exportierte VM Snapshots hatte. Die einzige Datei, die du benötigst, um die VM zu starten, ist die VMCX-Datei im Ordner Virtuelle Maschinen.
Du kannst eine Ausgabe sehen, die ähnlich wie das folgende Beispiel aussieht:

2. Verwende als Nächstes das Import-VM
-Cmdlet mit dem Pfad
-Parameter, um die Konfigurationsdateien der VM anzugeben (die im vorherigen Schritt erhalten wurden).
Das war’s! Du hast die VM am selben Ort registriert, unter Verwendung derselben UID, die die VM beim Exportieren hatte.

3. Überprüfe nun, ob die UID dieselbe ist wie .vmcx Dateiname, als die VM exportiert wurde. Du kannst den folgenden Code verwenden, um genau das zu tun, indem du WMI abfragst:

Das obige Beispiel wurde direkt aus der VM-Konfigurationsdatei importiert, und die VM behielt die ursprüngliche UID bei. In einer Produktionsumgebung möchten Sie möglicherweise eine neue UID generieren, um zu verhindern, dass eine alte VM für eine neue VM gehalten wird. Hier kommt der Copy
-Parameter ins Spiel.
Das Importieren einer virtuellen Maschine unter Verwendung des
Copy
-Parameters kopiert die Dateien aus dem ursprünglichen Speicherort (C:\Exported_VM\) in die konfigurierten Pfade des Hyper-V-Servers. Wenn er mitGenerateNewId
verwendet wird, kann die VM mehrmals auf demselben Hyper-V-Server mit einem neuen eindeutigen Bezeichner (UID) importiert werden.
Diesmal enthält die importierte VM nicht dieselbe UID wie bei der Exportierung. Sie sehen die alten und neuen UIDs im folgenden Screenshot:

Hyper-V kopiert die VM jetzt in die Standardpfade, die Sie beim Importieren einer VM mit dem Hyper-V-Manager gesehen haben, gibt der VM jedoch eine neue UID.
Nächste Schritte
In diesem Leitfaden haben Sie gelernt, wie Sie eine Hyper-V-VM mithilfe von PowerShell und dem integrierten Hyper-V-Manager exportieren und importieren können.
Jetzt, da Sie wissen, wie Sie Hyper-V-Virtual Machines exportieren und importieren können, versuchen Sie, Automatische Virtual Machine Activation (AVMA) einzurichten, um Windows Server-Virtual Machines zu aktivieren, die auf Hyper-V gehostet werden.