Microsoft System Center Virtual Machine Manager

Virtuelle Maschinen per PowerShell verwalten

31.05.2010 von Thomas Joos
Mit dem Microsoft System Center Virtual Machine Manager 2008 R2 können Administratoren virtuelle Maschinen einfach verwalten, etwa über Vorlagen. Viele Aufgaben lassen sich zudem problemlos per Skript über die PowerShell erledigen.

Vor allem beim Einsatz zahlreicher Hosts und vieler virtuellen Maschinen zeigt der Microsoft System Center Virtual Machine Manager 2008 R2 seine Vorteile. Sie können alle beteiligten Hosts und die installierten Maschinen in einer zentralen Oberfläche verwalten. Dabei lassen sich in der Konsole alle virtuellen Maschinen aller Hosts in einem einzelnen Fenster anzeigen, was das Handling wesentlich vereinfacht.

Wenn Sie mit dem Hyper-V-Manager in Windows Server 2008 oder Windows Server 2008 R2 arbeiten, können Sie sich zwar auch mit allen Hosts verbinden, müssen aber zur Anzeige der einzelnen installierten virtuellen Maschinen durch die Hosts klicken. Ein großer Vorteil des System Center Virtual Machine Manager im Vergleich zum Hyper-V-Manager ist die Möglichkeit, Vorlagen zu erstellen, auf deren Basis Administratoren schnell und einfach neue virtuelle Maschinen erstellen können. Grundlegende Informationen zur neuen Version des Virtual Machine Managers liefert Ihnen der Beitrag Microsoft System Center Virtual Machine Manager: Live Migration und VMware-Support.

Darüber hinaus lassen sich virtuelle Maschinen leichter per Skripts verwalten, die PowerShell bietet dafür vielfältige Möglichkeiten; nachfolgend finden Sie ein paar einfache Beispiele.

Bildergalerie:
Virtuelle Maschinen per PowerShell verwalten
Auf Basis von Vorlagen lassen sich einfach neue virtuelle Maschinen erstellen.
Virtuelle Maschinen per PowerShell verwalten
Physische Server lassen sich zu virtuellen Maschinen konvertieren.
Virtuelle Maschinen per PowerShell verwalten
Virtuelle Server lassen sich über das Kontextmenü auch klonen.
Virtuelle Maschinen per PowerShell verwalten
Virtuelle Maschinen lassen sich schnell und einfach klonen und automatisch bereitstellen oder in der Bibliothek speichern.
Virtuelle Maschinen per PowerShell verwalten
Virtuelle Maschinen kann man mithilfe der PowerShell verwalten.
Virtuelle Maschinen per PowerShell verwalten
Die Befehle lassen sich über Platzhalter anzeigen.
Virtuelle Maschinen per PowerShell verwalten
Verbindungsaufbau mit einem physischen VMM-Host.
Virtuelle Maschinen per PowerShell verwalten
Beispiele für Befehle aus der Verwaltungs-Shell
Virtuelle Maschinen per PowerShell verwalten
Sie können die einzelnen Parameter auswählen, die über eine virtuelle Maschine im SCVMM angezeigt werden.

Neue Vorlagen für virtuelle Maschinen

Sie finden die Option für neue Vorlagen über den Menüpunkt Bibliotheken\VMs und Vorlagen\Neue Vorlage. So lässt sich sicherstellen, dass neue virtuelle Maschinen einem Standard entsprechen, sich aber dennoch schnell und einfach erstellen lassen, und zwar auf jedem angebundenen Host.

Auf Basis von Vorlagen lassen sich einfach neue virtuelle Maschinen erstellen.

Virtuelle Maschinen auf angebundenen Hosts können auch zwischen Hosts verschoben werden. Das ist mit dem Hyper-V-Manager nur über Umwege möglich. In der Konsole lassen sich darüber hinaus umfangreiche Berichte erstellen, sowie eine Übersicht aller laufenden virtuellen Maschinen und deren Hosts anzeigen. Administratoren erhalten dadurch eine ständige Übersicht zu den virtuellen Maschinen und zum Zustand der Hosts.

Umwandlung: Physische Server lassen sich zu virtuellen Maschinen konvertieren.

Über den Menüpunkt Physischen Server konvertieren startet ein Assistent, der Sie bei der Migration von physischen Hosts zu virtuellen Maschinen unterstützt. Während der Migration installiert Microsoft System Center Virtual Machine Manager den Agent zur Verwaltung auf der physikalischen Maschine, scannt die Hardware und unterstützt bei der Erstellung der virtuellen Maschine und der Datenübernahme. Im Verlauf der Migration können Sie auswählen, auf welchem angebundenen physikalischen Host der Assistent die VM erstellen soll.

Virtuelle Maschinen klonen

Über das Kontextmenü virtueller Maschinen können Sie im SCVMM 2008 R2 einen Klonvorgang starten, der die Maschine im gespeicherten Zustand klont und diesen Klon auf einem beliebigen Host bereitstellen kann.

Bildergalerie: Text fehlt
System Center Virtual Machine Manager 2008 R2
Virtuelle Server lassen sich über das Kontextmenü auch klonen.
System Center Virtual Machine Manager 2008 R2
Virtuelle Maschinen lassen sich schnell und einfach klonen und automatisch bereitstellen oder in der Bibliothek speichern.

Während des Klonens lässt sich die Hardware des Servers anpassen, genauso wie beim Erstellen von neuen Vorlagen. Geklonte Vorlagen können Sie automatisiert bereitstellen oder für eine spätere Verwendung in der Bibliothek speichern.

Verwaltung von virtuellen Maschinen in der PowerShell

Vor allem für skriptbegeisterte Administratoren bietet SCVMM die Möglichkeit, über Dutzende zusätzliche CMDlets die Verwaltung von virtuellen Maschinen über die PowerShell durchzuführen.

Skriptorientiert: Virtuelle Maschinen kann man mithilfe der PowerShell verwalten.

Verwenden Sie für diese Befehle aber nicht das Standard-UI für die PowerShell, sondern die Verknüpfung Windows-PowerShell-Virtual Machine Manager. Mit dem CMDlet get-command erhalten Sie eine umfassende Liste aller Befehle. Generell ist der Umgang mit der PowerShell nicht sehr kompliziert. Wenn Sie get-command eingeben, sehen Sie alle Befehle, welche die Shell zur Verfügung stellt. Die wenigsten Administratoren kennen alle CMDlets, die SCVMM bietet.

Übersicht: Die Befehle lassen sich über Platzhalter anzeigen.

Die PowerShell bietet jedoch eine ausgereifte Hilfe an. Haben Sie nur den Teil eines Befehls in Erinnerung, können Sie mit dem Platzhalter „*“ arbeiten. Der Befehl get-command *vm zeigt zum Beispiel alle CMDlets an, die etwas mit virtuellen Maschinen zu tun haben. Ist der gesuchte Befehl nicht dabei, können Sie auch mehrere Platzhalter verwenden, zum Beispiel den Befehl get-command *vm*. Er zeigt alle Befehle an, in denen das Wort "VM" irgendwo vorkommt. Haben Sie das gewünschte CMDlet gefunden, unterstützt Sie die PowerShell aber mit weiteren Möglichkeiten.

Weitere Möglichkeiten

Für nahezu alle CMDlets gilt die Regel, dass diese in vier Arten vorliegen: Es gibt CMDlets mit dem Präfix new-, um etwas zu erstellen, zum Beispiel new-vm. Das gleiche CMDlet gibt es dann immer noch mit remove-, um etwas zu löschen, zum Beispiel remove-vm. Wollen Sie das Objekt anpassen, verwenden Sie das Präfix set-, zum Beispiel set-vm. Als Letztes zu nennen ist das CMDlet get- zum Beispiel get-vm, um Informationen zum Objekt abzurufen. Neben dieses CMDlets stehen natürlich noch viele andere auf der Liste, zum Beispiel start- und stop-CMDlets oder export und import. Allerdings bestehen die meisten Administrationsausgaben aus den erwähnten, new-, remove-, set- und get-CMDlets.

Wenn Sie nur diese Befehle eingeben, passiert entweder überhaupt nichts – das CMDlet zeigt alle Objekte der Organisation an –, oder Sie werden nach der Identität des Objektes gefragt. So zeigt das CMDlet get-vm alle VMs auf einem Host an. Damit dieser Befehl funktioniert, müssen Sie sich aber erst mit dem Host verbinden. Dazu geben Sie in der PowerShell für SCVMM das CMDlet get-vmmserver ein. Anschließend fragt Sie das CMDlet nach dem Host, den Sie verwalten wollen. Tippen Sie an dieser Stelle den Servernamen ein, um sich zu verbinden. Anschließend zeigt das CMDlet alle wichtigen Informationen zum Host an, und Sie können den Host und die installierten VMs verwalten.

Mit CMDlets virtuelle Maschinen verwalten

Haben Sie sich verbunden, können Sie alle virtuellen Maschinen mit get-vm anzeigen oder weitere Maßnahmen direkt mit den VMs auf dem Host durchführen. Wollen Sie nur ein einzelnes Objekt bearbeiten (set-), löschen (remove-), anzeigen (get-) oder erstellen (new-), müssen Sie noch den Namen des Objektes angeben.

Voraussetzung: Verbindungsaufbau mit einem physischen VMM-Host.

Tun Sie das nicht, erhalten Sie entweder eine Fehlermeldung, die Sie darüber informiert, welche Optionen fehlen, was ebenfalls eine Hilfe sein kann. Oder die PowerShell verlangt nach und nach die notwendigen Optionen und legt das Objekt an. In den meisten Fällen müssen Sie das CMDlet aber mit den entsprechenden Optionen angeben.

Das Gleiche gilt für die anderen set-, remove- und get-CMDlets. Wollen Sie allerdings lieber alle notwendigen Informationen und Optionen in einer Befehlszeile angeben, anstatt diese nach und nach einzugeben, bietet die Verwaltungs-Shell eine ausführliche Hilfe an.

Hilfreich: Anzeigen von Beispielen für Befehle aus der Verwaltungs-Shell

Mit dem Befehl help <CMDlet> erhalten Sie zunächst eine Hilfe, zum Beispiel help new-vm. Für viele CMDlets gibt es auch die Option help <CMDlet> -detailed. Dieser Befehl bietet noch mehr Informationen. Mit dem Befehl help <CMDlet> -examples lassen Sie sich Beispiele für den Befehl anzeigen. Auch das funktioniert für alle Befehle in der PowerShell.

Praktische Beispiele

Mit get-CMDlets lassen Sie sich Informationen zu Objekten anzeigen. Diese Informationen sind in der Verwaltungs-Shell wesentlich umfangreicher als in der Verwaltungskonsole.

Anpassbar: Sie können die einzelnen Parameter auswählen, die über eine virtuelle Maschine im SCVMM angezeigt werden.

Mit der Option |fl lassen Sie die Ausgabe formatieren. Auch hier sehen Sie, wie viele Informationen die PowerShell zur Verfügung stellt. Wollen Sie aber nicht alle Informationen, sondern nur einzelne Parameter anzeigen, können Sie diese nach der Option |fl anordnen. Möchten Sie zum Beispiel für eine virtuelle Maschine den Namen, den Host, den Status und den Pfad der Host-Gruppe anzeigen, verwenden Sie den Befehl get-vm <Name> |fl computername, vmhost, status, HostGroupPath. Groß-/Kleinschreibung spielt für die CMDlets keine Rolle. Nachfolgend eine paar Beispiele:

Der Befehl

Get-VM | ft Name, VMHost, HostGroupPath, Status -auto

gibt eine Liste aller VMs an, die entsprechend sortiert ist.

Get-VMCheckpoint | ft VM, AddedTime, Name -auto

zeigt die erstellten Snapshots an,

Get-VM | Get-VirtualNetworkAdapter | ft Name,EthernetAddress

liefert Informationen zu den Netzwerkverbindungen der virtuellen Server.

Der Befehl

Get-VMCheckpoint -MostRecent –VM <VMName> | Restore-VMCheckpoint

stellt den letzten Snapshot für eine VM wieder her.

Bei Microsoft können Sie sich eine Word-Datei mit allen möglichen CMDlets und Befehlen für die PowerShell herunterladen. (mje)