Произошла внутренняя ошибка RDP, решаем за минуту

rdp logoДобрый день! Уважаемые читатели и гости, IT блога Pyatilistnik.org. В прошлый раз мы с вами поговорили, про отложенный запуск служб в Windows, сегодня я хочу вам показать еще один не приятный момент в работе терминальных служб удаленного рабочего стола, а именно ошибка подключения "Произошла внутренняя ошибка", после чего подключение разрывается. Такое я встречал уже в Windows Server 2012 R2 и 2016. Давайте разбираться в чем дело.

Описание проблемы

Есть сервер с операционной системой Windows Server 2012 R2, сотрудник пытается к нему подключиться, через классическую утилиту "Подключение к удаленному рабочему столу", в момент авторизации, выскакивает окно с ошибкой "Произошла внутренняя ошибка".

Произошла внутренняя ошибка

В английском варианте ошибка звучит вот так:

An internal error has occurred

An internal error has occurred

После этого у вас разрывается соединение. Когда мы видели моргающий экран по RDP, там хотя бы вы попадали на сервер и могли открыть диспетчер устройств, тут сразу все обрубается на корню. Давайте смотреть, что можно сделать.

🆘 Что есть в логах?

Если посмотреть журналы событий на удаленном сервере, куда вы пытаетесь подключиться, то там порядок событий будет такой:

События нужно искать в журнале Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational

  • 1️⃣ Первым будет идти событие ID 131 "The server accepted a new TCP connection from client IP-адрес:60050.". Тут вы увидите IP-адрес с которого идет попытка входа.

Event ID 131

  • 2️⃣ Далее событие ID 65 "Connection RDP-Tcp#11 created ".

Event ID 65

  • 3️⃣ Затем событие 141 "PerfCounter session started with instance ID 11". Тут сессии будет назначен ID.

Event ID 141

  • 4️⃣ За ним будет идти ID 142 "TCP socket READ operation failed, error 1236".

TCP socket READ operation failed, error 1236

  • 5️⃣ Потом вы увидите ID 72 "Interface method called: OnDisconnected"

ID 72

  • 6️⃣ И же после этого вам покажут, что сервер разорвал подключение: "ID 102 The server has terminated main RDP connection with the client."

Event ID 102

  • 7️⃣ В событии ID 145 так же появляются подробности "During this connection, server has not sent data or graphics update for 0 seconds (Idle1: 0, Idle2: 0).".

Event ID 145

  • 8️⃣ Могут быть события с ID 148 "Channel rdpinpt has been closed between the server and the client on transport tunnel: 0." или "Channel rdpcmd has been closed between the server and the client on transport tunnel: 0." или "Channel rdplic has been closed between the server and the client on transport tunnel: 0."
  • 9️⃣ Ну и вишенка на торте, ошибка  ID 227 "'Failed to get property Disconnect Reason' in CUMRDPConnection::Close at 2212 err=[0x80070057]"

Event ID 227

Исправляем ошибку "Произошла внутренняя ошибка"

Так как по RDP подключиться не получается, то первым делом нужно проверить отвечает ли порт, по умолчанию это 3389. О том, как проверить порт на удаленном сервере я вам описывал, там все сводилось к выполнению команды Telnet, ознакомьтесь. Если порт отвечает, то делаем следующее.

Нужно удаленно перезапустить службу на этом сервере, чтобы сам сервер не перезагружать, так как в этот момент, он может выполнять важные задачи, можно использовать утилиту "Управление компьютером". Открыть ее можно через команду вызова оснастки, вызываем окно "Выполнить", через одновременное нажатие клавиш WIN и R, в котором пишем:

compmgmt.msc

Открываем compmgmt.msc

В открывшейся оснастке, щелкните в самом верху по пункту "Управление компьютером" правым кликом мыши, и выберите пункт "Подключиться к удаленному компьютеру".

Подключение к удаленному компьютеру

Выберите пункт "Другим компьютером" и укажите его DNS имя, или найдите его через кнопку обзор.

Нажимаем кнопку обзор

Когда вы подключитесь к нужному серверу, перейдите в пункт "Службы и приложения - Службы", в списке сервисов найдите службу удаленных рабочих столов (Remote Desktop Services), и перезапускаем ее. После этого ошибка подключения по RDP "Произошла внутренняя ошибка", у вас должна пропасть.

Перезапуск удаленной службы RDP

Так же вы можете использовать оболочку PowerShell запущенную от имени пользователя, у которого есть права на удаленный сервер, где будет перезапускаться служба RDP. Выполните:

Get-Service TermService -ComputerName Имя сервера | Restart-Service –force –verbose

Дополнительные методы решения

Если вам не помог первый метод, перезапускающий службу удаленных рабочих столов, то можно попробовать выполнить правку реестра. Открываете редактор реестра Windows, если у вас физического доступа к серверу нет или он далеко и вам лень до него идти, то можно попробовать подключиться к реестру удаленного сервера.

Для этого в окне "Редактор реестра" пункт меню "Файл - Подключить сетевой реестр".

подключение к удаленному реестру

В открывшемся окне "Выбор компьютера" указываем его DNS-имя или ip-адрес и нажимаем ок. У вас будет установлено подключение к удаленному реестру сервера, что испытывает проблемы.

Произошла внутренняя ошибка-6

Находим ключ CheckMode по пути

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ Session Manager\CProIntegrity\CheckMode

Перед любыми правками реестра, обязательно сделайте выгрузку нужной ветки, чтобы можно было восстановить все в оперативном режиме

Выставляем ему значение о, чтобы отключить у программы КриптоПРО CSP проверку контрольных сумм. Еще один важный момент, если у вас старая версия КриптоПРО, то это так же может быть источником, проблем, недавний пример, это ошибка "Windows installer service could not be accessed". Для этого удаляем правильно КриптоПРО CSP и ставим последнюю доступную версию.

Произошла внутренняя ошибка-7

Еще можно попробовать изменить значение вот такого ключа реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ Session Manager\Memory Management\SessionImageSize

Найдите ключ SessionImageSize и задайте ему значение 0x00000020.

Дополнительные настройки RDP клиента

Например ошибка "An internal error has occurred" у меня встретилась на Windows Server 2022 и там мне помогло в настройках клиента RDP отключение некой опции. Перейдите в дополнительные настройки клиента для удаленного подключения, где н вкладке "Experiens (Взаимодействие)" вам нужно убрать галку с опции "Восстановить подключение при разрыве (Reconnect if the connection is droped)"

Восстановить подключение при разрыве (Reconnect if the connection is droped)

На каких-то сайтах предлагалось именно активировать данный пункт.

Удаление кэша подключений

Еще одним методом решения внутренней ошибки подключения по RDP может выступать поврежденный кэш, который хранится на локальном компьютере пользователя. Для его отображения вам необходимо включить отображение скрытых папок и удалить содержимое папки:

C:\Users\имя пользователя\AppData\Local\Microsoft\Terminal Server Client

внутренняя ошибка RDP

Обновление 07.12.2022

В декабре я вновь столкнулся с внутренней ошибкой, она еще стала проявлять себя вот так:

Не удается подключиться к удаленному компьютеру

Внутренняя ошибка

Произошла внутренняя ошибка. Код ошибки: 0x4. Расширенный код ошибки: 0x0

внутренняя ошибка rdp error 0x4

В логах сервера очень много ошибок:

Она возникает, при каждой попытке войти на рабочий стол, это и есть проблема в моем конкретном случае. Устраните ее, и ошибка с подключекнием уйдет. Перезагрузка не нужна.

Данная ошибка говорит, что на тот сертификат, что использует удаленный сервер, нет прав у самого сервера, подробности выше по ссылке

ошибка 0x8009030D

На клиентской машине откуда я пытался произвести подключение было три события:

ID 1024: Выполняется подключение RDP ClientActiveX к серверу (ter104)

ID 1024: Выполняется подключение RDP ClientActiveX к серверу

ID 1105: Мультитранспортное подключение разорвано.

Мультитранспортное подключение разорвано.

ID 1028: Отключение RDP ClientActiveX (Причина= 2308)

Код 2808 - Ваш сеанс служб удаленных рабочих столов завершен. Соединение с удаленным компьютером было потеряно, возможно, из-за проблем с сетевым подключением. Попробуйте снова подключиться к удаленному компьютеру. Если проблема не исчезнет, ​​обратитесь к сетевому администратору или в службу технической поддержки.

Отключение RDP ClientActiveX (Причина= 2308)

Так как у меня это была виртуальная машина, то я смог легко подключиться через консоль. В случае с ошибкой "Отключение RDP ClientActiveX (Причина= 2308)", я отключил на сервере и клиенте autotuninglevel:

netsh interface tcp set global autotuninglevel=disabled

Не забываем перезагрузиться.

netsh interface tcp set global autotuninglevel=disabled

Это не помогло, далее я выполнил еще несколько рекомендаций. Я установил на сервер валидный SSL сертификат для RDP сессии. В ошибке 0x907, RDP соединение разрывалось, так как клиентская система не доверяла самоподписному сертификату удаленного сервера. Это нужно поправить, ссылку я указал, обязательно проверьте, кто сейчас выступает в роли активного:

Get-WmiObject "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"

Еще я создал параметр реестра MaxOutstandingConnections. В Windows по умолчанию есть ограничения на количество сетевых подключений, так например в серверной версии, это параметр равен 3000, в десктопной 100. Из-за нестабильной сети, они могут быстро забиваться. Одно из решений проблемы с внутренней ошибкой подключения, является увеличение этого значения. В командной строке в режиме администратора выполните:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v MaxOutstandingConnections /t REG_DWORD /d 65536

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server"

-Name MaxOutstandingConnections -Value 10000 -PropertyType DWORD -Force

Создание MaxOutstandingConnections

После этого нужно перезагрузиться.

Временное решение

Пока вы не уберете ошибку "Код ошибки, возвращенный модулем шифрования: ошибка 0x8009030D", описанную выше, вы можете понизить уровень безопасности вот такими манипуляциями, это устранит "An internal error has occurred".

На обычном сервере все это помогло, а вот на ноде RDSH ошибка оставалась. Тут я решил проверить догадку с уровнем безопасности "Configure security settings". На моей ферме был уровень "Согласования (Negotiate)"

Configure security settings

Я пошел на сервер, где были проблемы подключения и решил проверить один параметр локальной политики gpedit.msc.

Конфигурация компьютера - Административные шаблоны- Компоненты Windows - Службы удаленных рабочих столов - Узел сеансов удаленных рабочих столов - Безопасность - Требовать использование специального уровня безопасности для удаленных подключений по протоколу RDP

Тут попробуйте выставить уровень RDP. В результате у меня после этих настроек все заработало. Теперь нужно понять, что изменилось. В настройках RDS фермы указано, что мы используем уровень согласование:

* Согласование: метод согласования принудительно применяет самый безопасный метод, поддерживаемый клиентом. Если поддерживается протокол TLS версии 1.0, то он используется для проверки подлинности сервера узла сеансов удаленных рабочих столов. Если протокол TLS не поддерживается, то для обеспечения безопасности взаимодействий используется собственное шифрование протокола удаленного рабочего стола (RDP), но проверка подлинности сервера узла сеансов удаленных рабочих столов не выполняется. В отличие от SSL-шифрования, использовать собственное шифрование RDP не рекомендуется.

Выбор уровня безопасности

Если и это вам не помогло, то нужно смотреть вариант в сторону обновления или переустановки драйверов на сетевую карту, тут вы определяете модель вашей карты или материнской платы, если в нее все интегрировано и обновляете. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Дополнительные ссылки

  • https://serverfault.com/questions/934026/windows-10-pro-rdp-server-an-internal-error-has-occurred
  • https://social.technet.microsoft.com/Forums/en-US/e1d60cc0-0096-4859-a0e7-eb7f11905737/remote-desktop-v10-error-0x4-from-mac?forum=winRDc
  • https://learn.microsoft.com/en-us/answers/questions/108219/can-not-rdp-to-2012-r2-standard-server-after-septe.html
  • https://serverfault.com/questions/541364/how-to-fix-rdp-on-windows-server-2012
Оцените статью
Настройка серверов windows и linux
Добавить комментарий

  1. android63rus

    Добрый день, а если удаление Крипто про не помогло, приступаю к поиску параметра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\SessionImageSize в реестре, но его нет, создавать?

  2. android63rus

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\SessionImageSize

  3. Иван Семин автор

    Да

  4. Сергей

    Иван, доброго дня! Помогите найти точку ошибки! Win 10 -64 обычный клиент VPN подключается и RDP работает. Установлен клиент VPN Global Protect VPN поднимается, но RDP — Произошла внутренняя ошибка! На соседнем ноуте под Win 7-64 подключается нормально. В чем проблема, как думаете?

  5. Иван Семин автор

    Код ошибки какой, что за vpn сервер к которому идет подключение, есть ли на нем логи, если да, то что там есть?

  6. Николай

    Здравствуйте при подключении к удаленному компьютеру через compmgmt.msc вылазит ошибка компьютером …….. Невозможно управлять. Убедитесь что сетевой путь указан правильно, компьютер доступен в сети, а на конечном компьютере включены нужные правила брандмауэра Windows. Как решить проблему? При подключении к удаленному компьютеру так же пишет внутренняя ошибка, причем у меня несколько удаленных компьютеров, на другие подключаюсь без проблем, а к этому не могу, при подключении настройка удаленного сеанса выдает ошибку внутренняя ошибка. Помогите плиз))))

  7. Иван Семин автор

    Через оснастку services.msc посмотрите включена ли там служба WMI

  8. Connor

    Добрый день, при подключении к RDS опубликованным приложениям открывается приложение (скажем 1С) и ошибка (Невозможно применить тему к рабочему столу. попробуйте выбрать другую тему.) 1с работает исправно.
    Подскажите куда копать, всю голову сломал уже

  9. Иван Семин автор

    Вы публикуете в RDWeb? Я правильно понимаю?

  10. Connor

    «Вы публикуете в RDWeb? Я правильно понимаю?»

    Совершенно верно, во время открытия любого опубликованного приложения (1С или Калькулятор) следом выскакивает эта ошибка отдельным окном
    Все приложения при этом работают нормально

  11. Иван Семин автор

    На брокерах и сервере RDS WEB в логах, есть ошибки и если есть то с какими кодами?

  12. Connor

    Ни там ни там ничего конкретного в логах не нашел
    GPO на группу серверов RDS своя и настроено том только самое необходимое

  13. Andrew

    Server 2012 r2
    Ошибка началась после установки роли IIS. Удалил IIS не помогло.
    Перепробовал все из указанного. Не сработало.
    Куда копать??

  14. Иван Семин автор

    В логах какие ошибки есть?

  15. Александр

    Привет, подскажи, если эта вылетает ошибка только с определенных ПК, с остальными все нормально заходит, в чем может быть дело?

  16. Иван Семин автор

    Я бы проверил версию клиента RDP, посмотрел каких обновлений не хватает

  17. Александр

    К такому же самому серверу, с такой же версией без проблем подключился.

  18. Александр

    До окна авторизации все проходит нормально. Потом ввожу пароль и ошибка.

  19. Иван Семин автор

    В любом случае, нужно искать отличия, в логах как понимаю ошибок каких-то нет? Обновления везде все установлены одинаковые?

  20. Владимир

    Здравствуйте, после замены роутера компьютер перестал подключаться по RDP к удаленному рабочему столу. Если поставить обратно старый все запускается. Подскажите что нужно сделать?

  21. Кирилл

    В моем случае проблема решилась сменой MTU на VPN-интерфейсе на значение 1350 командой:
    netsh interface ipv4 set subinterface «Имя_VPN_интерфейса» mtu=1350 store=persistent. Обращу внимание что у меня проблемы возникли при работе через встроенный клиент VPN Windows поэтому и правил средствами netsh самой windows, другие рещения не спасали. При использовании сторонних клиентов VPN ищите вариант изменения MTU именно на этих клиентах.

  22. PalSan

    Приветствую. Проблема такая, подключение по rdp проходит без проблем, день отработал, закрыл соединение, комп в покое, по прохождении некоторого времени не могу подключиться, выдант ошибку «Удаленному рабочему столу не удалось подключиться к удаленному компьютеру по следующим причинам», если перезагрузить этот компьютер, то ошибка исчезает, до следующего простоя. В чем может быть проблема? Прошу по возможности отаетить на электронку.

  23. Иван Семин автор

    В логах есть, что-то из ошибок и предупреждений?

  24. zaqik

    Спасибо за статью. Одного юзера не подключало к серверу с ошибкой «Повторите попытку», остальные работали нормально. Помогло почистить кэш, подключиться к другому ПК, и только потом уже пустило на «проблемный».

  25. Иван Семин автор

    Добрый день! Рад, что смог вам помочь.

  26. botva

    расскажу, как я отловил эту ошибку и как я ее заброл, может кому будет полезно. заглючил центр обновления, вылетала ошибка связи с серверами микрософта. перелопатил кучу всего и понял, что проблема в сертификатах. поскольку сервер 2022, то, в отличие от 2012, для него не предусмотрена процедура пакетного обновления сертификатов с помощью kb исправления. и я не придумал ничего умнее, чем удалить ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates и на ее место затянуть ветку с рабочего сервера. конечно же, бэкап сделал, но права!!!
    короче, обновление заработало, но получил взамен вот такой трабл с rdp. в итоге подключил удаленный реестр, предоставил права на эту ветку для всех на чтение, удаленно перезапустил службу «Настройка сервера удаленных рабочих столов» (спасибо за хинт удаленного подключения с оснасткой «управление компьютером») и все заработало. теперь буду вычислять какие права предоставить на каждый сертификат, ибо чтение для всех не вариант.

  27. Клим

    Иван здравствуйте! У меня происходит на серверах внутренняя ошибка. Код ошибки 0x4 Расширенный код ошибки 0x0. Подскажите могу ли я связаться с вами где то, чтобы обсудить сотрудничество, по устранению данной ошибки ?

  28. АРТЕМ

    Здравствуйте.Код ошибки 0x4 Расширенный код ошибки 0x0 выскакивает только когда ноутбук подключен к wifi через роутер.Когда раздаю с телефона такой проблемы нетя

  29. Иван Семин автор

    А в просмотре событий есть ошибки, интересен текст из них

  30. Алексей

    При схожих ошибках, рекомендации приведенные в статье, мне не помогли.
    Проблема решилась с помощью импорта ветки реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] с аналогичного исправного сервера. Конечно же на забываем делать бэкап этой ветки перед импортом.