Hyper-V Server Setup


  1. Einleitung
  2. Quellen
  3. Server Konfiguration per Kommandozeile
  4. VMs administrieren

Einleitung

Hyper-V Server ist eine (man staune) kostenlose Software von Microsoft zur Virtualisierung von mehreren Gastbetriebssystemen und kann von jedem heruntergeladen und genutzt werden.

Allerdings dürfen Windows Installationen darauf nur genutzt werden, wenn die virtuellen Maschinen für Hyper-V lizenziert wurden.
Für Linux und andere freie Systeme (z.B. ReactOS ) bietet die Software aber eine interessante Umgebung.

Der Server agiert ähnlich wie eine Server-Core Installation, bei der nur die Hyper-V Rolle vorhanden ist. Die Administration erfolgt daher entweder über die Kommandozeile (bevorzugt mit Powershell ) oder per Fernwartung über das Netzwerk mit den üblichen Windows Remote Server Administration Tools.


Bezugsquellen

Wer über ein MSDN Abo verfügt, findet die ISO Images aller Hyper-V Server (ab v2008) im Download Bereich.

Ansonsten lassen sich die Images als unbegrenzten Evaluierungssoftware nach einer Registrierung herunterladen:

Der Hyper-V Server 2008 R2 ist sogar als ganz normaler Download aufrufbar.

Das ISO Image kann dann auf einen Installations-DVD gebrannt oder z.B. über das Tool Rufus auf einen USB Stick kopiert werden.

Die Installation unterscheidet sich nicht von einem regulären Windows Server Core Setup und endet bei der Login-Maske, wo man sich als Administrator ohne Passwort anmelden kann und dort sofort zur Eingabe eines eigenen Passworts aufgefordert wird.


Server Konfiguration per Kommandozeile

Ab Server 2008 R2 liefert Microsoft das Konsolenscript sconfig mit aus, welches die wichtigsten Einstellungen über ein simples Text-Menü zur Verfügung stellt.

Da dieses Tool im originalen Server 2008 fehlt und zwecks Dokumentation, werden nachfolgend die reinen Kommandozeilenaufrufe beschrieben, die unter allen Server-Varianten funktionieren:

  1. Treiber installieren (falls z.B. kein Netzwerk verfügbar ist)
    • pnputil.exe -i -a u:\net-driver\DRIVERNAME.INF
      Installiert einen Treiber per INF Datei z.B. von einem USB Stick.
  2. IP Adresse und DNS setzen
    • netsh interface ipv4 show addresses
      zeigt die verfübaren Netzwerk-Namen an, die nachfolgend benötigt werden.

    • netsh interface ipv4 set address "Local Area Connection" static 192.168.0.8 255.255.255.0 192.168.0.1
      setzt für das Netzwerk “Local Area Connection” die
      IP “192.168.0.8”
      mit Maske “255.255.255.0”
      und dem Router “192.168.0.1”

    • netsh interface ipv4 set dnsserver "Local Area Connection" static 192.168.0.1
      setzt die DNS-Server IP auf “192.168.0.1”

  3. Remote Desktop freischalten
    • reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
      deaktiviert das Ablehnen von RDP Anfragen in der Registry. Diese Einstellung wird erst nach einem Neustart wirksam.

    • netsh advfirewall firewall set rule group="remote desktop" new enable=yes
      aktiviert die Erlaubnis für Remote Desktop an der Firewall.

  4. Hostnamen ändern und neu starten
    • hostname
      zeigt den aktuellen (am Anfang zufällig generierten) Computernamen an, z.B.: WIN-SD8WSKZPBJE

    • netdom renamecomputer WIN-SD8WSKZPBJE /newname SVR-WIN2K8
      ändert den alten Namen in SVR-WIN2K8. Die Änderung wird aber erst nach einem Neustart wirksam.

    • shutdown /r /t 0
      startet das System neu.

  5. Server in bestehende Active Directory Domäne aufnehmen
    • netdom join SVR-WIN2K8 /domain:ad-domain.com /userd:Administrator /passwordd:*
      registriert das System namens “SVR-WIN2K8” im Active Directory. Diese Änderung wird erst mit dem nächsten Neustart aktiv.

    • shutdown /r /t 0
      startet das System neu.

  6. Automatische Update Installation aktivieren
    • net stop wuauserv
      deaktiviert den Windows Update Dienst um seine Einstellungen zu ändern.

    • cscript %systemroot%\system32\scregedit.wsf /AU 4
      schaltet Updates auf “Automatischer Download + Automatische Installation”

    • net start wuauserv
      startet den Windows Update Dienst neu.

    • wuauclt /detectnow
      initiiert das Suchen von Updates. Dieser Vorgang kann mehrere Stunden dauern. Mit dieser Variante gibt es keine Möglichkeit den aktuellen Fortschritt mitzuverfolgen.

  7. Einzelne manuell heruntergeladene Updates installieren:
    • wusa UPDATE_FILE.msu /quiet
      Installiert die Update-Datei UPDATE_FILE.msu

VMs administrieren

RSAT installieren und Hyper-V Manager nutzen

Die einfachste Form der Administration erfolgt über die “Remote Server Administration Tools” kurz RSAT.
Deren Installation ist “etwas seltsam”. Man installiert ein spezielles Windows-Update und findet dann RSAT bei den Windows-Features (unter Systemsteuerung, Programme und Features, Windows Features aktivieren oder deaktivieren) und kann sie dort “aktivieren” um sie tatsächlich im System zu installieren.

Darunter befinden sich dann auch die “Hyper-V Tools”, von wo aus man neue VMs erstellen, bestehende verwalten und laufende Sitzungen fernsteuern kann.

VM Administration

Ab Hyper-V Server 2012 wird die Administration per Powershell vollständig im Server angeboten. Man kann sich also per RDP zum Hyper-V Server verbinden und die folgenden Kommandos nutzen:

  • powershell
    Startet den Powershell Interpreter

  • Get-NetAdapter
    Listet alle Netzwerkschnittstellen auf um den Namen für das nachfolgende Kommando in Erfahrung zu bringen

  • New-VMSwitch -name ExternalSwitch -NetAdapterName "Local Area Connection" -AllowManagementOS $true
    Erzeugt einen neuen virtuellen Netzwerk-Switch, der an einen realen Adapter gebunden wird

  • New-VMSwitch -name InternalSwitch -SwitchType Internal
    Erzeugt einen virtuellen Netzwerk-Switch, der nur Daten zwischen VMs und dem Host austauschen kann.

  • New-VMSwitch -name PrivateSwitch -SwitchType Private
    Erzeugt einen virtuellen privaten Netzwerk-Switch, in dem nur die VMs untereinander kommunizieren können, aber nicht mit dem Host oder der Außenwelt.

  • New-VM -Name vm01 -path C:\vmguests -MemoryStartupBytes 512MB
    Erzeugt eine neue VM mit Namen vm01 im Elternverzeichnis c:\vmguest mit 512 MB RAM als Standard.

  • Set-VMProcessor -VMName vm01 -Count 2 -CompatibilityForOlderOperatingSystemsEnabled $true
    Setzt die Anzahl der virtuellen Prozessoren auf 2 und aktiviert den Support für ältere Systeme wie Windows 2000 oder NT 4.

  • Set-VMMemory -VMName vm01 -StartupBytes 512MB
    Setzt die RAM Größe fix auf 512 MB.

  • Set-VMMemory -VMName vm01 -DynamicMemoryEnabled $true -MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 2GB
    Aktiviert dynamischen RAM zwischen 64 MB und 2 GB mit der Startgröße von 256 MB.

  • New-VHD -Path c:\vmguests\vm01\vm01.vhdx -SizeBytes 32GB -Dynamic
    Erstellt eine virtuelle dynamisch-mitwachsende Festplattendatei mit 32GB.

  • Add-VMHardDiskDrive -VMName vm01 -Path C:\vmguests\vm01\vm01.vhdx
    Bindet eine erstellte Festplattendatei an eine VM.

  • Set-VMDvdDrive -VMName vm01 -ControllerNumber 1 -Path c:\isoimages\install.iso
    Stellt ein ISO-Image im virtuellen DVD-Laufwerk bereit.

  • Add-VMNetworkAdapter -VMName vm01 -IsLegacy $true -SwitchName ExternalSwitch
    Fügt einen Netzwerkadapter hinzu, der an den Switch namens “ExternalSwitch” (siehe New-VMSwitch) gebunden ist. -IsLegacy $true aktiviert den Support für ältere Gastsysteme und das Booten über Netzwerk.

  • Start-VM -Name vm01
    Startet die VM mit Namen vm01

  • Stop-VM -Name vm01 -Force
    Stoppt die VM mit Namen vm01. Ist -Force vorhanden wird die Maschine sofort beendet, andernfalls wird nur einen Shutdown-Signal an das Gast-OS gesendet.

Grafische Administration per FreeRDP

Hat man keine Möglichkeit die RSAT Tools zu benutzen oder will man die VMs nur im Hyper-V Server selbst verwalten, fehlt uns die Möglichkeit sich “grafisch” zur VM zu verbinden und Keyboard-Eingaben wie auch Mausklicks dort abzusetzen.

Hier hilft das kostenfrei Tool FreeRDP. Es kann sich nicht nur zu RDP-aktivierten Windows Rechnern verbinden, sondern auch auf einem Hyper-V System eine spezifische VM übertragen.

Für FreeRDP benötigen wir die interne GUID der VM auf einem Server, welche per Powershell auf dem Server mit

Get-VM "VM-Name" | Select-Object Id

abgefragt werden kann.

Das Kommando

wfreerdp.exe /vmconnect:VM-GUID /cert-ignore /v:HYPERV-SERVER

versucht dann die laufende VM mit der übergebenen GUID zu verbinden und fordert zur Eingabe von Benutzernamen und Passwort für die Sitzung auf. Hierfür sollte der “Administrator” Account des Hyper-V Servers genutzt werden (oder ein anderer Account mit gleichwertigen Administrationsrechten).

Für das Senden von Strg + Alt + Entf muss das Fenster aktiviert sein und man kann eben diese Tastenkombination drücken. Das aktiviert den Sicherheitsbildschirm das realen Betriebssystems, den man mit Escape verlassen kann. Das FreeRDP-Fenster hat die Kombination aber auch empfangen und an die VM weitergeleitet.

Unter Linux sollte mit dem Tool xfreerdp die gleiche Funktion durch die Tasten Strg + Alt + Ende (statt Entf) verfügbar sein.