Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Event ID 20 Windows Server, AD и Роли

Event ID 20 Remote Desktop: ошибка в потоке протокола RDP — решение

Обновлено: 28.08.2026 · Официальная документация ↗

Симптомы ошибки протокола RDP (Event ID 20)

В журнале Applications and Services Logs > Microsoft > Windows > TerminalServices-LocalSessionManager > Operational или в системном журнале фиксируется ошибка: Event ID 20: The Terminal Server security layer detected an error in the protocol stream and has disconnected the client. Client IP: [IP_клиента].

СимптомПоследствия
Внезапный разрыв RDP-сессииКлиент RDP мгновенно отключается во время активной работы
Ошибка «Подключение было потеряно»Диалоговое окно клиента: «The remote connection was lost because of an error in protocol»
Отказ подключения некоторых клиентовОпределенные версии RDP-клиентов (macOS, Linux, старые Windows) не могут подключиться

Пошаговое устранение сбоя потока RDP (Event ID 20)

Ошибка указывает на повреждение пакетов в потоке данных RDP, несоответствие шифров TLS или сбой в работе аппаратного ускорения видеодрайвера (WDDM graphics driver for Remote Desktop).

  1. Отключите использование сетевого протокола UDP для RDP (принудительный TCP): нестабильные сетевые каналы с потерями пакетов UDP часто повреждают поток RDP:
# Отключение RDP over UDP через реестр (PowerShell от имени Администратора):
$regPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client"
if (-not (Test-Path $regPath)) { New-Item -Path $regPath -Force }
Set-ItemProperty -Path $regPath -Name "fClientDisableUDP" -Value 1 -Type DWord -Force

# На стороне сервера:
$regServerPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services"
Set-ItemProperty -Path $regServerPath -Name "SelectTransport" -Value 1 -Type DWord -Force # 1 = Только TCP
  1. Отключите графический драйвер WDDM для сессий Remote Desktop: переключитесь на классический драйвер XDDM для предотвращения сбоев потока рендеринга:
# Отключение драйвера WDDM для RDP через реестр:
$tsPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services"
Set-ItemProperty -Path $tsPath -Name "fEnableWddmDriver" -Value 0 -Type DWord -Force
  1. Настройте требуемый уровень безопасности RDP (TLS 1.2 / NLA):
# Принудительное включение согласования безопасности и TLS:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "SecurityLayer" -Value 2 -Type DWord -Force
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Value 1 -Type DWord -Force

Совет: Значения SecurityLayer: 0 — RDP Encryption, 1 — Negotiate (Согласование), 2 — SSL/TLS (Рекомендуется для максимальной стабильности и безопасности).

💡 Практика специалистов: Event ID 20 часто появляется при подключении пользователей с нестандартными клиентами (FreeRDP, Remmina, встроенный RDP в macOS) или при включенном аппаратном сжатии видеокарт. Отключение fEnableWddmDriver = 0 полностью ликвидирует сбросы сессий.

Частые вопросы (FAQ)

Почему RDP-сессия внезапно обрывается с ошибкой протокола?

Служба безопасности RDS обнаружила поврежденный или нераспознанный пакет данных в потоке TLS/RDP, что расценивается системой как потенциальная атака или сбой связи.

Помогает ли отключение UDP для Remote Desktop?

Да, на нестабильных каналах связи (Wi-Fi, мобильный интернет, плохой VPN) протокол UDP теряет пакеты, вызывая сбой потока. Перевод на TCP решает проблему разрывов.

Что такое NLA (Network Level Authentication)?

NLA — это аутентификация на уровне сети, требующая проверки учетных данных пользователя ДО создания графической сессии RDP.

Как перезапустить службу RDP без перезагрузки сервера?

Выполните в PowerShell: Restart-Service -Name TermService -Force (все активные сессии RDP будут сброшены).

Полезные материалы
Рекомендуем