Die Verwaltung von Hyper-V-VMs über PowerShell ist eine echte Erleichterung, sobald man den Dreh raus hat. Wenn die Konfiguration und Verwaltung von VMs über die grafische Benutzeroberfläche (GUI) umständlich erscheint, können PowerShell-Befehle viele Routineaufgaben vereinfachen – vom Erstellen von VMs über Netzwerk-Switches bis hin zu Snapshots. Auch für die Automatisierung von Bereitstellungen oder Updates ist die Skripterstellung absolut sinnvoll. Allerdings ist es manchmal knifflig, die richtigen Befehle zu finden – insbesondere angesichts der vielen verschiedenen Windows-Versionen und Hyper-V-Konfigurationen. Daher folgt hier eine Übersicht der typischerweise benötigten Schritte und einige Tipps aus der Praxis. Es ist zwar etwas unübersichtlich, aber es funktioniert. Sie sollten sich mit Befehlen wie `Install-WindowsFeature`, `New-VMSwitch`, `New-VM` und allen VM-Steuerungsbefehlen wie `Start-VM`, `Stop-VM` usw.vertraut machen. Beachten Sie außerdem, dass Pfade, Netzwerkadapternamen und VM-Namen unbedingt korrekt sein müssen, da die Skripte sonst kaum funktionieren. Falls etwas nicht wie erwartet läuft, kann ein Neustart oder das erneute Aktivieren von Funktionen helfen, da Windows es einem oft unnötig schwer macht. Nun zu den einzelnen Schritten…
Wie man Hyper-V-VMs über PowerShell verwaltet
Aktivieren Sie die Hyper-V-Rolle auf Ihrem Server oder Desktop.
Falls Ihre Hyper-V-Komponenten nicht funktionieren – beispielsweise nach einer Windows-Neuinstallation oder bei einer aktuellen Einrichtung –, müssen Sie die entsprechende Rolle zunächst aktivieren. Unter Windows Server lautet der Befehl:
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
Unter Windows 10/11 ist das etwas anders, und man macht das typischerweise auch über PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All
Dieser Befehl startet die Installation der neuen Funktion. Bei manchen Systemen ist ein Neustart erforderlich; halten Sie sich darauf vorbereitet. Hinweis: Stellen Sie sicher, dass Ihre CPU Virtualisierung unterstützt (Intel VT-x oder AMD-V) und dass Virtualisierung im BIOS aktiviert ist – andernfalls funktioniert die Funktion nicht. Mit dem Befehl ` systeminfo` in der Eingabeaufforderung oder PowerShell können Sie überprüfen, ob Virtualisierung aktiviert ist.
Prüfen Sie, ob Hyper-V aktiv ist und Sie startklar sind.
Ehrlich gesagt, ist es manchmal unklar, ob Hyper-V korrekt installiert wurde. Führen Sie Folgendes aus:
Get-Command -Module hyper-v
Wenn keine Befehle angezeigt werden, ist Hyper-V nicht bereit. Sie können die Hyper-V-Hostinformationen auch mit folgendem Befehl überprüfen:
Get-VMHost|fl *
Oder überprüfen Sie Ihre CPU-Informationen mit:
Get-ComputerInfo -Property "CsNumberOfLogicalProcessors", "CsTotalPhysicalMemory"
Wenn die Befehle funktionieren, können Sie mit dem Erstellen und Verwalten von VMs beginnen.
Erstellen eines virtuellen Switches für den Netzwerkzugriff
Das Erstellen dieses virtuellen Switches ist üblicherweise der erste Schritt bei der Netzwerkeinrichtung. Zuerst sollten Sie Ihre Netzwerkadapter auflisten:
Get-NetAdapter | where {$_.status -eq "up"}
Identifizieren Sie den richtigen Anschluss, üblicherweise „Ethernet“ oder ähnlich genannt. Wenn Ihre Hardware SR-IOV unterstützt (abhängig von Ihrer Netzwerkkarte), müssen Sie dies am Switch aktivieren – das ist jedoch ein anderes Thema. Um einen externen Switch zu erstellen, der Ihre physische Netzwerkkarte überbrückt, führen Sie beispielsweise folgenden Befehl aus:
New-VMSwitch -Name "ExternalVMSwitch" -AllowManagementOS $True -NetAdapterName "Ethernet0" -SwitchType External
Ersetzen Sie „Ethernet0“ durch den Namen Ihrer tatsächlichen Schnittstelle. Manchmal schlägt die Switch-Erstellung fehl, wenn der Adapter verwendet oder falsch konfiguriert ist.Überprüfen Sie daher, ob der Adapter aktiv ist und nicht an ein ungewöhnliches Gerät angeschlossen ist.
Erstellen einer VM mit PowerShell
Jetzt wird es interessant. Um schnell eine VM zu erstellen, gehen Sie wie folgt vor:
$VMName = "mun-prx2" $VMConfig = @{ Name = $VMName MemoryStartupBytes = 1GB Generation = 2 Path = "E:\HV\$VMName" SwitchName = "ExternalVMSwitch" } New-VM @VMConfig # And create a virtual disk if you haven’t yet: New-VHD -Path "E:\HV\$VMName\$VMName.vhdx" -SizeBytes 10GB # Attach that disk: Add-VMHardDiskDrive -VMName $VMName -Path "E:\HV\$VMName\$VMName.vhdx"
Dadurch wird eine VM der zweiten Generation mit 1 GB RAM (vorläufig) und einer 10 GB großen virtuellen Festplatte erstellt. Sie können die Einstellungen und Größen nach Bedarf anpassen. Gelegentlich treten Fehler auf, wenn Pfade nicht existieren oder Berechtigungen falsch sind.Überprüfen Sie daher vor dem Ausführen, ob Ihre Ordner beschreibbar sind und existieren.
VM-Einstellungen im laufenden Betrieb anpassen
Wenn Sie mehr Arbeitsspeicher oder CPUs benötigen, verwenden Sie Befehle wie:
Get-VM -Name "mun-prx2" | Set-VMMemory -StartupBytes 2GB Set-VMProcessor -VMName "mun-prx2" -Count 2
Diese Funktionen sind hilfreich, wenn Sie feststellen, dass Ihre VM zu wenig Leistung hat oder mehr Ressourcen benötigt. Beachten Sie, dass einige Änderungen ein Herunterfahren oder einen Neustart der VM erfordern. Planen Sie daher entsprechend.
VMs steuern – Starten, Stoppen, Speichern, Snapshot
Starten einer VM: `Start-VM -Name „mun-prx2″` – selbsterklärend. Sicheres Herunterfahren: `Stop-VM -Name „mun-prx2″` (für ein ordnungsgemäßes Herunterfahren stellen Sie sicher, dass die Integrationsdienste im Gastbetriebssystem ausgeführt werden).Sofortiges Ausschalten (hartes Herunterfahren):
Stop-VM -Name "mun-prx2" -TurnOff
Speichern von Momentaufnahmen (Checkpoints):
Checkpoint-VM -VMName "mun-prx2" -SnapshotName "Before major changes"
Die Wiederherstellung eines früheren Zustands kann vieles rückgängig machen, falls etwas schiefgeht:
Restore-VMCheckpoint -VMName "mun-prx2" -Name "Before major changes" -Confirm:$false
Zusätzliche Tipps – Verschieben, Größenänderung, Exportieren von VMs
Wenn Sie eine virtuelle Maschine auf eine andere Festplatte verschieben müssen, hilft Ihnen dieser Befehl:
Move-VMStorage -VMName "mun-prx2" -DestinationStoragePath "D:\VMs"
Die Größenänderung virtueller Festplatten ist knifflig, aber mit folgendem Tool machbar:
Resize-VHD -Path 'E:\HV\mun-prx2\mun-prx2.vhdx' -SizeBytes 50GB
Und wenn Sie VMs sichern oder klonen möchten, exportieren Sie diese zuerst:
Export-VM -Name "mun-prx2" -Path "C:\VHD\export"
Später können Sie diese Exportdatei importieren oder klonen.
Abrufen von Gast-IPs und Verbinden mit VMs
Um herauszufinden, welche IP-Adresse Ihr Gastbetriebssystem verwendet (vorausgesetzt, es verwendet DHCP und die Netzwerkkonfiguration lässt dies zu):
Get-VM | Select -ExpandProperty NetworkAdapters | Select VMName, IPAddresses, Status
Um eine Verbindung zur Konsole einer VM herzustellen, verwenden Sie Folgendes:
vmconnect.exe localhost mun-prx2
Für fortgeschrittenere Funktionen wie PowerShell Direct – mit dem Sie Befehle direkt in der VM ohne Netzwerkverbindung ausführen können – verwenden Sie:
Invoke-Command -VMName mun-prx2 -ScriptBlock {Get-Process} Enter-PSSession -VMName mun-prx2
Und das Kopieren von Dateien kann folgendermaßen erfolgen:
$session = New-PSSession -VMName mun-prx2 -Credential (Get-Credential) Copy-Item -ToSession $session -Path E:\ISO\install.iso -Destination D:\ISO
Ja, es sieht kompliziert aus, aber sobald man den Dreh raus hat, ist die Steuerung von Hyper-V über PowerShell eine tolle Möglichkeit, mehrere VMs schnell zu verwalten. Vergessen Sie nur nicht, Ihre Pfade, VM-Namen und Netzwerkadapter zu überprüfen – da treten meistens Probleme auf.
Zusammenfassung
- Aktivieren Sie Hyper-V mit PowerShell – sowohl auf Windows Server- als auch auf Client-Editionen.
- Erstellen Sie virtuelle Switches basierend auf Ihren Netzwerkadaptern.
- Neue VMs werden mit `New-VM` bereitgestellt, Ressourcen festgelegt und Festplatten verknüpft.
- VM-Status mit Start/Stopp, Snapshots und Export/Import steuern.
- Nutzen Sie PowerShell Direct für die Verwaltung innerhalb und außerhalb von Gastsystemen ohne Netzwerkprobleme.
Zusammenfassung
Die Verwaltung von Hyper-V über PowerShell kann anfangs etwas komplex erscheinen, insbesondere wenn Pfade oder Befehle nicht wie erwartet funktionieren – manchmal reichen schon Neustarts oder angepasste Berechtigungen aus. Mit etwas Geduld ist es jedoch eine sehr effektive Methode, Ihre VM-Umgebung zu verwalten, ohne ständig durch grafische Benutzeroberflächen klicken zu müssen. Hoffentlich hilft Ihnen dies, zumindest einige Aufgaben zu automatisieren oder Ihre VM schneller einzurichten.