Tags: Hyper-V, RDP
Verbindet man sich mit einer virtuellen Maschine unter Hyper-V, dann öffnet der Hyper-V Manager automatisch eine Remotedesktop-Sitzung. Je nachdem welches Betriebssystem oder welche Version von Windows in der VM läuft, kann man die Bildschirmauflösung auf verschiedene Arten anpassen.
Im Gegensatz zu einem Desktop-Hypervisor wie VirtualBox oder VMware Workstation laufen VMs unter Hyper-V grundsätzlich "headless". Eine Interaktion mit dem Gastsystem setzt deshalb voraus, dass man mit ihm eine RDP-Verbindung aufbaut.
Direkte RDP-Verbindung über den Hypervisor
Dafür ist es allerdings nicht notwendig, das Gast-OS für Remotedesktop zu konfigurieren und eine Sitzung über den normalen RDP-Client zu initiieren. Vielmehr kann man eine Session direkt über den Hypervisor herstellen, selbst wenn der Gast gar kein RDP unterstützt (siehe dazu: Mit VMs verbinden über VMConnect und Remotedesktop).
Die einfache Variante der VMConnect-Verbindung ist im Vergleich zu einem normalen Remotedesktop ziemlich eingeschränkt und erlaubt etwa nicht, Ressourcen des Clients wie lokale Laufwerke oder die Zwischenablage in die Remote-Session einzublenden.
Aus diesem Grund führte Microsoft mit Windows 8.1 und Server 2012 R2 den erweiterten Sitzungsmodus ein, der die meisten Limitierungen des Basismodus überwindet. Die Art und Weise, wie man die Bildschirmauflösung ändern kann, hängt auch davon ab, welchen Sitzungsmodus man verwendet.
Einfacher Sitzungsmodus
Die einfache Variante von VMConnect wird man meistens dann nutzen, wenn der erweiterte Sitzungsmodus nicht zur Verfügung steht, also wenn in der VM einer älteres Windows oder ein Linux läuft.
Handelt es sich um Windows 7 oder höher, dann lässt sich die Auflösung wie bei einem physikalischen Rechner ändern. Führt man aus dem Kontextmenü des Desktops den Befehl Bildschirmauflösung bzw. Anzeigeeinstellungen aus, dann stehen diverse Modi zur Verfügung.
Auflösung vor dem VM-Start ändern
Läuft der Hyper-V-Host unter Windows 10 oder mindestens Server 2016 und handelt es sich beim Gast-OS ebenfalls um eine dieser beiden Windows-Versionen, dann steht mit PowerShell eine weitere Option zur Verfügung.
Zuständig für die Änderung der Bildschirmauflösung von VMs ist das Cmdlet Set-VMVideo. Es erwartet die Angabe des VM-Namens sowie der horizontalen bzw. vertikalen Auflösung. Ein Aufruf erfolgt nach dem Muster
Set-VMVideo -VMName MyVM -ResolutionType Single `
-HorizontalResolution 1024 -VerticalResolution 768
Um dieses Kommando ausführen zu können, muss die VM ausgeschaltet sein. Es ändert dann die Bildschirmauflösung für den einfachen Sitzungsmodus. Der ResolutionType Single bewirkt, dass im Gastsystem nur mehr diese Auflösung verfügbar ist, Der Wert Maximum lässt auch alle kleineren Größen zu. Die aktuelle Einststellung kann man mit Get-VMVideo erfragen.
Bildschirmauflösung für Linux-VM anpassen
Läuft in der VM jedoch Linux, dann bietet die GUI im Pulldown-Menü nur die aktuell eingestellte Auflösung zur Auswahl an. Um diese zu ändern, muss man die Konfigurationsdatei für den GRUB-Bootloader editieren.
Dazu gibt man in einem Terminalfenster folgendes Kommando ein:
sudo vi /etc/default/grub
Dort sucht man nach der Zeile, die mit GRUB_CMDLINE_LINUX_DEFAULT beginnt und ergänzt sie um den Eintrag video=hyperv_fb:<Breite>x<Höhe>.
Nach dem Speichern der Datei führt man noch den Befehl
sudo update-grub
aus und startet die VM neu. Alternativ zu vi kann man für diese Aufgabe natürlich auf einen anderen Editor verwenden.
Erweiterter Sitzungsmodus
Nutzt man mit den neueren Versionen von Windows den erweiterten Sitzungsmodus, dann erscheint beim Start des Gastbetriebssystems automatisch ein Dialog, in dem man per Schieberegler die Auflösung ändern kann. Dort besteht auch die Möglichkeit, den Zugriff auf lokale Ressourcen zu konfigurieren, wenn man das Fenster mittels Optionen erweitert.
Wenn man anschließend die Bildschirmauflösung von innerhalb der VM ändern möchte, dann ist das entsprechende Menü in der Systemsteuerung ausgegraut und es erscheint der Hinweis, dass man die Anzeigeeinstellungen in der Remote-Sitzung nicht ändern.
Hat man im ersten Dialog, der beim Hochfahren des Gastsystems erscheint, nach der Auswahl der gewünschten Auflösung die Option Die Einstellungen sollen für künftige Verbindungen mit diesem virtuellen Computer gelten angehakt, weil man nicht jedes Mal gefragt werden möchte, dann erscheint er bei späteren Starts der VM nicht mehr.
Wenn man in diesem Fall die Auflösung nachträglich ändern oder den Zugriff auf lokale Ressourcen anders regeln will, dann kann man die Einstellungen von VMConnect für diese VM durch einen solchen Aufruf bearbeiten:
vmconnect <Hyper-V-Host> <Name der VM> /edit
Voraussetzung dafür, dass der Dialog mit den Einstellungen erscheint, ist nicht nur, dass der erweiterte Sitzungsmodus auf dem Host aktiviert ist und eine neuere Version von Windows in der VM läuft. Zusätzlich muss das Gast-OS in der virtuellen Maschine vollständig gebootet sein. Ist die VM ausgeschaltet, erscheint nur das leere Fenster von VMConnect.
Alternativ bietet der Hyper-V Manager eine GUI-Option an, wenn für eine bestimmte VM die RDP-Einstellungen gespeichert wurden. In diesem Fall findet sich in der rechten Leiste der Menüpunkt Sitzungsoptionen bearbeiten.
Bei Sitzungsoptionen bearbeiten darf zudem keine Verbindung mit der VM existieren, weil der Befehl sonst nur zur bestehenden RDP-Session umschaltet.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Erweiterten Sitzungsmodus für Ubuntu-VMs in Hyper-V aktivieren
- Anzeige von RDP-Sitzungen für hochauflösende Monitore anpassen
- Dynamic Resize: Fenstergröße von Hyper-V-Gästen stufenlos ändern
- RDP, VNC, FTP, VPN: Verbindungen verwalten mit Remote Desktop Manager Free
- Veeam bringt kostenlosen RDP-Proxy für Hyper-V
Weitere Links
3 Kommentare
Seit längerem suche ich wie verrückt nach einer Lösung für meine VM, warum diese trotz erweiterten Sitzungsmodus die Auflösung nicht höher schalten kann, obwohl alle anderen VMs (alle Server 2012r2) dies können.
Selbst die MS Foren halfen nicht...
vmconnect -Hyper-V-Host- -Name der VM- /edit
war die Lösung !!!!
hallo,
war hilfreich, aber oben bitte mal den powershell befehl korrigieren -> horizontal resolution (fehlt das t, is blöd wenn man c&p macht) - DANKE
Danke, ist erledigt!