An internal error has occurred как исправить
Добрый день! Уважаемые читатели и гости, IT блога Pyatilistnik.org. В прошлый раз мы с вами поговорили, про отложенный запуск служб в Windows, сегодня я хочу вам показать еще один не приятный момент в работе терминальных служб удаленного рабочего стола, а именно ошибка подключения «Произошла внутренняя ошибка«, после чего подключение разрывается. Такое я встречал уже в Windows Server 2012 R2 и 2016. Давайте разбираться в чем дело.
Описание проблемы
Есть сервер с операционной системой Windows Server 2012 R2, сотрудник пытается к нему подключиться, через классическую утилиту «Подключение к удаленному рабочему столу», в момент авторизации, выскакивает окно с ошибкой «Произошла внутренняя ошибка».
В английском варианте ошибка звучит вот так:
После этого у вас разрывается соединение. Когда мы видели моргающий экран по RDP, там хотя бы вы попадали на сервер и могли открыть диспетчер устройств, тут сразу все обрубается на корню. Давайте смотреть, что можно сделать.
🆘 Что есть в логах?
Если посмотреть журналы событий на удаленном сервере, куда вы пытаетесь подключиться, то там порядок событий будет такой:
- 1️⃣ Первым будет идти событие ID 131 «The server accepted a new TCP connection from client IP-адрес:60050.». Тут вы увидите IP-адрес с которого идет попытка входа.
- 2️⃣ Далее событие ID 65 «Connection RDP-Tcp#11 created «.
- 3️⃣ Затем событие 141 «PerfCounter session started with instance ID 11». Тут сессии будет назначен ID.
- 4️⃣ За ним будет идти ID 142 «TCP socket READ operation failed, error 1236».
- 5️⃣ Потом вы увидите ID 72 «Interface method called: OnDisconnected»
- 6️⃣ И же после этого вам покажут, что сервер разорвал подключение: «ID 102 The server has terminated main RDP connection with the client.»
- 7️⃣ В событии ID 145 так же появляются подробности «During this connection, server has not sent data or graphics update for 0 seconds (Idle1: 0, Idle2: 0).».
- 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]»
Исправляем ошибку «Произошла внутренняя ошибка»
Так как по RDP подключиться не получается, то первым делом нужно проверить отвечает ли порт, по умолчанию это 3389. О том, как проверить порт на удаленном сервере я вам описывал, там все сводилось к выполнению команды Telnet, ознакомьтесь. Если порт отвечает, то делаем следующее.
Нужно удаленно перезапустить службу на этом сервере, чтобы сам сервер не перезагружать, так как в этот момент, он может выполнять важные задачи, можно использовать утилиту «Управление компьютером». Открыть ее можно через команду вызова оснастки, вызываем окно «Выполнить», через одновременное нажатие клавиш WIN и R, в котором пишем:
В открывшейся оснастке, щелкните в самом верху по пункту «Управление компьютером» правым кликом мыши, и выберите пункт «Подключиться к удаленному компьютеру».
Выберите пункт «Другим компьютером» и укажите его DNS имя, или найдите его через кнопку обзор.
Когда вы подключитесь к нужному серверу, перейдите в пункт «Службы и приложения — Службы», в списке сервисов найдите службу удаленных рабочих столов (Remote Desktop Services), и перезапускаем ее. После этого ошибка подключения по RDP «Произошла внутренняя ошибка», у вас должна пропасть.
Так же вы можете использовать оболочку PowerShell запущенную от имени пользователя, у которого есть права на удаленный сервер, где будет перезапускаться служба RDP. Выполните:
Дополнительные методы решения
Если вам не помог первый метод, перезапускающий службу удаленных рабочих столов, то можно попробовать выполнить правку реестра. Открываете редактор реестра Windows, если у вас физического доступа к серверу нет или он далеко и вам лень до него идти, то можно попробовать подключиться к реестру удаленного сервера.
Для этого в окне «Редактор реестра» пункт меню «Файл — Подключить сетевой реестр».
В открывшемся окне «Выбор компьютера» указываем его DNS-имя или ip-адрес и нажимаем ок. У вас будет установлено подключение к удаленному реестру сервера, что испытывает проблемы.
Находим ключ CheckMode по пути
Выставляем ему значение о, чтобы отключить у программы КриптоПРО CSP проверку контрольных сумм. Еще один важный момент, если у вас старая версия КриптоПРО, то это так же может быть источником, проблем, недавний пример, это ошибка «Windows installer service could not be accessed». Для этого удаляем правильно КриптоПРО CSP и ставим последнюю доступную версию.
Еще можно попробовать изменить значение вот такого ключа реестра:
Найдите ключ SessionImageSize и задайте ему значение 0x00000020.
Дополнительные настройки RDP клиента
Например ошибка «An internal error has occurred» у меня встретилась на Windows Server 2022 и там мне помогло в настройках клиента RDP отключение некой опции. Перейдите в дополнительные настройки клиента для удаленного подключения, где н вкладке «Experiens (Взаимодействие)» вам нужно убрать галку с опции «Восстановить подключение при разрыве (Reconnect if the connection is droped)«
На каких-то сайтах предлагалось именно активировать данный пункт.
Удаление кэша подключений
Еще одним методом решения внутренней ошибки подключения по RDP может выступать поврежденный кэш, который хранится на локальном компьютере пользователя. Для его отображения вам необходимо включить отображение скрытых папок и удалить содержимое папки:
Обновление 07.12.2022
В декабре я вновь столкнулся с внутренней ошибкой, она еще стала проявлять себя вот так:
В логах сервера очень много ошибок:
Она возникает, при каждой попытке войти на рабочий стол, это и есть проблема в моем конкретном случае. Устраните ее, и ошибка с подключекнием уйдет . Перезагрузка не нужна.
На клиентской машине откуда я пытался произвести подключение было три события:
Код 2808 — Ваш сеанс служб удаленных рабочих столов завершен. Соединение с удаленным компьютером было потеряно, возможно, из-за проблем с сетевым подключением. Попробуйте снова подключиться к удаленному компьютеру. Если проблема не исчезнет, обратитесь к сетевому администратору или в службу технической поддержки.
Так как у меня это была виртуальная машина, то я смог легко подключиться через консоль. В случае с ошибкой «Отключение RDP ClientActiveX (Причина= 2308)«, я отключил на сервере и клиенте autotuninglevel:
Не забываем перезагрузиться.
Это не помогло, далее я выполнил еще несколько рекомендаций. Я установил на сервер валидный SSL сертификат для RDP сессии. В ошибке 0x907, RDP соединение разрывалось, так как клиентская система не доверяла самоподписному сертификату удаленного сервера. Это нужно поправить, ссылку я указал, обязательно проверьте, кто сейчас выступает в роли активного:
Еще я создал параметр реестра MaxOutstandingConnections. В Windows по умолчанию есть ограничения на количество сетевых подключений, так например в серверной версии, это параметр равен 3000, в десктопной 100. Из-за нестабильной сети, они могут быстро забиваться. Одно из решений проблемы с внутренней ошибкой подключения, является увеличение этого значения. В командной строке в режиме администратора выполните:
New-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server»
-Name MaxOutstandingConnections -Value 10000 -PropertyType DWORD -Force
После этого нужно перезагрузиться.
Временное решение
Пока вы не уберете ошибку «Код ошибки, возвращенный модулем шифрования: ошибка 0x8009030D», описанную выше, вы можете понизить уровень безопасности вот такими манипуляциями, это устранит «An internal error has occurred».
На обычном сервере все это помогло, а вот на ноде RDSH ошибка оставалась. Тут я решил проверить догадку с уровнем безопасности «Configure security settings». На моей ферме был уровень «Согласования (Negotiate)«
Я пошел на сервер, где были проблемы подключения и решил проверить один параметр локальной политики gpedit.msc.
Тут попробуйте выставить уровень RDP. В результате у меня после этих настроек все заработало. Теперь нужно понять, что изменилось. В настройках RDS фермы указано, что мы используем уровень согласование:
An internal error has occurred как исправить
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами устранили на сервере ошибку «запуск этого устройства невозможен. (код 10)», из-за которой у нас некорректно работало устройство. Двигаемся дальше и сегодня вновь поговорим про сторонние утилиты которые очень часто используем на RDS фермах, а именно разберем ошибку при выборе PDF файла «Произошла внутренняя ошибка в Acrobat Reader DC 11«.
Описание ошибки An internal error occurred
И так у меня есть новенькая Терминальная ферма Remote Desktop Services High Availability на базе Windows Server 2019. Я накатил на нее весь набор программ и успешно перевел на нее пользователей организации, путем миграции перемещаемых профилей. В какой-то момент стали поступать жалобы, что при выборе в проводнике WIndows любого файла в формате PDF появляется вот такая ошибка:
В английском варианте она звучит вот так:
После закрытия данного окна с ошибкой, PDF файл корректно открывается. На серверах установлена последняя версия Acrobat Reader DC 2020.013.20064.
Методы устранения ошибки «An internal error occurred»
- Отключение повышенного уровня защиты через Acrobat Reader DC
- Создание ключа реестра, который так же отключает повышенный уровень защиты
- Переустановка Acrobat Reader DC
- Проверка прав доступа на
Переустановка Acrobat Reader DC
Первое с чего бы я начал, это переустановка самой программы. Это может устранить большую часть проблем, которые могут вылезти если дистрибутив поврежден. Для этого откройте окно выполнить и введите:
В результате чего у вас будет открыта оснастка «Программы и компоненты«. Найдите в списке приложений Acrobat Reader DC и произведите его удаление.
После чего перезагрузите компьютер или сервер. Далее установите приложение с нуля.
Как отключить повышенный уровень защиты
итак, чтобы отключить защищенный режим при запуске вам нужно открыть Acrobat Reader DC и нажать сочетание клавиш CTRL+K или же открыть меню «Редактирование — Установки (Edit — Preferences)«
Далее открываем раздел «Защита (повышенный уровень) Security (Enhanced)«, где вам необходимо снять две галки:
-
- Включить защищенный режим при запуске (Enable Protected View Mode at Startu);
- Включить повышенный уровень защиты (Enable increased protection level)
Обратите внимание, что данная настройка будет активна только после перезагрузки вашего Windows. В результате чего должно пропасть окно «Произошла внутренняя ошибка (An internal error occurred)» при запуске Acrobat Reader DC.
Как отключить повышенный уровень защиты через реестр
Если хотите деактивировать защищенный режим через реестр, а у этого огромный плюс, который заключается в том, что если у вас терминальная ферма как у меня состоит из 50 RDSH хостов, то ходить по каждому это очень долго, можно конечно сделать скрипт на PowerShell и создать ключ реестра удаленно, но плохо это тем, что если появится новый хост или старый будет заменен ключ автоматически не появится, а хочется полную автоматику и использование всех инструментов Active Directory. Данный ключ я вам предлагаю при желании распространять через групповую политику, о том как это делать я писал. Ниже я лишь приведу саму ветку и значение ключа.
Там нужно создать ключ bProtectedMode RED_DWORD со значением «0». Не забываем рестартнуть вашу систему.
Проверка прав доступа
Еще одним моментом, который может влияет на наличие ошибки «An internal error occurred», это слетевшие права в профиле. Путь к профилю:
Обратите внимание, что данная папка скрыта и нужно включить ее отображение в Windows. Далее откройте свойства и перейдите на вкладку «Безопасность — Дополнительно». Посмотрите кто является владельцем папки и есть ли у вас вообще полные права на нее. В моем примере, папка Adobe принадлежит администраторам сервера, это нормально, но у моей основной учетной записи полные права. Если у вас не так, то измените это.
Дополнительно
Если у вас все еще появляется окно «Произошла внутренняя ошибка (An internal error occurred)», то попробуйте запускать Acrobat Reader DC в режиме администратора. Для этого откройте его свойства. Далее выберите вкладку «Совместимость» и поставьте галку «Выполнять эту программу от имени администратора».