Черный экран вместо рабочего стола в RDP сессии
В этой статье мы рассмотрим, что делать, если при RDP подключении к удаленному хосту вместо рабочего стола вы видите черный экран. Эта проблема стала довольно часто встречаться в последних билдах Windows 10 и Windows Server 2019, и я решил оставить тут информацию из внутренней базы знания нашего HelpDesk о типовых способах решения.
Итак, вы пытаетесь подключиться к удаленному компьютеру стандартным RDP клиентом Windows (mstsc.exe) и после ввода имени и пароля вместо рабочего стола вы видите черный экран (BLM).
Причин, из-за которых вместо RDP сессии отображается черный экран довольно много. Как-то диагностировать или классифицировать их довольно сложно.
- В RDP сессии нажмите сочетание клавиш
CTRL+ALT+END
(в том числе позволяет сменить пароль в RDP сеансе), а затем нажмите кнопку Отмена. Иногда это позволяет вернуться к рабочему столу RDP сессии. Если это не помогло, запустите из этого экрана диспетчер задач Task Manager и запустите процесс File Explorer (File -> Run new task ->
explorer.exe
-> Ok); - Проверьте, что в настройках RDP клиента (
mstsc.exe
) отключено кэширование (отключите опцию Persistent bitmap caching на вкладке Experience) и используется разрешение экрана, которое поддерживается удаленным хостом (на вкладке Display выставите меньшее разрешение экрана, или попробуйте режим Full Screen); - Убедитесь, что на вашем и на удаленном компьютере установлены последние версии видеодрайверов. Попробуйте воспользоваться автоматическим обновлением драйверов (если этот режим у вас не отключен), или скачайте и установите драйвер вручную). В некоторых случаях для 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 сервере; - В Windows Server 2016 с настроенными таймаутами для RDS сессий пару раз сталкивался с жалобами пользователей, что после подключения в отключенную (disconnected) сессию, она не активировалась корректно и они видели черный экран. Здесь поможет только завершение RDP сеанса пользователем самостоятельно (CTRL+ALT+End -> Sign out), либо принудительное завершение сессии администратором (по аналогии со статьей Не удается завершить требуемую операцию при входе по RDP). Либо настройте более агрессивные настройки отключения disconnected сессий;
- Отключите использование протокола 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.
Из более экзотических рекомендаций от Microsoft, которые помогают далеко не всегда, но могут исправить именно источник проблемы:
- Убедитесь, то RDP сервер, клиент и все сетевое оборудование между ними настроены на одинаковый размер MTU;
- Отключите сжатие передаваемых данных в сеансе 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 встречается на 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 сессии