Wichtige Hyper-V-PowerShell-Befehle: Was sie sind und wie man sie verwendet

>>

<>

Das Verwalten von Hyper-V-Umgebungen kann eine anspruchsvolle Aufgabe sein. Daher benötigen Sie ein leistungsstarkes Management-Tool, um Ihre virtuelle Infrastruktur von einer zentralen Konsole aus zu konfigurieren und zu steuern. Zusätzlich zur grafischen Benutzeroberfläche bietet bietet Hyper-V eine Befehlszeilenschnittstelle mit PowerShell für das Hyper-V-Management.

In diesem Blogbeitrag beschreiben wir, wie PowerShell funktioniert, welche Hyper-V-PowerShell-Befehle die Leistung virtueller Maschinen (VM) verbessern können und wie dieses CLI-Tool den Prozess des Hyper-V-Managements erheblich vereinfachen kann.

NAKIVO for Hyper-V Backup

NAKIVO for Hyper-V Backup

Agentless, application-aware backups for Hyper-V. Anti-ransomware protection, instant VM boot from backup, other virtual/physical platform support and more.

Was ist PowerShell?

PowerShell ist ein von Microsoft entwickeltes Framework für die Aufgabenautomatisierung und Konfigurationsverwaltung, das eine Befehlszeilenshell und eine zugehörige Skriptsprache umfasst, die auf dem .NET Framework und .NET Core basieren.

PowerShell-Befehle, auch als Cmdlets bezeichnet, können zur Automatisierung verschiedener Aufgaben verwendet werden, indem mehrere Cmdlets in einem einzigen PowerShell-Skript angeordnet werden. Microsoft hat mehr als hundert zentrale PowerShell-Befehle entwickelt, die für komplexe wie auch grundlegende Aufgaben verwendet werden können.

Was kann PowerShell leisten?

PowerShell kann Hyper-V-Administratoren dabei helfen, Aufgaben zum Management von Betriebssystemen (Linux, macOS und Windows) und zugehörigen Prozessen schnell zu automatisieren. Im Gegensatz zu GUI-Tools ermöglicht PowerShell das Verwalten des gesamten Systems ausschließlich über die Befehlszeile.

Darüber hinaus können Sie die erforderlichen Hyper-V-PowerShell-Befehle in einer Textdatei (mit der Erweiterung .ps1 speichern und dieses Skript dann ausführen, um bestimmte Aufgaben auszuführen. Außerdem können Sie PowerShell-Skripte mit dem Taskplaner so planen, dass sie zu einer festgelegten Zeit ausgeführt werden.

So öffnen Sie PowerShell

Es gibt mehrere Möglichkeiten, PowerShell in Hyper-V auszuführen. Eine einfache Möglichkeit, auf PowerShell zuzugreifen, besteht darin, eine direkte Verbindung zu einem Hyper-V-Server herzustellen und es von dort aus zu starten. Um eine Remote-Verbindung zu einem Hyper-V-Host herzustellen, müssen wir sicherstellen, dass Remote Desktop aktiviert ist. Sobald Remote Desktop aktiviert ist, können wir das Remote Desktop-Dienstprogramm verwenden und eine Remote-Verbindung zum Server herstellen, wie wir es mit jeder Windows Server-GUI (grafische Benutzeroberfläche) tun würden.

Öffnen von PowerShell über die GUI

Um PowerShell in einem GUI-basierten Betriebssystem zu öffnen, führen Sie die folgenden Schritte aus:

  1. Sie müssen auf Start klicken und PowerShell in die Suchleiste ein.
  2. Klicken Sie mit der rechten Maustaste auf das PowerShell-Symbol und wählen Sie Als Administrator ausführen , um PowerShell im erweiterten Modus zu öffnen.

How to run PowerShell in Windows

Öffnen von PowerShell von der Befehlszeile

Um PowerShell unter Windows Server Core oder Hyper-V Server auszuführen, gehen Sie wie folgt vor:

  1. Geben Sie PowerShell in die Eingabeaufforderung ein und drücken Sie die Geben Sieein.
  2. Eine Windows PowerShell-Sitzung sollte automatisch im Eingabeaufforderungsfenster gestartet werden. Der Eingabeaufforderung wird dann ein PS-Präfix hinzugefügt, um anzuzeigen, dass Sie eine Windows PowerShell-Sitzung gestartet haben.
  3. Sobald Sie sich in PowerShell befinden, können Sie Hyper-V-spezifische PowerShell-Befehle verwenden, die wir weiter unten in diesem Beitrag behandeln.

How to run PowerShell in Windows command prompt

Remote-Einstellungen

Um die Remote-Desktop-Einstellungen in Windows Server Core oder Hyper-V Server zu überprüfen, können Sie das Dienstprogramm sconfig starten, falls es noch nicht gestartet ist, und es mit Option 7 konfigurieren. Sobald Sie eine Remote-Verbindung zum Hyper-V-Host hergestellt haben, können Sie außerdem die Option 15 zu Beenden Sie die Befehlszeile.

Enabling Remote desktop to run PowerShell commands on a Hyper-V host

Dort befinden Sie sich in einer normalen cmd.exe Umgebung – nicht in PowerShell. Um eine PowerShell-Umgebung zu starten, geben Sie einfach powershell in die Befehlszeile ein.

Running PowerShell commands

Remote PowerShell

Mit PowerShell können Sie auch remote mit Hyper-V interagieren. Mit anderen Worten: Sie können PowerShell-Befehle remote auf dem Hyper-V-Host ausführen, ohne eine Remotedesktopverbindung herzustellen.

Von der Arbeitsstation aus, auf der wir die Hyper-V-Verwaltungstools geladen haben, können wir unsere Hyper-V-Befehlssätze ausführen. Zunächst müssen wir die Hyper-V-Tools installieren, einschließlich dieser Befehlssätze (Cmdlets).

Install-WindowsFeature RSAT-Hyper-V-Tools

Sobald wir die Tools geladen haben, können wir die gleichen Befehlstypen ausführen, indem wir den Parameter -computername verwenden, der auf unseren Hyper-V-Host verweist, wie im folgenden Screenshot gezeigt. Wir übergeben den Namen unseres Hosts an den Befehl get-vm PowerShell-Befehl.

Running PowerShell Hyper-V commands remotely

12 wichtige Hyper-V-PowerShell-Befehle

Es gibt eine Reihe effektiver Hyper-V-PowerShell-Befehle, die das Verwalten von Hyper-V einfach und unkompliziert machen. Sehen wir uns an, wie Sie verschiedene Hyper-V-PowerShell-Befehle verwenden können.

Get-Command

Beginnen wir mit einem Hyper-V-PowerShell-Befehl, der für Benutzer hilfreich ist, die neu in PowerShell sind und nicht wissen, welche Cmdlets verwendet werden sollten und wie. Von Ausführen des Cmdlets Get-Command können Sie die vollständige Liste aller verfügbaren Cmdlets (Windows PowerShell-Befehle), Funktionen und Aliase anzeigen, die auf dem Computer installiert sind.

The Get-VM PowerShell cmdlet

Wenn Sie jedoch Ihre Suche eingrenzen und eine Liste der Hyper-V-PowerShell-Befehle erhalten möchten, die bestimmten Kriterien entsprechen, können Sie das Cmdlet „ <“ „>“ „Get-Command *-VM“< „> “ verwenden, um eine Liste der Befehle zu finden, mit denen Sie VMs steuern und konfigurieren können. „

<“ „><“ „><“ „>

“ Durch Ändern des Parameters „ <“ „>“ VM „<“ „> “ in „ <“ „>“ VHD „<“ „>“ erhalten Sie die vollständige Liste der Cmdlets, die für das Management virtueller Festplatten verwendet werden. So können Sie verschiedene Suchparameter ausprobieren, um die gewünschten Ergebnisse zu erhalten. „

<“ >Using the Get-Command cmdlet to display commands to work with VHD

Get-Help

Wenn Sie sich für einen Hyper-V-PowerShell-Befehl entschieden haben, können Sie mehr über dieses Cmdlet erfahren. Zu diesem Zweck können Sie das Cmdlet „Get-Help“ verwenden. Um beispielsweise mehr über das Cmdlet „Get-VM“ zu erfahren, geben Sie Folgendes ein:

Get-Help Get-VM

Using the Get-Help and Get-VM Hyper-V PowerShell commands

Get-VM

Mit dem PowerShell-Befehl „Get-VM“ können Sie alle auf einem oder mehreren Hyper-V-Hosts verfügbaren VMs anzeigen. Um alle VMs auf dem lokalen Hyper-V-Host anzuzeigen, sollten Sie den folgenden Befehl ausführen: Get-VM PowerShell-Cmdlet ausführen.

PowerShell Get-VM details

Auf dem PowerShell-Bildschirm sehen Sie die Liste der verfügbaren VMs, einschließlich ihres Namens, Status, ihrer CPU-Auslastung, zugewiesenen Speichers, Betriebszeit, ihres Status und ihrer Version.

Start-VM

Mit diesem speziellen start VM PowerShell-Cmdlet können Sie eine VM starten. Führen Sie dazu den folgenden Hyper-V-PowerShell-Befehl aus:

Start-VM -Name 'Windows Server 2016'

Dadurch wird der VM-Name Windows Server 2016 auf Ihrem lokalen Hyper-V-Host gestartet. Überprüfen Sie, ob die VM tatsächlich gestartet wurde, indem Sie das Cmdlet Get-VM ausführen.

How to use the start VM PowerShell cmdlet

Darüber hinaus können Sie eine modifizierte Version des PowerShell-Befehls „ Start-VM PowerShell-Cmdlet verwenden, um VMs nur dann zu starten, wenn ihre Namen mit Hyper-V:

Start-VM -Name Hyper-V*

PowerShell start VM

Wie Sie sehen können, wurde die VM mit dem Namen gestartet Hyper-V Server Desktop wurde erfolgreich gestartet. Eine andere VM (Hyper-V Server 2012) war jedoch bereits in einem laufenden Zustand, worüber Sie von PowerShell benachrichtigt werden.

Stop-VM

Mit dem Cmdlet „Stop-VM“ können Sie eine VM herunterfahren oder ausschalten. Zu diesem Zweck können Sie das folgende Cmdlet ausführen:

Stop-VM -Name 'Windows Server 2016'

Using Stop-VM and Get-VM PowerShell commands

Wie Sie sehen können, wurde die ausgewählte VM über das Gastbetriebssystem erfolgreich heruntergefahren.

Ein weiteres Beispiel: Sie können die VMs ausschalten, deren Namen mit Hyper-V:

Stop-VM -Name Hyper-V* -TurnOff

Using the Stop-VM and Get-VM PowerShell Hyper-V commands

Wenn Sie feststellen, dass Ihre VM nicht reagiert, können Sie ihr Herunterfahren erzwingen. Führen Sie dazu das folgende PowerShell-Cmdlet aus:

Stop-VM -Name 'Windows Server 2016' -Force

Beachten Sie, dass das erzwungene Herunterfahren dem Ziehen des Netzsteckers bei einer Physischen Maschine ähnelt, was zu einem Verlust nicht gespeicherter Daten der Anwendungen führen kann. In diesem Fall wird empfohlen, die VM zu speichern, um einen möglichen Datenverlust zu vermeiden. Zu diesem Zweck müssen Sie das Cmdlet „ <“ ausführen. >Save-VM Dies entspricht dem Ruhezustand eines physischen Computers:

Save-VM -Name 'Windows Server 2016'

Wenn Sie die VMs speichern möchten, deren Namen mit „ <“ beginnen,/>Hyper-V, führen Sie den folgenden Hyper-V-PowerShell-Befehl aus:

Get-VM -Name Hyper-V* | Save-VM

Using the Save-VM and Get-VM PowerShell commands for Hyper-V

Checkpoint-VM

Das Checkpoint-VM cmdlet bietet Hilfe beim Erstellen eines Hyper-V VM-Checkpoints (auch als Hyper-V-Schnappschuss bezeichnet) zu erstellen. Führen Sie das folgende Cmdlet aus, um einen Checkpoint mit dem Namen Update1 für die spezifische VM (Windows Server 2016) zu erstellen:

Checkpoint-VM -Name 'Windows Server 2016' -SnapshotName Update1

Um zu überprüfen, ob die VM erfolgreich erstellt wurde, verwenden Sie den folgenden Hyper-V-PowerShell-Befehl:

Get-VMSnapshot -VMName 'Windows Server 2016'

Using the Hyper-V PowerShell commands to create a VM snapshot (checkpoint)

Wenn Sie hingegen bestimmte Hyper-V-Schnappschüsse löschen möchten, können Sie das Entfernen-VMSnapshot cmdlet verwenden. Wenn wir beispielsweise alle VM-Schnappschüsse löschen möchten, deren Namen mit Testingbeginnen, sollten wir das folgende cmdlet ausführen:

Get-VM 'Hyper-V Server 2012' | Remove-VMSnapshot -Name Testing*

Windows PowerShell commands to delete snapshots for a Hyper-V VM

Der obige Screenshot zeigt den gesamten Prozess zum Löschen der ausgewählten Hyper-V-Schnappschüsse.

Test-VHD

Dieser Hyper-V-PowerShell-Befehl dient dazu, zu überprüfen, ob die virtuelle Festplattendatei tatsächlich vorhanden ist und für die Hyper-V-Bereitstellung verwendet werden kann. Dieses Cmdlet lautet wie folgt:

Test-VHD -Path C:Testing.vhd

Wenn der VHD-Pfad gültig ist, wird auf Ihrem Bildschirm die folgende Ausgabe angezeigt:

An example of using the Test-VHD command

Um mehr über das Management virtueller Festplatten mit PowerShell-Cmdlets zu erfahren, empfehlen wir Ihnen, unseren Blogbeitrag über die Grundlagen der Arbeit mit Hyper-V-VHD- und VHDX-Dateienzu lesen.

Measure-VM

Mit diesem Hyper-V-PowerShell-Befehl können Sie Daten zur Ressourcenauslastung für eine bestimmte VM erfassen. Führen Sie beispielsweise das folgende Cmdlet aus, um Informationen zur CPU-Auslastung, RAM-Auslastung, Festplattenkapazität und zum Netzwerkverkehr für die VM mit dem Namen Windows Server 2016:

Measure-VM -VMName 'Windows Server 2016'

PowerShell get VM information

Beachten Sie, dass das Measure-VM Cmdlet kann die erforderlichen Daten erst melden, nach der Aktivierung der Ressourcenmessung auf einer VM. Um die Ressourcenmessung zu aktivieren, verwenden Sie den folgenden Hyper-V PowerShell-Befehl:

Enable-VMResourceMetering -VMName 'Windows Server 2016'

Get-VMNetworkAdapter

Ein weiteres hilfreiches PowerShell-Cmdlet ist Get-VMNetworkAdapter, mit dem Sie die virtuellen Netzwerkadapter der ausgewählten VM identifizieren können. Wenn Sie beispielsweise die virtuellen Netzwerkadapter aller VMs sowie des Betriebssystems zum Management suchen möchten, sollten Sie den folgenden Hyper-V-PowerShell-Befehl ausführen:

Get-VMNetworkAdapter –All

Wenn alles korrekt ist, sollten Sie die folgenden Informationen in Ihrer PowerShell-Konsole sehen:

PowerShell get VM information about network adapters

Mit Hyper-V-PowerShell-Befehlen können Sie verschiedene einfache und komplexe Aufgaben mit Ihren Hyper-V-Netzwerkadaptern ausführen. Lesen Sie unseren Leitfaden zu den Cmdlets, die Ihnen beim Management und bei der Konfiguration virtueller Netzwerkadapter in Ihrer Hyper-V-Umgebung helfen können:

Update-VMVersion

PowerShell verfügt über ein Cmdlet, mit dem Sie die Version der ausgewählten VM aktualisieren können:

Update-VMVersion -Name 'TestVM'

Nach dem Ausführen des Hyper-V-PowerShell-Befehls kann die VM mit dem Namen TestVM auf die aktuelle VM-Version aktualisiert werden.

How to update VM Version in PowerShell

Get-Process

Mit diesem Hyper-V-PowerShell-Befehl können Sie alle aktuellen Prozesse auf Ihrem lokalen Computer anzeigen. Nach Ausführung des Cmdlets „ <“ können Sie die folgenden Informationen auf Ihrem Bildschirm anzeigen: „“ „<“ Diese Tabelle enthält Informationen zu: Diese Tabelle enthält Informationen zu folgenden Punkten:

  • Anzahl der vom Prozess geöffneten Handles
  • vom Prozess verwendete Menge an nicht ausgelagertem Speicher
  • vom Prozess verwendete Menge an auslagerbarem Speicher
  • die Größe des Arbeitsspeichers des Prozesses
  • die Menge an virtuellem Speicher, die der Prozess verwendet
  • die Menge an Prozessorzeit, die allen Prozessoren zugewiesen wurde
  • die Prozess-ID
  • der Prozessname

Um die Suche einzugrenzen und einen bestimmten Prozess zu finden, sollten Sie den Prozessnamen oder die Prozess-ID eingeben. Wenn Sie beispielsweise wissen möchten, wie Microsoft Word derzeit arbeitet, sollten Sie die Liste aller laufenden Prozesse durchsehen und die Zeile mit den Informationen zu Microsoft Word (d. h. WinWord) einschließlich der Prozess-ID suchen. Mit der Prozess-ID können Sie das folgende Cmdlet ausführen, um die erforderlichen Daten abzurufen:

Get-Process -ID 8892

Viewing the ID of the running process on a Hyper-V host

Darüber hinaus können die Daten zu den aktuellen WinWord-Prozessen in einem anderen Format dargestellt werden, nämlich als Liste von Eigenschaften. Führen Sie dieses Cmdlet aus, um Details der Ausgabe zu erhalten:

Get-Process WINWORD | Format-List *

Viewing the details about the process on a Hyper-V host in PowerShell

Nach dem Abrufen der Prozessdaten können Sie die folgenden Cmdlets ausführen:

  • Stop-Process ermöglicht es Ihnen, einen oder mehrere laufende Prozesse zu beenden.
  • Wait-Process ermöglicht es Ihnen, zu warten, bis ein oder mehrere laufende Prozesse beendet sind, bevor Sie andere Eingaben aktivieren.
  • Start-Process ermöglicht es Ihnen, einen oder mehrere Prozesse auf dem lokalen Computer zu starten.
  • Debug-Process ermöglicht es Ihnen, einen Debugger an einen oder mehrere laufende Prozesse auf dem lokalen Computer anzuhängen.

Wenn Sie beispielsweise die Anwendung Notepad von PowerShell starten möchten, sollten Sie das folgende Cmdlet ausführen:

Start-Process -FilePath "notepad.exe"

Ein weiteres Beispiel ist, wenn Sie PowerShell im „normalen” Modus geöffnet haben, aber PowerShell im erweiterten Modus ausführen müssen, um Zugriff auf Rechte für die Verwaltung zu erhalten. Führen Sie in diesem Fall den folgenden Hyper-V-PowerShell-Befehl aus:

Start-Process -FilePath "powershell" -Verb RunAs

How to run PowerShell commands in the elevated mode

Wenn hingegen einer der laufenden Prozesse nicht mehr reagiert, können Sie das Cmdlet „ <“ ausführen, um die fehlerhafte Anwendung anzuhalten: >Stop-Process In diesem Fall werden alle Instanzen der Notepad-Anwendung auf dem lokalen Computer angehalten.

Stop-Process -Name "notepad"

Jede Notepad-Instanz hat ihre eigene Prozess-ID. Wenn Sie eine bestimmte Notepad-Instanz beenden möchten, sollten Sie den Parameter „ID“ im Cmdlet „Stop-Process“ verwenden. Zu diesem Zweck müssen Sie zunächst das Cmdlet „ <“ ausführen. >Get-Process ausführen, die erforderlichen aktiven Prozesse suchen und die Prozess-ID identifizieren, die Sie beenden möchten.

Stopping the needed process in PowerShell

Sie können beispielsweise den spezifischen Notepad-Prozess beenden, indem Sie dessen Prozess-ID identifizieren und den folgenden Hyper-V PowerShell-Befehl ausführen:

Stop-Process -ID 5052

Dadurch wird nur der ausgewählte Notepad-Prozess beendet.

Mit diesen PowerShell-Befehlen können Sie einen Prozess erkennen, der unerwünschte Ressourcen verbraucht und die Hyper-V-Leistung beeinträchtigt, um diesen Prozess zu beenden.

Where-Object

Mit diesem Hyper-V-PowerShell-Befehl können Sie Pipeline-Objekte filtern und genau die Daten finden, die Sie benötigen. In diesem Fall müssen Sie ein PowerShell-Skript erstellen, in dem Sie angeben, welche Objekte über die Pipeline weitergeleitet werden können. Mithilfe verschiedener Suchkriterien können Sie jedes Objekt auf dem lokalen Computer finden.

Wenn Sie beispielsweise die Prozesse suchen möchten, deren Ausführung angehalten wurde, verwenden Sie dieses Cmdlet:

Get-Service | Where-Object {$_.Status -eq 'Stopped'}

Ein weiteres Beispiel für die Verwendung von Where-Object cmdlet ist, wenn Sie ein bestimmtes cmdlet suchen möchten. Der folgende Hyper-V-PowerShell-Befehl kann Ihnen dabei helfen, alle cmdlets zu finden, die mit starten Warten Sie:

Get-Command | Where-Object {$_.Name -like '*wait*'}

An example of using the Where-Object cmdlet in PowerShell

Das weitere Where-Object cmdlet kann Ihnen dabei helfen, einen bestimmten Prozess allein anhand seines Namens zu finden. Von Ausführen des folgenden Befehls erhalten Sie eine Liste aller Prozesse, deren Namen mit sys:

Get-Process | Where-Object {$_.ProcessName -Match "^sys.*"}

How to find the process based only on its name

So erstellen Sie eine Hyper-V-VM mit PowerShell

Eine der leistungsstarken integrierten Funktionen von Hyper-V ist die Möglichkeit, PowerShell für Management-Vorgänge zu verwenden. Mit PowerShell in Hyper-V können wir unter anderem Virtuelle Maschinen erstellen. Sehen wir uns eine Reihe von Hyper-V-PowerShell-Befehlen zum Erstellen neuer VMs an.

PowerShell-Befehle zum Erstellen einer neuen VM

So erstellen Sie eine neue VM der Generation 2 mit einer brandneuen 60-GB-VHDX-Festplatte und verbinden sie mit einem bestimmten virtuellen Switch (in diesem Fall „ExternalSwitch”), führen Sie die folgenden PowerShell-Befehle auf Ihrem Hyper-V-Host aus.

  1. Erstellen einer VM:

    new-vm -Name "WSTEST" -MemoryStartupBytes 2GB -Generation 2 -NewVHDPath "D:hyper-vvirtualhard disksWSTEST.vhdx" -NewVHDSizeBytes 60000000000 -Switchname "ExternalSwitch"

  2. Um ein DVD-Laufwerk zusammen mit einem ISO-Image zum Booten hinzuzufügen, können wir zusätzliche Befehle ausführen:

    Add-vmscsicontroller -vmname WSTEST

    Add-vmdvddrive -vmnname WSTEST -controllernumber 1 -controllerlocation 0 -path D:ISOmy.iso

  3. Wenn wir eine Festplatte mit fester Größe erstellen und an unsere VM anhängen möchten, können wir Folgendes ausführen, um eine VHDX mit fester Größe zu erstellen und an unsere VM anzuhängen:

    new-vhd -path "d:hyper-vvirtual hard disks.wstest.vhdx" -sizebytes 60GB -fixed

    add-vmharddiskdrive -vmname WSTEST -path "d:hyper-vvirtual hard diskswstest.vhdx"

Fazit

PowerShell mag auf den ersten Blick einschüchternd wirken, aber sobald Sie den Umgang damit gelernt haben, werden Sie schnell erkennen, wie Sie Hyper-V-PowerShell-Befehle verwenden und die Verwaltung in Ihrer Hyper-V-Umgebung optimieren können. Denken Sie jedoch daran, dass Sie unabhängig davon, womit Sie Ihre VMs verwalten, Backups erstellen müssen, um Datenverluste und Ausfallzeiten zu vermeiden.

NAKIVO Backup & Replikation ist eine zuverlässige und leistungsstarke Lösung zur Datensicherheit, mit der Sie VMware-, Hyper-V-, Nutanix-, AWS EC2-, Linux-, Windows- und Microsoft 365-Umgebungen schützen können.

Try NAKIVO Backup & Replication

Try NAKIVO Backup & Replication

Get a free trial to explore all the solution’s data protection capabilities. 15 days for free. Zero feature or capacity limitations. No credit card required.

Empfohlene Artikel