Наш партнер поймал странную ошибку на Windows Server 2019 Standard при использовании протокола удаленного рабочего стола. Сервер — физика, с ролями RDP и файловыми службами, все лицензии в норме.
В какой-то момент внешние клиенты не смогли подключиться к серверу — приложение mstsc показывало сообщение «Произошла внутренняя ошибка*». Кнопка «ОК» и фигушки.
* Рекомендуем статью по диагностике и исправлению ошибки на портале WinItPro.
Искали разные решения в Интернете. Пробовали по-всякому, но сработал лишь один вариант — полное восстановление сервера из бэкапа.
Как итог — дело было в обновлениях. Сервер работает до определенного времени, потом загружает нехорошую бяку, что «ломает» протокол RDP.
Увы, полной информации по конкретному KB и корневой причины нет. Из-за ограниченного времени. Требовалось восстановить работу сервера как можно быстрее.
На других серверах помогло удаление средств криптографической защиты (VipNet, КриптоПро). Проверьте вариант с удалением обновлений или полной зачистке CSP.
Таким образом, если вы столкнулись с этой ошибкой — проверьте в первую очередь Центр обновлений. Возможен, как откат последних апдейтов, так и установка новых. У других были случаи, что именно развертывание новых исправлений спасало ситуацию.
Ошибка на сервере
В журналах серверной ОС фиксировалось следующее:
Имя журнала: Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
Источник: Microsoft-Windows-RemoteDesktopServices-RdpCoreTS
Дата: 18.01.2022 19:52:15
Код события: 226
Категория задачи:Модуль RemoteFX
Уровень: Предупреждение
Ключевые слова:
Пользователь: NETWORK SERVICE
Компьютер: ********
Описание: RDP_TCP: произошла ошибка при переходе из StatePreparingX224CC в ответ на Event_ERROR_SendingX224CC (код ошибки: 0x0).
Возможные действия по исправлению
Ниже список вариантов, которые можно проверить. Они просто собраны из всего множества материалов, которые нам попадались.
Ручаться за адекватность и полноту — не можем. Как говорится «смотрите сами, решайте сами».
- Проверить работу сервиса RDP на другом порте (PortNumber) и временно ограничить попытки входа списком разрешенных ip-адресов.
- Запустить командную строку от имени администратора и увеличить значение MaxOutstandingConnections в реестре. Перезапустить RDP-службы или перезагрузить сервер.
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v MaxOutstandingConnections /t REG_DWORD /d 65536
- Временно убрать роль веб-сервера IIS для проверки.
- Завершить на сервере прочие клиентские сессии.
- Перезапустить службы лицензирования рабочих столов.
- Проверить наличие и срок действия самоподписанного сертификата сервера «Сертификаты (учетная запись компьютера) — Удаленный рабочий стол — Сертификаты».
Удалить сертификат и перезапустить «Службы удаленных рабочих столов» (TermService). Должен появиться новый. - С помощью групповой политики установить уровень безопасности RDP и перезагрузить сервер.
«Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Узел сеансов удаленных рабочих столов — Безопасность — Требовать использования специального уровня безопасности для удаленных подключений по протоколу RDP = RDP»
- Отключение RemoteFX для приложений RemoteApp через реестр
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations]
"fEnableRemoteFXAdvancedRemoteApp"=dword:00000000 - Остановить сервисы RDP, перейти в папку «C:\Program Data\Microsoft\Crypto\RSA» и переименовать MachineKeys в этом каталоге. Запуск служб RDP должен воссоздать папку MachineKeys.
- Через локальную политику безопасности (secpol.msc) включить использование совместимых FIPS-алгоритмов.
Локальные политики — Параметры безопасности — Системная криптография: Использовать FIPS-совместимые алгоритмы для шифрования, хеширования и подписывания
- Проверьте при отключении требования NLA. Настройте параметр UserAuthentication в реестре — он указывает, как пользователи аутентифицируются перед установкой подключения к удаленному рабочему столу.
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
"0" — проверка подлинности на уровне сети не требуется (значение по умолчанию)
"1" — требуется проверка подлинности пользователя на уровне сети
Также NLA можно отключить в групповой политике:
«Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Узел сеансов удаленных рабочих столов — Безопасность — Требовать проверку подлинности пользователя для удаленных подключений на уровне сети = Отключено»
- Включите поддержку TLS 1.0 через реестр.
✅ Здорово, если расскажете в комментариях, как вы исправили эту ошибку. Что помогло вам или какое решение сработало. Это поможет другим при восстановительных работах.
_____________________________________
⚡ Подписывайтесь на канал или задавайте вопрос на сайте — постараемся помочь всеми техническими силами. Безопасной и производительной работы в Windows и 1С.