Hyper-V zmiana domyślnej rozdzielczości połączenia do maszyny wirtualnej
Czy zdarzyło się Wam być poirytowanymi gdy podczas podłączania się do maszyny wirtualnej w usłudze Hyper-V ustawiliście sobie „Użyj wszystkich moich monitorów” oraz zaznaczyliście „Zapisz moje ustawienia na potrzeby przyszłych połączeń z tą maszyną wirtualną”? Pewnie nie, bo to całkiem spoko funkcja 🙂 Problem pojawia się jednak, gdy chcielibyście to ustawienie zmienić i… okazuje się, że nie jest to takie proste.

Okazuje się bowiem, że to ustawienie może być ciężkie do zmiany, aczkolwiek nie jest wcale niemożliwe – choć nie da się tego wyklikać w konsoli zarządzania Hyper-V, ani w ustawieniach wirtualnej maszyny. Dzieje się tak, ponieważ tak naprawdę jest to sesja RDP (dość specyficzna, ale jednak RDP), a taka sesja po prostu zapisuje swoje ustawienia w pliku konfiguracyjnym. Normalna konfiguracja sesji RDP jest przechowywana w pliku tekstowym z rozszerzeniem .rdp i wygląda mniej więcej tak:

Z kolei konfiguracja sesji konsoli Hyper-V jest zapisana w „głębokim ukryciu” i jest plikiem w strukturze XML o rozszerzeniu .config. Jak znaleźć odpowiedni plik konfiguracyjny dla konkretnej maszyny? Należy zacząć od zdobycia unikalnego ID wirtualnej maszyny. Oczywiście bez PowerShella ani rusz – gdzie VMid znajdziemy po wykonaniu polecenia:
Get-VM -Name <nazwa_maszyny> | Select Name, VMId
Gdzie wynikiem polecenia będzie losowy ciąg znaków:

Pliki konfiguracyjne połączeń konsoli Hyper-V są zapisywane domyślnie w następującym katalogu:
%appdata%\Microsoft\Windows\Hyper-V\Client\1.0
Wewnątrz katalogu odszukujemy plik:
vmconnect.rdp.<VMId>.config
Jak pisałem jest to plik XML, gdzie najbardziej interesujące nas teraz elementy są umieszczone w ustawieniach o następujących nazwach:
- FullScreen
- DesktopSize
- UseAllMonitors
DesktopSize to poprostu domyślna rozdzielczość tzw. „sesji rozszerzonej” pozostałe to zmienne typu „boolean” więc przyjmują wartości True lub False. Jeśli ustawiliśmy te wartości przy pierwszym połączeniu to należy je zmienić do żądanych wartości.

Aby jedna z wirtualnych maszyn przestałą się upierdliwie panoszyć na obydwu monitorach, musiałem zmienić FullScreen na False, DesktopSize na 1920, 1080 oraz oczywiście UseAllMonitors także na False.
To była wersja dla wyjadaczy 😉 Prościej jest ten plik po prostu usunąć, ale… można jeszcze prościej – klikając na uruchomionej już maszynie w konsoli Hyper-V prawym klawiszem myszy i wybierając opcję „Edytuj ustawienia sesji”

Najnowsze komentarze