Реестр отдаёт byte[]; TermService принимал cert, но проверка Persisted ложно падала. Добавлены ConvertTo-RdpRepairThumbprintHex и самотесты на форматы DAK-PC. Co-authored-by: Cursor <cursoragent@cursor.com>
3.4 KiB
Troubleshooting — RDP / TLS / сертификаты
События
| ID | Источник | Значение |
|---|---|---|
| 1057 | RemoteConnectionManager / System | Ошибка SSL/TLS RDP; часто «неправильный алгоритм» или «не удалось создать самозаверяющий сертификат» |
| 36870 | Schannel | SEC_E_ALGORITHM_MISMATCH (0x8009030d) — нет общего алгоритма с клиентом или нет валидного cert |
| 258 | Operational | Прослушиватель RDP-Tcp запущен (норма) |
| 261 | Operational | Входящее соединение на listener (норма) |
Hash BEFORE есть, Hash AFTER пустой
TermService отверг сертификат при старте. Возможные причины:
- Просроченный cert (лечится заменой).
- Нет доступа к приватному ключу → фаза ACL в
Fix-RdpTls.ps1. - CNG vs CSP — скрипт пробует
RSA\MachineKeys. - Повреждение Schannel → repair install.
Важно: в реестре SSLCertificateSHA1Hash часто хранится как массив байт, а не hex-строка thumbprint. Скрипт нормализует оба формата перед сравнением. Если BEFORE и AFTER совпадают (в hex), привязка успешна — включайте SecurityLayer=2 (-RestoreTls).
Просмотр store Remote Desktop
Get-ChildItem Cert:\LocalMachine\Remote Desktop на части систем не работает (пробел в имени store). Используйте:
. .\lib\RdpRepair.Common.ps1
Get-RdpRepairRemoteDesktopCertificates | Format-List
или .\Fix-RdpTls.ps1 -DiagnoseOnly.
Нативный cert не создаётся после reboot
Store Remote Desktop пустой после цикла «выкл RDP → очистка → вкл RDP → reboot»:
- Запустите
Fix-RdpTls.ps1фазы 4–6 локально. - Если не помогло — repair install.
GPO Terminal Services
Путь: HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
На DAK-PC и рабочих ПК может быть:
LicenseServers= 192.168.160.150LicensingMode= 4
RDP при этом работал на других ПК — не единственная причина отказа DAK-PC. Убирать из GPO для Win10 Pro всё равно желательно (задача админа AD).
Локальное удаление откатывается gpupdate /force.
Клиент «внутренняя ошибка»
- Сброс кэша cert на клиенте (см. RETURN-TO-TLS.md).
- Проверка 1057/36870 на сервере в момент подключения.
- Сравнение
SecurityLayerс рабочим ПК.
WinRM vs RDP
WinRM может работать при сломанном RDP TLS — это нормально. Починка RDP не требует локальной консоли, но локальный запуск скриптов надёжнее для cert/ACL.
Логи скриптов
%ProgramData%\RdpRepair\report-*.txt— диагностика%ProgramData%\RdpRepair\repair-*.log— ход ремонта