Короткий ответ

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

Возможные причины

  1. На хосте выключено Allow enhanced session mode (сервер и/или пользовательская политика).
  2. В госте отключён Remote Desktop / служба TermService.
  3. NLA + учётка без прав / не в Remote Desktop Users.
  4. Гость слишком старый (нужны Windows 8.1 / Server 2012 R2+ для полноценного ESM) или это Server Core без компонентов.
  5. Guest Service Interface выключен.
  6. Подключение идёт не VMConnect, а сторонний клиент.
  7. Групповая политика гостя запрещает 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 SilentlyContinue

fDenyTSConnections = 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 может жить.