
Вчера я столкнулся с такой ошибкой при подключению к серверу windows 2022 после обновления. В статье я опишу шаги по восстановлению доступа к серверу по RDP.
Эта ошибка «Произошла внутренняя ошибка» при попытке подключения к удаленному рабочему столу (RDP) является довольно распространенной и обычно указывает на проблемы с безопасностью, состоянием сеанса или сетевыми настройками.
План А: Обходной маневр (Смена уровня безопасности)
Мы можем принудительно запретить RDP использовать проблемные TLS-сертификаты и заставить его работать на устаревшем, но надежном «родном» шифровании RDP. Это почти всегда мгновенно решает проблему доступа.
- Нажмите
Win + R, введитеgpedit.mscи нажмитеEnter(откроется Редактор локальной групповой политики). - Перейдите по пути:
Конфигурация компьютера->Административные шаблоны->Компоненты Windows->Службы удаленных рабочих столов->Узел сеансов удаленных рабочих столов->Безопасность. - Найдите политику «Требовать использования специального уровня безопасности для удаленных подключений по методу RDP».
- Откройте её, выберите Включено.
- В параметрах ниже, в выпадающем списке «Уровень безопасности» выберите RDP (вместо SSL или Согласование).
- Нажмите ОК.
- Откройте командную строку от имени администратора и введите
gpupdate /force, затем перезапустите службу Службы удаленных рабочих столов (или перезагрузите ПК).
Попробуйте подключиться. Если пустит — проблема решена на рабочем уровне.
Если после этого стало подключаться, то тогда переходим к шагу по исправлению проблемы.
Необходимо вернуть настройки в первоначальное состояние до наших изменений.
ШАГ 1 Зачистка реестра
откройте regedit.
- Перейдите в
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM - Удалите все параметры со словом Certificate (
Certificate,X509 Certificateи т.д.), оставив только(По умолчанию).
Далее нам необходимо выполнить ряд команд.
Строка 1 (Создаем сертификат):
$cert = New-SelfSignedCertificate -DnsName $env:COMPUTERNAME -CertStoreLocation "cert:\LocalMachine\My"
Строка 2 (Находим настройки RDP):
$wmi = Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"
Строка 3 (Привязываем сертификат к RDP):
Set-WmiInstance -Path $wmi.__path -argument @{SSLCertificateSHA1Hash="$($cert.Thumbprint)"}
Строка 4 (Проверяем отпечаток):
Write-Host "Сертификат создан и привязан. Отпечаток: $($cert.Thumbprint)" -ForegroundColor Green
Если третья команда выполнится без красного текста, значит сертификат успешно привязан.
Шаг 2: Выдача прав NETWORK SERVICE на новый сертификат
Хотя мы создали сертификат, службе RDP все еще нужны права на его чтение. Если этого не сделать, ошибка повторится.
- Нажмите
Win + R, введитеcertlm.mscи нажмитеEnter. - Перейдите в Личное (Personal) -> Сертификаты (Certificates).
- Найдите только что созданный сертификат (он будет называться именем вашего компьютера, дата выдачи — сегодняшний день).
- Нажмите на него правой кнопкой мыши -> Все задачи -> Управление закрытыми ключами (Manage Private Keys).
- Нажмите Добавить, введите
NETWORK SERVICE(илиСЕТЕВАЯ СЛУЖБА, если ОС русская), нажмите «Проверить имена» и ОК. - Выделите добавленного пользователя и убедитесь, что внизу стоит галочка Чтение (Read). Полный доступ давать не обязательно.
- Нажмите ОК.
Шаг 3: Финальный перезапуск
В том же окне PowerShell (от администратора) выполните:
DOS
net stop TermService /y
net start TermService
После всех проделанных шагов, проблемы с подключением должны пропасть.
