kornienko - Fotolia

PowerShell-Grundlagen: Abwägen zwischen PowerShell und Hyper-V Manager

Die PowerShell bietet bei der Verwaltung von Hyper-V zahlreiche Vorteile. In manchen Fällen ist der Rückgriff auf Hyper-V Manager aber sinnvoller.

Microsoft hat erhebliche Mühen in die Entwicklung seines Scripting-Frameworks investiert, mit dem IT-Administratoren Informationen über die installierten Rollen und Features auf Windows-Server-Betriebssystemen erhalten. Beinahe jede Rolle und jedes Feature bietet ein eigenes PowerShell-Cmdlet, mit dem sich die für die Hyper-V-Verwaltung benötigte Zeit deutlich reduzieren lässt.

Entsprechend gibt es auch für die Hyper-V-Rolle PowerShell-Cmdlets, die für die Interaktion mit dem Hyper-V-Host und den von ihm gehosteten virtuellen Maschinen (VMSs) genutzt werden können. So lässt sich beispielsweise der Befehl Get-VM verwenden, um die auf einem bestimmten Hyper-V-Server installierten VMs aufzulisten, oder auch die Befehle Start-VM und Stop-VM, um eine einzelne oder mehrere VMs zu starten oder zu stoppen.

PowerShell-Cmdlets nicht immer die erste Wahl

Auch wenn es natürlich stimmt, dass das automatisierte Abarbeiten von PowerShell-Befehlen deutlich weniger Zeit in Anspruch nimmt als derselbe Vorgang von einer grafischen Benutzeroberfläche aus, eignen sich PowerShell-Cmdlets doch nicht für alle Aufgaben. Bevor man etwa mit Hyper-V einen externen Switch mit Hilfe des PowerShell-Cmdlets New-VMSwitch hinzufügt, sollte man den verfügbaren physischen Netzwerkadapter kennen, dem der neue externe Switch zugeordnet werden soll.

Von einem PowerShell-Fenster aus lässt sich diese Information über Get-NetAdapter ermitteln, womit sämtliche physischen Netzwerkadapter angezeigt werden. Anschließend muss die Art des Switches über den Parameter -SwitchType deklariert werden, sämtliche notwendigen Optionen wie etwa -AllowManagementOS gesetzt und dann der Befehl eingegeben werden, mit dem man einen neuen externen Switch auf einem Hyper-V-Host erzeugt. In vergleichbarer Weise kann auch Connect-VMNetworkAdapter eingesetzt werden, wenn man einen oder mehrere virtuelle Netzwerkadapter mit einem virtuellen Hyper-V-Switch verbinden will.

Auch wenn es also PowerShell-Cmdlets gibt, mit denen man einen externen virtuellen Switch anlegen und virtuelle Netzwerkadapter mit einem virtuellen Hyper-V-Switch verbinden kann, fragt sich doch: Wie oft am Tag erledigt man so eine Aufgabe? Das Erstellen externer virtueller Switches auf Hyper-V-Hosts gehört normalerweise zum Aufgabenkreis des Planens und Entwerfens.

Dabei ist es aber deutlich einfacher, virtuelle Hyper-V-Switches mit dem Hyper-V Manager zu erstellen, als mit PowerShell-Cmdlets. In den meisten IT-Abteilungen dürften virtuelle Switches wohl kaum jeden Tag entfernt oder hinzufügt werden. Die Nutzung von Connect-VMNetworkAdapter mag außerordentlich hilfreich sein, wenn man virtuelle Netzwerkadapter mehrerer VMs mit einem virtuellen Hyper-V-Switch verbinden möchte. In einer Produktivumgebung dürfte dies aber nicht allzu oft vorkommen, weshalb sich in solchen Fällen tatsächlich der Einsatz des Hyper-V Managers empfiehlt.

Wann der PowerShell-Einsatz sinnvoll ist

Auch wenn die PowerShell sicherlich nicht für jedes Szenario das Mittel der Wahl ist, gibt es doch gleich mehrere Gründe, warum Hyper-V-Cmdlets in Frage kommen können.

PowerShell-Skripte eignen sich zum Beispiel hervorragend für sich ständig wiederholende Aufgaben. Die meisten PowerShell-Cmdlets verfügen über einen Parameter –WhatIf. Wird dieser Parameter für ein Cmdlet angegeben, so zeigt er an, was passieren würde, wenn das Cmdlet so ausgeführt werden würde. Diese Option steht im Hyper-V Manager nicht zur Verfügung, dort wird jede Aufgabe sofort und unmittelbar ausgeführt. Auch wenn die Benutzeroberfläche von Hyper-V Manager um Bestätigung bitten wird, lässt sich das Ergebnis der Skripte erst bewerten, wenn diese abgearbeitet sind.

Die meisten Hyper-V-Cmdlets akzeptieren mehrere Eingaben wie etwa mehrere VMs oder Hyper-V-Hosts, was sehr nützlich sein kann, wenn eine dringende Aufgabe auf mehreren VMs oder mehreren Hyper-V-Hosts ausgeführt werden soll, ohne dabei mit dem Hyper-V Manager jede Menge Zeit zu verlieren. Wenn beispielsweise während einer Wartung für einen Hyper-V-Host alle VMs abgespeichert oder im Betrieb auf einen anderen Hyper-V-Host migriert werden sollen, dann helfen die PowerShell-Cmdlets Suspend-VM und Move-VM. Um alle VMs auf einem lokalen Hyper-V-Host anzuhalten, kann der Suspend- oder Invoke-Befehl wie folgt verwendet werden: Invoke-Command {Get-VM | Where State –eq "Running" | Suspend-VM} –ComputerName Hyper-VHost1.

Schließlich können auch die meisten der neuen Funktionen von Hyper-V 2012 R2 ausschließlich über PowerShell-Cmdlets konfiguriert werden. Einschließlich etwa der Ressourcenüberwachung für die VMs oder dem Aktivieren der Port-Spiegelung. Auch das Aufsetzen bestimmter Replikationsoptionen wie der Server-Einstellung, -BypassProxy oder dem Resynchronisieren der VMs sowie das Gewähren und Entziehen von Verbindungsrechten an einzelne oder mehrere Benutzer für den Zugang zu VMs auf Windows Server 2012 R2 und neueren Hyper-V-Hosts ist nur über die PowerShell möglich.

Weitere Artikel zum Arbeiten mit der PowerShell:

PowerShell 5.0 auf Windows 7 installieren

Grundlagen: Arbeiten mit Variablen und Konstanten

PowerShell 5.0 verbesserte Desired State Configuration

Pakteverwaltung per OneGet in der PowerShell 5.0

Ab Windows Server 2012 R2 kann zwar beispielsweise die Steuerung des Benutzerzugangs zu VM-Verbindungen über den Hyper-V Manager konfiguriert werden, der Zugriff auf die VMs selbst lässt sich aber ausschließlich über die Cmdlets Grant-VMConnectAccess und Revoke-VMConnectAccess steuern. Hyper-V Manager verfügt über keine Option, solche VM-Verbindungsrechte zu gewähren oder zu entziehen.

Wer etwa Benutzer1 erlauben möchten, sich mit einer SQLVM auf einem 2012 R2 Hyper-V-Host zu verbinden, der müsste hierfür folgenden Befehl nutzen: Grant-VMConnectAccess –VMName SQLVM –Username Domain.com\Benutzer1. Um die Rechte wieder zu entziehen, wird folgender Befehl verwendet: Revoke-VMConnectAccess –VMName SQLVM –Username Domain.com\Benutzer1.

Die PowerShell ist schon seit langer Zeit ein integraler Bestandteil von Microsofts Server- und Client-Systemen und hilft Administratoren, wiederkehrende Aufgaben zu automatisieren und damit effizienter zu erledigen. Dabei gibt es nach wie vor Aufgaben, die schneller über die grafische Benutzeroberfläche des Hyper-V Manager erledigt werden können. Gleichzeitig gibt es aber auch immer mehr Funktionen, die sich nur noch über die PowerShell konfigurieren lassen. So dürften auch zukünftig wohl beide Administrationswerkzeuge Bestand haben: die PowerShell genauso wie der Hyper-V Manager.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im November 2015 aktualisiert

Erfahren Sie mehr über Serverbetriebssysteme

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close