Überblick
Es gibt unzählige Cmdlets für das Verwaltung und Konfigurieren von virtuellen Maschinen in Hyper-V. In diesem Artikel möchte ich die meiner Meinung nach 10 wichtigsten kurz erläutern. Detailliert findet man alle auf der Technet Seite.
1. Vorhandene virtuelle Maschinen
Als erstes möchte man wissen, welche virtuellen Maschinen auf dem Hyper-V vorhanden sind. Hier gibt es das Cmdlet: Get-VM. Dieses liefert alle vorhanden virtuellen Maschinen mit einigen Eigenschaften zurück.
PS c:> Get-VM

Möchte man jetzt mehr Informationen von einem bestimmten virtuellen Computer erhalten, so kann man hierfür die Pipe mit der Option select und einer Wild Card (*) verwenden.
PS C:> Get-VM vkubuntu | select *

Noch ausführlicher mit bestimmten Informationen geht es natürlich, wenn man verschiedene Filter anwendet. Hier ist wieder das richtige Handling mit der Pipe gefragt. Im folgendem Beispiel sollen alle virtuelle Maschinen nach deren Status und Uptime ausgegeben werden.
PS C:> Get-VM where {$_.state -eq 'running'} | sort Uptime

2. Virtuelle Maschinen starten
Natürlich kann man virtuelle Maschinen auch mit der Powershell sehr einfach starten. Hierfür verwendet man das Cmdlet Start-VM. Mit diesem Cmdlet ist es z.B. möglich, virtuelle Maschinen über ein hinterlegtes Script zu starten. Man könnte sich folgendens Szenario vorstellen. Wenn sich ein bestimmter Benutzer am System anmeldet, soll über ein Powershell Anmeldescript automatisch gleich ein bestimmter virtueller Computer gestartet werden.
PS C:>Start-VM Kubuntu
PS C:>Start-VM Kubuntu -Asjob
3. Virtuelle Maschinen stoppen
Genauso wie man auch virtuelle Maschinen starten kann, so können diese auch gestoppt werden. Im wesentlichen gibt es drei wichtige Arten, wie der virtuelle Computer ausgeschaltet wird.
PS C:>Stop-VM Kubuntu
Ohne einer Angabe, wird der Computer durch das Gast System heruntergefahren. Je nach geöffneten Anwendungen, kann das Herunterfahren schon etwas Zeit in Anspruch nehmen.
PS C:>Stop-VM Kubuntu -Force
Dieser Parameter denke ich, ist klar. Hier wird der virtuelle Computer ebenfalls über das Gast System heruntergefahren. Aber nach einer Wartezeit von 5 Minuten wird er auf alle Fälle ausgeschaltet. Mit diesem Parameter kann natürlich beim Herunterfahren ein Datenverlust auftreten.
PS C:>Stop-VM Kubuntu -TurnOff
Auch hier erfolgt das sofortige Abschalten, was auch zu einem Datenverlust führen kann.
4. Prüfpunkt bzw. Snapshot erstellen
PS C:>Checkpoint-VM kubuntu -SnapshotName "vskubuntu"
5. Prüfpunkte bzw. Snapshots auflisten
Um zu sehen, welche Snapshots auf dem System vorhanden sind, kann man das Cmdlet Get-VMSnapsot verwenden. Sollte man es mit einer Wild Card (*) anwenden, so erhält man alle Snapshots von allen virtuellen Maschine. Wenn man jedoch nur die einer bestimmten Maschine haben möchte, so reicht die Angabe des Namens.
PS C:>Get-VMSnapshot *
PS C:>Get-VMSnapshot kubuntu

6. Prüfpunkte bzw. Snapshots entfernen
Falls man das Erstellen von Snapshots automatisiert, können sich schon viele Dateien ansammeln. Um hier auch überflüssiges wieder loszuwerden, bietet die Powershell das Cmdlet Remove-VMSnapshot an.
PS C:>Get-VM kubuntu | Get-VMSnapshot -Name vskubuntu | Remove-VMSnapshot
7. Virtuelle Maschinen exportieren
Mit Export-VM wird die komplette virtuelle Maschine Exportiert. Mit inbegriffen sind hier die komplette vhd bzw. vhdx Datei sowie sämtliche Snapshots und Konfigurationsdateien.
PS C:> Export-VM "Kubuntu" -Path B:Backup
8. Informationen zum Netzwerkadapter
Möchte man herausfinden, welcher → Netzwerkadapter (Anzeige)* einer bestimmten Maschine zugewiesen ist bzw. welche IP-Adresse diese Maschine dann hat, so bietet die Powershell das Cmdlet Get-NetzworkAdapter.
PS C:>Get-VMNetworkAdapter -VMName kubuntu
PS C:>Get-VMNetworkAdapter -VMName kubuntu | select -expand IPAddresses

9. Virtuelle Festplatten testen
Mit dem Cmdlet TestVHD kann man virutelle → Festplatten (Anzeige)* testen. Sofern alles in Ordnung ist, gibt die Powershell True zurück. Sollte ein Fehler vorliegen dann wird natürlich False zurückgegeben.
PS C:>Test-VHD kubuntu.vhdx

10. Informationen zum Hyper-V Host
Zu guter letzt möchte man evtl. auch Informationen zum Hyper-V Host erhalten. Hierfür kann man Get-VMHost verwenden.
PS C:> Get-VMHost

Fazit
Hyper-V mit der Powershell zu verwalten, bietet wesentlich mehr Möglichkeiten, als wenn man die Maschinen mit dem grafischen Hyper-V Manager verwaltet. Gerade im Bereich der Automatisierung ist die Powershell sehr zu empfehlen und bietet Möglichkeiten, welche es per GUI gar nicht gibt. Es lohnt sich meiner Meinung nach auf jeden Fall, sich mal die wichtigstes Cmdlets anzusehen.