Die 10 wichtigsten Cmdlets für Hyper-V

Mit diesen 10 PowerShell Befehlen kanns du Hyper-V perfekt administrieren

Ü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
Hyper-V: Powershell: virtuelle Computer anzeigen
Hyper-V mit der Powershell: virtuelle Computer anzeigen

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 *
Hyper-V: Powershell: virtuelle Computer detailliert anzeigen
Hyper-V: Powershell: virtuelle Computer detailliert anzeigen

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
Hyper-V: Powershell: virtuelle Computer; Ergebnisse Filtern
Hyper-V: Powershell: virtuelle Computer; Ergebnisse Filtern

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

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.

Hyper-V: Powershell: Snapshots auflisten
Hyper-V: Powershell: Snapshots auflisten

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.

Hyper-V: Powershell: Snapshots entfernen
Hyper-V: Powershell: Snapshots entfernen

 

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
Hyper-V: Powershell: Virtuelle Netzwerkadapter
Hyper-V: Powershell: Virtuelle Netzwerkadapter

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
Hyper-V: Powershell: Virtuelle Festplatte testen
Hyper-V: Powershell: Virtuelle Festplatte testen

 

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
Hyper-V: Powershell: Infomationen zum Host
Hyper-V: Powershell: Infomationen zum Host

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.