Черный экран вместо рабочего стола в RDP сессии

Черный экран вместо рабочего стола в RDP сессии

В этой статье мы рассмотрим, что делать, если при RDP подключении к удаленному хосту вместо рабочего стола вы видите черный экран. Эта проблема стала довольно часто встречаться в последних билдах Windows 10 и Windows Server 2019, и я решил оставить тут информацию из внутренней базы знания нашего HelpDesk о типовых способах решения.

Итак, вы пытаетесь подключиться к удаленному компьютеру стандартным RDP клиентом Windows (mstsc.exe) и после ввода имени и пароля вместо рабочего стола вы видите черный экран (BLM).

черный экран вместо рабочего стола в RDP сессии

Причин, из-за которых вместо RDP сессии отображается черный экран довольно много. Как-то диагностировать или классифицировать их довольно сложно.

  1. В RDP сессии нажмите сочетание клавиш
    CTRL+ALT+END
    (в том числе позволяет сменить пароль в RDP сеансе), а затем нажмите кнопку Отмена. Иногда это позволяет вернуться к рабочему столу RDP сессии. Если это не помогло, запустите из этого экрана диспетчер задач Task Manager и запустите процесс File Explorer (File -> Run new task ->
    explorer.exe
    -> Ok); ctrl alt end в RDP сессии
  2. Проверьте, что в настройках RDP клиента (
    mstsc.exe
    ) отключено кэширование (отключите опцию Persistent bitmap caching на вкладке Experience) и используется разрешение экрана, которое поддерживается удаленным хостом (на вкладке Display выставите меньшее разрешение экрана, или попробуйте режим Full Screen); отключить кэширование для rdp
  3. Убедитесь, что на вашем и на удаленном компьютере установлены последние версии видеодрайверов. Попробуйте воспользоваться автоматическим обновлением драйверов (если этот режим у вас не отключен), или скачайте и установите драйвер вручную). обновить видео драйверы в windows В некоторых случаях для Windows 10 нужно принудительно выставить режим использования XDDM видео драйвера вместо WDDM. Для этого нужно открыть редактор групповых политик gpedit.msc и в разделе Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Remote Session Environment установить значение параметра Use WDDM graphics display driver for Remote Desktop Connections = Disabled (либо тоже самое через реестр:
    reg add “HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal Services” /v “fEnableWddmDriver” /t REG_DWORD /d 0 /f
    . Обновите групповые политики на RDP сервере; Use WDDM graphics display driver for Remote Desktop Connections
  4. В Windows Server 2016 с настроенными таймаутами для RDS сессий пару раз сталкивался с жалобами пользователей, что после подключения в отключенную (disconnected) сессию, она не активировалась корректно и они видели черный экран. Здесь поможет только завершение RDP сеанса пользователем самостоятельно (CTRL+ALT+End -> Sign out), либо принудительное завершение сессии администратором (по аналогии со статьей Не удается завершить требуемую операцию при входе по RDP). Либо настройте более агрессивные настройки отключения disconnected сессий;
  5. Отключите использование протокола UDP 3389 для передачи RDP трафика в дополнение к стандартному RDP порту TCP 3389 (доступно, начиная с Windows Server 2012 R2/Windows 8.1) через параметр Turn off UDP on client на клиенте (Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Connection Client) или через реестр:
    reg add “HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal ServicesClient” /v “fClientDisableUDP” /t REG_DWORD /d 1 /f
    . Для отключения UDP протокола для RDP трафика на стороне сервера, настройте параметр GPO …Remote Desktop Session Host -> Connections -> Select RDP transport protocols = Use only TCP. отключить использование UDP для RDP сессий

Из более экзотических рекомендаций от Microsoft, которые помогают далеко не всегда, но могут исправить именно источник проблемы:

  1. Убедитесь, то RDP сервер, клиент и все сетевое оборудование между ними настроены на одинаковый размер MTU;
  2. Отключите сжатие передаваемых данных в сеансе RDP через редактор локальной GPO – Configure compression for RemoteFX data (Настройка сжатия данных RemoteFX) = Do not use an RDP compression algorithm (Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host). отключить сжатие для rdp трафика
  3. Если проблема с черным экраном в RDP встречается на Windows Server 2019 и Windows 10 1809+. Откройте Event Viewer и проверьте журнал событий Application and Service Logs –> Microsoft –> Windows –> RemoteDesktopService-RdpCoreTS. Проверьте, есть ли там ошибки вида ‘
    Failed GetConnectionProperty’ in CUMRDPConnection::QueryProperty at 2884 err=[0x80004001]
    ‘, ‘
    Connection doesn’t support logon error redirector’ in CUMRDPConnection::GetLogonErrorRedirector at 4199 err=[0x80004001]
    . Если такие ошибки встречаются, нужно отключить использование протокола URCP (Universal Rate Control Protocol), который используется для передачи некоторых данных между RDP клиентом и сервером поверх UDP (MS-RDPEUDP2):
    reg add “HKLMSOFTWAREMicrosoftTerminal Server Client” /v “UseURCP” /t REG_DWORD /d 0 /f

    или так
    New-ItemProperty 'HKLM:SOFTWAREMicrosoftTerminal Server Client' -Name UseURCP -PropertyType DWord -Value 0

Windows Server 2016
Черный экран вместо рабочего стола в RDP сессии