Einsatz für Powershell Direct: Steuerung von VMs in Windows Server 2016?

Hyper-V-Hosts als Zentralverwaltung virtueller Betriebssysteme

| Autor / Redakteur: Thomas Joos / Ulrike Ostler

In der Powershell lassen sich in Windows Server 2016 eine Vielzahl an Remote-Aktionen ausführen.
In der Powershell lassen sich in Windows Server 2016 eine Vielzahl an Remote-Aktionen ausführen. (Bild: Microsoft/Thomas Joos)

Mit „Windows Server 2016“ hat Microsoft die Funktion „Powershell Direct“ eingeführt. Mit dieser lässt sich das Betriebssystem von virtuellen Maschinen( VMs) über eine Powershell-Sitzung auf dem Host verwalten.

Zusammen mit den Powershell-Funktionen zur Verwaltung von „Hyper-V“ sowie dem Aufbauen von Powershell-Verbindungen über das Netzwerk, können Administratoren mit Powershell Direct von einer lokalen Powershell-Sitzung aus, auch auf Funktionen des internen Betriebssystems in einer VM zugreifen. Für die Verwendung ist Windows Server 2016 auf dem Host und in der VM notwendig. Powershell Direct ergänzt die Möglichkeiten der Powershell zur generellen Verwaltung von VMs, also: das Starten, Beenden, Erstellen und die Konfiguration.

Virtuelle Server in der Powershell

Virtuelle Server lassen sich auch in Windows Server 2016 in der Powershell erstellen. Dazu wird das Cmdlet New-VM -Name <Name des virtuellen Servers> verwendet. Neue virtuelle Festplatten werden wiederum mit New-VHD erstellt. Mit Stop-VM werden virtuelle Maschinen ausgeschaltet. Starten lassen sich VMs mit Start-VM. Den Zustand, die Einstellungen und die Konfiguration von virtuellen Servern werden mit Get-VM <Name der VM> abgerufen.

Eine Liste aller erstellten virtuellen Server eines Hyper-V-Hosts wird mit Get-VM abgerufen. Mit der Option |fl gibt die PowerShell weiterführende Informationen aus. Alternativ wird die Option |ft verwendet. Administratoren erhalten so auch Echtzeitdaten, also den zugewiesenen Arbeitsspeicher, wenn Dynamic Memory eingesetzt wird. Generell sind diese Optionen aber dazu da, um einen Überblick zur Konfiguration von VMs zu geben, beziehungsweise die Anzahl und Art der VMs auf einem Hyper-V-Host.

In der Powershell besteht auch die Möglichkeit das Ergebnis einer Get-Abfrage an ein anderes CMDlet zu übergeben, um weitere Informationen zu erhalten, oder Einstellungen anzupassen. So können zum Beispiel mit Get-VM die virtuellen Server eines Hyper-V-Hosts ausgelesen und mit Get-VMHardDiskDrive die virtuellen Festplatten dieser Server angezeigt werden. Dazu wird der Befehl Get-VMHardDiskDrive (Get-VM) verwendet.

Powershell Direct nutzen

In Windows Server 2016 können Administratoren von einer Powershell-Sitzung auf dem Host Verwaltungsaufgaben auf den VMs ausführen. Dabei handelt es sich nicht nur um Verwaltungsaufgaben der VMs selbst, sondern um die Möglichkeit, auch auf das Betriebssystem in der VM Einfluss zu nehmen, um zum Beispiel Server-Rollen zu installieren.

Diese neue Funktion wird Powershell Direct genannt und ist nur für Windows Server 2016 verfügbar. Um eine Powershell Direct-Sitzung zu starten, wird in der Powershell-Sitzung auf dem Host der folgende Befehle eingeben:

Enter-PSSession -VMName <Name der VM im Hyper-V-Manager>

Anschließend öffnet die Powershell-Oberfläche eine Sitzung auf dem Host und ermöglicht die Verwaltung des virtuellen Windows Server 2016-Betriebssystems über die Powershell-Sitzung auf dem Host. Dadurch lassen sich Verwaltungsaufgaben wesentlich schneller und effizienter durchführen, weil Administratoren schnell und einfach zwischen den Sitzungen wechseln können.

Interessant ist das zum Beispiel auch für die Container-Hosts, zum Beispiel wenn ein virtueller „Nano“- oder Core-Server eingesetzt wird. Neben dem einfachen Öffnen einer neuen Powershell Direct-Sitzung lassen sich von einer Powershell-Sitzung auf dem Hyper-V-Host aus auch direkt Befehle auf im virtuellen Windows Server 2016-System starten:

Invoke-Command -VMName <Name der VM im Hyper-V-Manager> -ScriptBlock { Commands }

Administratoren können vom Hyper-V-Host über Powershell Direct auch Dateien kopieren. Dazu wird eine neue Sitzung geöffnet danach die Dateien kopiert:

$PSSession = New-PSSession -VMName <VMName> -Credential (Get-Credential)

Copy-Item -ToSession $PSSession -Path C:\data.bar -Destination C:\

Mehr dazu zeigt Microsoft auf einer eigenen Internetseitedazu.

Erstellen einer Remote-Powershell-Sitzung auf einem Nano-Server

Um die Container auf einem Nano-Server zu verwalten, ist der beste Weg eine RDP-Sitzung zum Hyper-V-Host aufzubauen, auf dem der Nano-Server virtualisiert werden soll. Über diesen lässt sich dann eine Remote-Powershell-Sitzung zum Nano-Server aufbauen.

Dazu muss im ersten Schritt der Nano-Server zu den vertrauenswürdigen Hosts auf dem Hyper-V-Host hinzugefügt werden. Dazu wird die IP-Adresse des Nano-Servers verwendet. Diese Daten sind in der Nano Recovery Console zu sehen. In diesem Beispiel hat der Nano-Server die IP-Adresse 192.168.178.225, der Server trägt die Bezeichnung „nano-hyperv“ und ist Mitglied der Domäne „joos.int“:

Set-Item WSMan:\localhost\Client\TrustedHosts 192.168.178.225 -Force

Danach wird die Remote-Powershell-Sitzung erstellt:

Enter-PSSession -ComputerName 192.168.178.225 -Credential joos\Administrator

Alle Befehle, die hier eingegeben werden, führt die Powershell auf dem Nano-Server aus. Damit zum Beispiel Container auf Nano-Servern funktionieren, müssen die neusten Updates für Windows Server 2016 installiert sein. Das gilt auch für Core-Server und Server mit grafischer Benutzeroberfläche.

Auf Nano-Servern ist die Installation von Windows-Updates teilweise etwas komplizierter. Nachdem eine Remote-Powershell-Sitzung aufgebaut wurde, werden die Updates folgendermaßen installiert:

$sess = New-CimInstance -Namespace root/Microsoft/Windows/WindowsUpdate -ClassName MSFT_WUOperationsSession

Invoke-CimMethod -InputObject $sess -MethodName ApplyApplicableUpdates

Wenn alle Updates installiert sind, kann der Nano-Server über die Remote-Powershell-Sitzung neu gestartet werden, zum Beispiel mit:

Restart-Computer

Hyper-V-Container auf Nano-Servern nutzen

Auf Nano-Servern können Administratoren Container mit dem Containerimage auf Basis des Nano-Images erstellen. Hier kann nicht das Core-Image von Windows Server 2016 verwendet werden. Setzen Unternehmen aber auf „Hyper-V“-Container, können sie auch das Core-Image als Vorlage für Windows Server Container verwenden. Dazu muss auf dem Nano-Server aber zuvor Hyper-V installiert werden. Auch diesen Befehl können Administratoren in einer Remote-Powershell-Sitzung ausführen:

Install-NanoServerPackage Microsoft-NanoServer-Compute-Package

Um die Container-Technologie zu installieren, wird anschließend ebenfalls eine Remote-Powershell-Sitzung verwendet:

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

Install-Package -Name docker -ProviderName DockerMsftProvider

Wenn die Installation abgeschlossen ist, wird auch hier der Nano-Server neu gestartet:

Restart-Computer -Force

*Der Autor

Thomas Joos ist freier Autor, Verfasser zahlreicher IT-Fachbücher und -artikel. Auf DataCenter-Insider schreibt er seinen eigenen Blog mit Tipps und Tricks für Administratoren: „Toms Admin-Blog

Was meinen Sie zu diesem Thema?

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44668022 / Middleware)