Der Plan: Hyper-V Server 2016 (
download) als Grundlage für einen kleinen Server verwenden und darauf u.a. einen
bisherigen Windows Server 2012R als virtuelle Maschine zu betreiben. Nebenbei
sollen dann eventuell noch andere kleinere System laufen.
-
Hardware Unabhängigkeit (es gibt einige Hardwaretreiber nicht als
Serverversion, auch von namhaften Herstellern wie Intel)
- Kein Leistungsverlust
- Headless Betrieb, komplett von Windows 10 remote administrierbar
Ich hatte dazu schon einmal einen
Artikel, den will ich hiermit konkretisieren.
Installation und Einrichtung des Servers
-
Ganz klassisch mit USB Stick, Monitor und Tastatur. Standardeinstellungen,
die System Partition auf der SSD soll später verkleinert werden.
- System english aber Spracheinstellung deutsch, Zeitzone Berlin.
- Beim ersten Boot vom USB Stick auf UEFI oder BIOS Modus achten!
Mit dem Programm sconfig (nach der Anmeldung im Vordergrund und jederzeit
wieder mit
sconfig aufrufbar) wird folgendes eingestellt:
2) Computer Name
4) Configure Remote Man. (4-3)Enabled + ...Response to Ping
7) Remote Desktop (7-e-2) Enabled (all Clients) ...less
secure
Für den Computer Namen will er neu starten, deswegen kann man den Punkt
zuletzt machen und anschließen braucht man die lokale Anmeldung nicht
mehr. Es geht alles über RDP.
Die weiteren Einstellungen erfolgen in Powershell, dazu kann man einfach das cmd
Fenster hinter dem sconfig Fenster in den Vordergrund holen und
Start Powershell starten.
Remote Desktop
Funktioniert sofort nach der obigen Grundkonfiguration, aber eben nur wenn nicht
die Option 1) more secure eingestellt wurde. Das liegt offenbar an einem, nach
der Installation noch nicht vorhandenem Patch des CredSSP. Nach dem Windows
Update des Systems funktioniert auch die Option 1).
Netzwerk und Firewall
Windows typisch befindet sich das Netzwerk zunächst in der Category Public.
Damit sind aber viele Firewall Regeln schärfer und viele Zugriff nicht
zugelassen. Das ist im internen Netzwerk nicht sinnvoll, also ändern auf
private. Der erste Befehl liefert uns die Informationen zum Netzwerk:
Get-NetConnectionProfile
Name : Network
InterfaceAlias : Ethernet
InterfaceIndex : 3
NetworkCategory : Public
IPv4Connectivity : Internet
IPv6Connectivity : NoTraffic
Der folgende Befehl setzt den Anschluss auf Private:
Set-NetConnectionProfile -InterfaceIndex 3 -NetworkCategory Private
Den Erfolg kann man leicht mit dem vorhergehenden Befehl überprüfen.
Die IP Adresse sollte fest sein, der DHCP Server und wenn vorhanden der DNS
Server sollten so konfiguriert werden, dass der die IP Adresse fest zugeordnet
ist und der Computer Name als FQDN aufgelöst werden kann.
Remote Management
Dafür sind Powershell Remoting und der
Credential Security Support Provider zu aktivieren.
Enable-PSRemoting
Enable-WSManCredSSP -Role server
Damit ist die Server Konfiguration abgeschlossen
Einrichtung am Client Windows 10
Das Netzwerk und die Firewall sind zunächst auch so einzurichten, dass
die NetworkCategory : Private ist (siehe oben).
Der Computer Name des Hyper-V Servers muss als FQDN auflösbar sein, bitte so
prüfen.
nslookup name.domain
Funktioniert das nicht, kann/muss ein Eintrag in der
Datei C:\Windows\System32\drivers\etc\hosts gemacht werden.
Hyper-V-Verwaltungstools
Man kann sich anzeigen lassen, welche Hyper-V Features schon installiert sind
Get-WindowsOptionalFeature -Online -FeatureName *hyper-v* | where state -eq enabled| select DisplayName, FeatureName
Will man nur die Management Tools installieren, geht prinzipiell mit Powershell,
ist jedoch noch nichts von Hyper-V installiert kommt leider ein Fehler. Es
funktioniert nur im Dialog so wie gewünscht.
Windows Features aktivieren oder deaktivieren (
nicht Apps & Features
und
nicht optionale Features)
Eine Krücke mit Powershell wäre: Alles installieren und die Hyper-V-Plattform
wieder deinstallieren.
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell -all
disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
Allerdings ist dafür wegen der Installation von Hyper-V-Plattform ein Neustart
fällig.
Vertrauen in einer Workgroup
Eigentlich ist die
Empfehlung von Microsoft
auf dem Client als Erstes ebenfalls den Befehl Enable-PSRemoting auszuführen.
Allerdings aktiviert das primär auch die
Remote Verwaltung des Clients.
Es geht auch etwas sparsamer:
$server = "name.domain"
$user = "administrator"
Start-Service -Name winrm
Set-Item WSMan:\localhost\Client\TrustedHosts -Value $server
Stop-Service -Name winrm
cmdkey /add:$server /user:$user /pass
Jetzt öffnet man den Hyper-V Manager und fügt unter dem Punkt "Verbindung mit
Server herstellen" den Server mit dem Namen "name.domain" (also exakt so wie
bisher verwendet) ohne Angabe eines Benutzers hinzu.
Danke, dass ich dafür
diesen Artikel
lesen durfte.
Remote Shutdown für den Server einrichten
Die Konfiguration wird auf dem Hyper-V Server in der Powershellkonsole
durchgeführt.
Benutzer anlegen
Das Passwort wird abgefragt.
New-LocalUser "UserShutdown"
Will man verhindern, dass das Passwort altert:
Set-LocalUser -Name "UserShutdown" -PasswordNeverExpires 1
Benutzerrechte festlegen
Dazu muss zunächst ein PS Script Modul heruntergeladen und eingebunden
werden.
$url = "https://gallery.technet.microsoft.com/scriptcenter/Grant-Revoke-Query-user-26e259b0/file/198800/1/UserRights.psm1"
$output = "UserRights.psm1"
# $start_time = Get-Date
Invoke-WebRequest -Uri $url -OutFile $output
# Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)"
Import-Module .\UserRights.psm1
User Rechte erteilen
Grant-UserRight -Account "UserShutdown" -Right SeRemoteShutdownPrivilege
Firewall
Regeln für "File and Print" aktivieren, entweder mit dem netsh Tool, was mit dem
dargestellten Syntax nur auf einem englischen System funktioniert.
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes
Oder mit dem Powershell cmdlet und der "codierten" Variante, die
sprachunabhängig funktioniert.
Enable-NetFirewallRule -Group "@FirewallAPI.dll,-28502"
Volume verkleinern
Ich würde gern noch das Volume C auf dem Hyper-V Server minimieren. 48 GB
sollten dafür ausreichen, derzeit ist das Volume 127 GB groß. Die Aufgabe
erledigt man einfach mit:
diskpart
Am Prompt von diskpart lässt man sich die Plattenkonfiguration zeigen, wählt die
gewünschte Partition und verkleinert sie
um den Betrag 80000 MB. (1024 MB
= 1 GB)
list disk
sel disk 0
list part
sel part 4
shrink desired=80000
exit
Probleme
Scheinbar ziemlich aktuell taucht ein Problem auf, wenn die CredSSP der beiden
Maschinen einen unterschiedlichen Patchlevel haben. Ich konnte mich zwar mit dem
Hyper-V Manager zu meinem Hyper-V Server verbinden und kann den komplett
administrieren, eine Verbindung zu den Virtuellen Gastmaschinen schlug aber
wieder mit der Meldung "CredSSP ... Oracle ... Remediation ... linkid=866660"
fehl.
Abhilfe schafft in dem Fall auf die Schnelle:
gpedit (Editor für Lokale Gruppenrichtlinien) -> Computerkonfiguration ->
Administrative Vorlagen -> System -> Delegieren von
Anmeldeinformationen
Dann diese Einstellung am Client
Letzendlich wird damit dieser Schlüssel in der Registry gesetzt:
REG_DWORD
AllowEncryptionOracle : 2
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP
Original existiert dieser Wert nicht und entspricht damit 0
Quelle1
Quelle2
Dies und das
Firewall aus und einschalten
NetSh Advfirewall set allprofiles state off
NetSh Advfirewall set allprofiles state on
Firewall Rules abfragen
Get-NetFirewallRule -name *