不用 RDP 也能看虚拟机画面:ExHyperV 控制台基本/增强双会话模式实战指南
【免费下载链接】ExHyperVThe Excalibur of Hyper-V / Hyper-V 神器项目地址: https://gitcode.com/gh_mirrors/ex/ExHyperV
ExHyperV 是一款图形化的 Hyper-V 虚拟机管理工具,它的内置控制台让你不开远程桌面、不配网络,也能直接看到虚拟机的画面。控制台支持基本会话与增强会话两种模式:前者在系统还没装好时就能看 BIOS/安装界面,后者支持剪贴板共享和分辨率跟随窗口。本文用 3 个步骤带你把两种会话模式都用起来。
一、两种会话模式:一张表看懂差别 📋
Hyper-V 控制台基于 RDP 协议直连本机127.0.0.1,但底层通道完全不同:
| 对比项 | 基本会话 🖥️ | 增强会话 🚀 |
|---|---|---|
| 连接通道 | Hyper-V VMBus 通道 | RDP 协议 |
| 依赖来宾系统 | ❌ 不依赖 | ✅ 需来宾开启远程桌面(Windows 默认开) |
| 系统未启动时 | ✅ 可用(看 UEFI/安装界面) | ❌ 不可用 |
| 剪贴板双向共享 | ❌ | ✅ |
| 音频重定向 | ❌ | ✅ |
| 分辨率 | 固定,需关机时用Set-VMVideo修改 | 跟随窗口动态调整 |
| 发送 Ctrl+Alt+Del | ✅ 一键发送 | ❌(RDP 限制,与微软 VMConnect 一致) |
经验法则:装系统、看启动画面用基本会话;日常操作、复制粘贴用增强会话。
二、3 步打开 ExHyperV 虚拟机控制台 🚀
第 1 步:确认控制台支持已开启
控制台画面依赖虚拟机的「控制台支持」(合成显示控制器 + 合成鼠标/键盘三件套)。默认虚拟机都自带;若被禁用,需在关机状态下于虚拟机设置中重新启用,其实现逻辑见 VmConsoleService.cs。
第 2 步:在虚拟机卡片点击「控制台」
选中任意虚拟机,信息卡片右上角就有控制台按钮(运行中还会显示关机/重启下拉):
第 3 步:选择会话模式
控制台窗口顶部的菜单可在「基本会话/增强会话」之间切换。增强会话仅在虚拟机状态满足条件时可选——工具会通过 WMI 查询EnhancedSessionModeState(状态 2 = 可用)自动判断,见 VmConsoleService.cs。
⚠️ 一个贴心细节:如果你选了增强会话但连不上,ExHyperV 会在 2 秒超时后自动回退到基本会话,不会卡死在空白窗口。
三、基本会话实战:装系统、进 BIOS 的万能钥匙 🔑
基本会话通过 VMBus 通道直连 Hyper-V 合成显卡,不需要虚拟机内部有任何网络和 RDP 服务。典型场景:
- 装系统:挂载 ISO 后启动虚拟机,直接在控制台完成安装向导;
- 看启动画面:UEFI/BIOS 界面、系统崩溃前的最后画面都能捕获;
- 登录锁屏界面:发送 Ctrl+Alt+Del 只能走基本会话——标题栏的键盘图标按钮会直接向虚拟机发 SAS 信号(增强会话因 RDP 协议限制无法程序化发送,该按钮会自动隐藏)。
画面缩放:基本会话支持缩放下拉(25%–500%),由 RDP 控件原生 ZoomLevel 实现——超过 100% 时窗口会放大、可滚动查看局部,低于 100% 时画面按比例缩小铺满,逻辑与微软 VMConnect 的「查看→缩放」一致,见 ConsoleWindow.xaml.cs。
分辨率调整:基本会话的分辨率由 Hyper-V 虚拟显卡决定,控制台侧不能直接改。需要固定分辨率时,请在关机状态下用 PowerShell 执行:
Set-VMVideo -VMName "虚拟机名称" -HorizontalResolution 1920 -VerticalResolution 1080 -ResolutionType SingleExHyperV 内部同样走这条 WMI 通道(Msvm_SyntheticDisplayControllerSettingData)实现分辨率修改,源码见 VmVideoService.cs;基本会话默认分辨率也可在虚拟机高级设置中查看,入口位于 VmAdvancedSettingsView.xaml。
四、增强会话实战:像本地桌面一样用虚拟机 ✨
增强会话是标准 RDP 体验:剪贴板双向复制、音频重定向、桌面分辨率跟随窗口尺寸。拖拽控制台窗口边线,窗口停止移动的瞬间,ExHyperV 会把当前画面区尺寸协商给虚拟机,桌面即时变形填充,见 ConsoleWindow.xaml.cs。
开启增强会话的两个前提
- 主机侧:在「环境」页把允许增强会话模式开关打开(对应 Hyper-V 管理器的主机级设置):
该开关由 HyperVHostSettingsService.cs 写入 Hyper-V 主机配置;
- 来宾侧:Windows 虚拟机默认已启用远程桌面服务;Linux 来宾需自行安装并启动
xrdp。
两项都满足后,控制台菜单中的「增强会话」才会变为可点击状态;增强会话最后使用的分辨率也会被记住,下次打开自动应用,见 SettingsService.cs。
五、常用操作速查表 ⚡
| 操作 | 基本会话 | 增强会话 |
|---|---|---|
| 全屏切换 | ✅Ctrl+Alt+Space或标题栏按钮 | ✅ 同左(全屏时键盘完全交给虚拟机) |
| 发送 Ctrl+Alt+Del | ✅ 标题栏键盘图标 | ❌ 按钮自动隐藏 |
| 缩放画面 | ✅ 下拉 25%–500% | ❌ 画面原生跟随窗口 |
| 修改分辨率 | ⚙️ 关机后Set-VMVideo | 🖱️ 直接拖动窗口边线 |
| 剪贴板共享 | ❌ | ✅ |
| 音频 | ❌ | ✅ |
六、常见问题排查(FAQ)🩺
Q1:增强会话选项是灰的,点不了?说明该虚拟机当前不满足增强会话条件——主机开关没开、来宾系统未启动完成、或来宾没有 RDP 服务。先在环境页开启「允许增强会话模式」,等系统完全登录后再试;连不上时工具会自动回退基本会话,先看图再说。
Q2:基本会话画面糊/偏小?基本会话分辨率固定,先用缩放下拉选「自动」铺满,再用放大档查看局部文字。要彻底解决需关机后按第三节方法用Set-VMVideo固定分辨率。
Q3:Linux 虚拟机没有增强会话?Linux 默认不带远程桌面服务,需安装xrdp并设置图形会话。基本会话不受影响,随时可用。
Q4:全屏后键盘被虚拟机“抢走”回不来了?按Ctrl+Alt+Space即可退出全屏,键盘控制权还给宿主机。
写在最后
ExHyperV 控制台把微软 VMConnect 的能力做进了图形界面:基本会话保住了「系统没装好也能看」的底线,增强会话补上了剪贴板、音频和动态分辨率的体验短板。装系统时用它看进度,日常运维切到增强会话复制粘贴,一台宿主机上管理几十台虚拟机也不必再打开满屏的远程桌面窗口了。
更多技术细节可参考项目中文文档 README_zh.md 的「控制台」章节,以及控制台窗口完整实现 ConsoleWindow.xaml。
【免费下载链接】ExHyperVThe Excalibur of Hyper-V / Hyper-V 神器项目地址: https://gitcode.com/gh_mirrors/ex/ExHyperV
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考