Короткий ответ
Enhanced Session Mode — это RDP внутри гостя, упакованный в VMConnect, не «магия видеоадаптера». На HV01 должна быть разрешена политика enhanced session, в VM-APP01 — запущен стек Remote Desktop, пользователь имеет право логона, Integration Services живы. Это не замена сети: для буфера/USB нужен именно ESM, для обычного RDP по LAN — отдельный путь.
Не открывайте 3389 гостя в интернет «чтобы заработал Enhanced Session». ESM идёт через хост Hyper-V, не через публикацию RDP.
Симптомы и как отличить
Типичная картина:
- в VMConnect View → Enhanced Session серый;
- буфер обмена между админской станцией и гостем мёртв;
- полноэкранный сеанс есть, редиректа дисков нет;
- Linux-гость: ожидания как у Windows Server — зря.
Отличия:
| Что видно | Куда |
|---|---|
| Вообще нет консоли, VM не Running | старт VM |
| Сеть гостя мертва, обычный RDP тоже | сеть VM |
| IC красные | Integration Services |
| Хост Hyper-V не отвечает | health |
Возможные причины
- На хосте выключено Allow enhanced session mode (сервер и/или пользовательская политика).
- В госте отключён Remote Desktop / служба
TermService. - NLA + учётка без прав / не в Remote Desktop Users.
- Гость слишком старый (нужны Windows 8.1 / Server 2012 R2+ для полноценного ESM) или это Server Core без компонентов.
- Guest Service Interface выключен.
- Подключение идёт не VMConnect, а сторонний клиент.
- Групповая политика гостя запрещает RDP.
Диагностика
Хост:
Get-VMHost | Format-List EnableEnhancedSessionMode
Get-VM -Name 'VM-APP01' | Format-List Name, State, Generation, Version
Get-VMIntegrationService -VMName 'VM-APP01' | Format-Table Name, Enabled, PrimaryStatusDescriptionВ Hyper-V Settings хоста: Enhanced Session Mode Policy — Allow. User — Use enhanced session mode.
Гость:
Get-Service TermService, UmRdpService | Format-Table Name, Status, StartType
Get-NetFirewallRule -DisplayGroup 'Remote Desktop' | Format-Table DisplayName, Enabled, Direction, Profile
(Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server').fDenyTSConnections
Get-LocalGroupMember -Group 'Remote Desktop Users' -ErrorAction SilentlyContinuefDenyTSConnections = 1 — RDP запрещён. Для ESM его нужно разрешить в госте, даже если вы не планируете 3389 снаружи: слушатель localhost/VMBus.
Сеть для обычного RDP с вашей станции — отдельная проверка Test-NetConnection VM-APP01 -Port 3389. Она может быть закрыта firewall и при этом ESM через VMConnect работать, если TermService жив. И наоборот: 3389 открыт, ESM нет — политика хоста.
Журналы гостя: Microsoft-Windows-TerminalServices-LocalSessionManager.
Решение
Сценарий A. Политика хоста
Set-VMHost -EnableEnhancedSessionMode $trueВ GUI: Hyper-V Settings → Enhanced Session Mode Policy и User. Переоткройте VMConnect (не достаточно свернуть окно).
Сценарий B. RDP в госте выключен
Включите Remote Desktop (System Properties или GPO). Добавьте вашу админскую учётку в Administrators или Remote Desktop Users. Не путать с запретом NLA: для современных гостей NLA нормален, если учётка/пароль верные.
Firewall гостя: группа Remote Desktop Enabled для профиля Domain. Не «выключить firewall».
Сценарий C. Guest services
Enable-VMIntegrationService -VMName 'VM-APP01' -Name 'Guest Service Interface'
Get-VMIntegrationService -VMName 'VM-APP01'Имя службы в госте: vmicguestinterface. StartType Manual/Automatic, Status Running когда нужно.
Сценарий D. Server Core / без Desktop Experience
ESM ограничен. Используйте PowerShell Direct (Enter-PSSession -VMName VM-APP01) как основной консольный канал, не ждите полного редиректа дисков как в Desktop.
Сценарий E. Linux
Enhanced Session для Linux зависит от дистрибутива и XRDP/доп. пакетов; это не тот же чекбокс Windows. Basic console + SSH обычно честнее, чем «включить ESM как у 2022».
Если VMConnect открыт с рабочей станции через RSAT, версия клиента должна быть не древнее хоста. Старый Windows 10 admin PC иногда не предлагает Enhanced. Проверка: локальный VMConnect на HV01 (консоль BMC при необходимости). Если локально ESM есть, а с ноутбука нет — клиент, не гость.
Политика «Use enhanced session mode» на хосте — пользовательская. EnableEnhancedSessionMode — серверная. Нужны обе. После Set-VMHost закройте все VMConnect, не только reconnect.
Для доменной учётки в госте нужен сеть до DC или cached logon. После sysprep/клона без сети ESM с доменным логином падает, local admin — нет. Это не баг Hyper-V.
Как проверить, что проблема устранена
VMConnect: сессия Enhanced, буфер обмена копирует строку в гость и обратно, редирект диска если включали в Display settings подключения. Get-VMHost EnableEnhancedSessionMode True. TermService Running. После reboot гостя ESM снова предлагается (иногда первый логон basic, второй — enhanced: переключите View).
PowerShell Direct параллельно:
Invoke-Command -VMName 'VM-APP01' -Credential (Get-Credential) -ScriptBlock { hostname }Это не замена ESM, но доказывает IC/KVP канал.
Если не помогло
- Чёрный экран и в basic: видео/загрузка гостя, не ESM.
- Только с RSAT, локально на HV01 работает: версия VMConnect / политика на станции, не гость.
- Credential Guard/ограничения на админской станции ломают SSO в RDP — кэш учётки в VMConnect.
- Время в госте сильно врёт: NLA, синхронизация времени.
Профилактика
- EnableEnhancedSessionMode в эталоне хоста.
- GPO гостей: RDP разрешён для админов, 3389 не слушает внешние сети (firewall).
- Не выключать Guest Service Interface «для безопасности» без замены (PS Direct всё равно нужен канал IC).
- Документ: ESM для админов, обычный RDP только через jump.
FAQ
Enhanced Session слушает 3389 на всех интерфейсах?
Стек RDP в госте может слушать 3389. Ограничьте firewall. Сам VMConnect к Hyper-V идёт другим путём (сессия к хосту).
Можно ли без учётки в госте?
Нет. ESM аутентифицирует пользователя гостя. Local admin или домен.
Почему буфер не работает в basic?
Basic — кадры видео. Буфер — RDP-канал ESM.
Generation 1 поддерживает?
Ограниченно по сравнению с Gen2/новыми гостями. Смотрите матрицу Microsoft для вашей пары хост/гость.
Отключить NLA чтобы ESM ожил?
Плохой постоянный фикс. Сначала время, пароль, права группы. NLA Off — только короткая диагностика.
VMConnect vs mstsc /v:VM-APP01?
mstsc — сеть. VMConnect — консоль гипервизора. ESM внутри VMConnect. Если сеть гостя в другой VLAN без маршрута, mstsc мёртв, ESM может жить.