Wenn Sie die Virtualisierungsplattform Hyper-V von Microsoft verwenden, um virtuelle Maschinen auszuführen, sind Sie wahrscheinlich mit der Verwendung des Hyper-V-Managers vertraut. Aber wussten Sie, dass Sie mit dem Hyper-V PowerShell-Modul mehr in weniger Zeit erledigen können?
In diesem Tutorial erfahren Sie, wie Sie Hyper-V-VMs mit PowerShell verwalten, einschließlich Erstellen, Entfernen und sogar Arbeiten mit VM-Snapshots!
Voraussetzungen
Für dieses Tutorial benötigen Sie die unten aufgeführten Elemente:
- A Windows client to connect to a remote Hyper-V host. This tutorial uses Windows 10 Pro.
- A Hyper-V host with PowerShell Remoting enabled. The tutorial’s Hyper-V host is named HYPER and is in a workgroup but an Active-Directory joined client and host will work as well.
- A user account on the Hyper-V host in the local administrators group or in the Hyper-V Administrators group. This tutorial will use an account called localadmin.
Verbindung zu einem Remote-Hyper-V-Host
Um mit Hyper-V in PowerShell zu arbeiten, müssen Sie irgendwie mit dem Hyper-V-Host kommunizieren können. Sie können dies entweder lokal tun, indem Sie die Hyper-V PowerShell-Cmdlets ausführen und den Namen des Hyper-V-Hosts angeben, oder Sie können PowerShell Remoting verwenden, um sich direkt mit dem Hyper-V-Host zu verbinden.
In diesem Tutorial stellen Sie eine dauerhafte Verbindung zum Hyper-V-Host her und führen die Befehle direkt auf dem Hyper-V-Host aus.
1. Öffnen Sie PowerShell auf Ihrem lokalen Computer.
2. Führen Sie das Cmdlet Enter-PSSession
aus und geben Sie den Hostnamen Ihres entfernten Hyper-V-Hosts für den Parameter ComputerName
an. Diese Aktion erstellt eine interaktive Sitzung und ermöglicht es Ihnen, Befehle interaktiv auf dem entfernten Hyper-V-Host auszuführen.
Wenn Ihr Client und der Hyper-V-Host Mitglieder derselben Active Directory-Domäne sind, müssen Sie den Parameter
Credential
nicht verwenden.
3. Sie werden dann zur Eingabe eines Benutzernamens und eines Kennworts aufgefordert, um eine Verbindung mit dem Hyper-V-Host herzustellen. Dieser Benutzername und dieses Kennwort werden ein lokaler Administratorbenutzer auf dem Remote-Host sein. Nach erfolgreicher Verbindung sollte Ihr PowerShell-Prompt den Hostnamen des Hyper-V-Hosts anzeigen.
Sie sind jetzt bereit, Befehle auszuführen!
Erstellen von Hyper-V-VMs mit PowerShell
Vorausgesetzt, Sie sind jetzt über die PowerShell-Remotefunktion mit Ihrem Hyper-V-Host verbunden, lassen Sie uns Befehle ausführen, indem wir eine Hyper-V-VM erstellen.
Erstellen einer einfachen VM
Während Sie in Ihrer PSRemoting-Sitzung mit dem entfernten Hyper-V-Host verbunden sind:
Führen Sie das Cmdlet New-VM
aus, um eine neue VM zu erstellen. Bei der Erstellung einer VM mit dem Cmdlet New-VM
haben Sie viele verschiedene Optionen zur Auswahl, wie Sie sie erstellen möchten.
1. In diesem Beispiel unten erstellt das Tutorial eine VM mit:
- A name of MyVM (
HYPER
) - 512 MB RAM (
MemoryStartupBytes
)

Erstellen einer VM basierend auf anderen VM-Attributen
Manchmal müssen Sie eine VM mit ähnlichen Attributen wie eine andere VM erstellen. Sie können dies tun, indem Sie verschiedene VM-Attribute Variablen zuweisen und dann diese Variablen verwenden, wenn Sie die neue VM erstellen. Hier ist ein Beispiel:
1. Führen Sie Get-VM
aus, um die Attribute einer vorhandenen VM abzufragen und weisen Sie die Ausgabe einer Variablen zu, wie unten gezeigt.
2. Führen Sie das Cmdlet Get-VMMemory
aus und geben Sie den Namen der VM an, von der Sie Attribute abrufen möchten (in diesem Fall den Speicher), und weisen Sie den Speicherwert einer Variablen zu.
3. Erstellen Sie anschließend eine neue VM mit dem Cmdlet New-VM
, geben Sie den Name
an, die VM-Generation (Generation
) unter Verwendung der Generation
-Eigenschaft der anderen VM und die Speichermenge basierend auf dem erhaltenen Wert der anderen VM.

Auflisten vorhandener VMs mit PowerShell
Jetzt, da Sie mindestens zwei VMs auf dem Hyper-V-Host erstellt haben, schauen wir uns an, wie Sie erstellte VMs auflisten können. Gehen Sie dazu folgendermaßen vor:
1. Führen Sie das Cmdlet Get-VM
ohne Parameter aus. Wenn Sie es ohne Parameter ausführen, werden alle vorhandenen VMs auf dem Hyper-V-Host abgefragt. Get-VM

2. Möglicherweise möchten Sie nur nach einer einzelnen VM suchen. Verwenden Sie in diesem Fall den Parameter -Name
. Der folgende Befehl sucht in Hyper-V nach der zuvor erstellten VM mit dem Namen HYPER_old
. Get-VM -Name HYPER_old

Vielleicht müssen Sie auch alle VMs finden, die sich in einem bestimmten Status
befinden. Kein Problem. Führen Sie dazu Get-VM
aus, das alle VMs abfragt, und leiten Sie die Ausgabe an das Cmdlet Where-Object
weiter.
In dem folgenden Beispiel begrenzt das Pipe ‚|‘ die Ausgabe von Get-VM
auf nur diejenigen VM-Objekte mit einem Zustand
von Running
. Get-VM -VMName HYPER_old | Where-Object {$_.State -eq 'Running'}

Starten und Stoppen von VMs
Zu diesem Zeitpunkt ist die zuvor erstellte VM wahrscheinlich gestoppt. Lassen Sie uns das ändern, indem wir sie starten und dann auch lernen, wie man VMs stoppt.
In der PowerShell-Sitzung des entfernten Hyper-V-Hosts:
1. Führen Sie das Cmdlet Start-VM
aus und geben Sie den Namen (Name
) der zuvor erstellten VM mit dem Parameter -Name
an.

Jetzt, da die VM gestartet ist, stoppen Sie sie, indem Sie das Cmdlet Stop-VM
verwenden und den Namen der VM mit dem Parameter Name
angeben.
Sobald Sie das obige Kommando ausführen, sehen Sie, wie die VM heruntergefahren wird, wie im folgenden Screenshot zu sehen ist:

Ändern von Hyper-V-VMs
VMs bleiben nicht immer gleich. Möglicherweise müssen Sie die CPU-Ressourcen erhöhen, oder die VM läuft ständig aus Speicher. In diesem Fall ist das Cmdlet Set-VM
Ihr Freund.
Als Beispiel für die Änderung vorhandener VMs, in der PowerShell-Sitzung des entfernten Hyper-V-Hosts:
Führen Sie das Set-VM
-Cmdlet aus, um die HYPER_old-VM automatisch herunterzufahren, die derzeit ausgeführt wird. Verwenden Sie das Name
-Parameter, um die VM anzugeben, die Sie festlegen möchten, und geben Sie Shutdown
als Wert für den AutomaticStopAction
-Parameter an, um sicherzustellen, dass die VM ordnungsgemäß automatisch heruntergefahren wird, wenn der Hyper-V-Host heruntergefahren wird.
Speichern von Hyper-V-VMs
In der PowerShell-Sitzung des entfernten Hyper-V-Hosts müssen Sie möglicherweise die VM, die Sie erstellen, speichern, um den Zustand des VM-Speichers für spätere Verwendung zu erhalten. Verwenden Sie dazu das Save-VM
-Cmdlet mit dem Name
-Parameter und geben Sie den Namen der zu speichernden VM an.
Beachten Sie, dass die zu speichernde VM sich im Zustand „Ausgeführt“ befinden muss.

Verwaltung von Hyper-V-VM-Prüfpunkten
Wenn Sie den vorhandenen Zustand einer VM vor der Durchführung von Änderungen speichern oder VM-Änderungen rückgängig machen müssen, sollten Sie sich mit Prüfpunkten vertraut machen. Prüfpunkte sind eine praktische Möglichkeit, den Festplatten- und Speicherzustand einer beliebigen Hyper-V-VM schnell zu speichern.
Auf Ihrem Hyper-V-Host führen Sie das Checkpoint-VM
-Cmdlet aus und geben den Namen der VM zum Speichern sowie einen Namen für den Prüfpunkt an.
Der Parametername
SnapshotName
bezieht sich immer noch auf die alte Terminologie, die in Hyper-V 2012 verwendet wurde. Ein Schnappschuss ist dasselbe wie ein Prüfpunkt.

Sobald Sie einen Checkpoint erstellt haben, können Sie dann das Get-VMSnapshot
-Cmdlet verwenden, um alle auf dem Hyper-V-Host gespeicherten Snapshots abzurufen. Unten sehen Sie, dass die VM HYPER_old drei Checkpoints hat.

Fazit
Wenn Sie alle Demos in diesem Tutorial durchgearbeitet haben, sind Sie auf dem besten Weg, Hyper-V-VMs mit PowerShell zu verwalten. Sie sollten jetzt das erforderliche Wissen haben, um 1, 10 oder sogar 100 VMs zu verwalten!
Welche Arten von Aufgaben denken Sie, können Sie nun mit PowerShell und Hyper-V automatisieren?