Files
fix-DAK-PC/docs/TROUBLESHOOTING.md
T
PTah 27c1f49be1 fix: сравнение SSLCertificateSHA1Hash — байты реестра vs hex thumbprint
Реестр отдаёт byte[]; TermService принимал cert, но проверка Persisted ложно падала.
Добавлены ConvertTo-RdpRepairThumbprintHex и самотесты на форматы DAK-PC.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 21:12:37 +10:00

68 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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). Используйте:
```powershell
. .\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.150
- `LicensingMode` = 4
RDP при этом работал на других ПК — **не единственная причина** отказа DAK-PC. Убирать из GPO для Win10 Pro всё равно желательно (задача админа AD).
Локальное удаление **откатывается** `gpupdate /force`.
## Клиент «внутренняя ошибка»
1. Сброс кэша cert на клиенте (см. RETURN-TO-TLS.md).
2. Проверка 1057/36870 на **сервере** в момент подключения.
3. Сравнение `SecurityLayer` с рабочим ПК.
## WinRM vs RDP
WinRM может работать при сломанном RDP TLS — это нормально. Починка RDP не требует локальной консоли, но **локальный** запуск скриптов надёжнее для cert/ACL.
## Логи скриптов
- `%ProgramData%\RdpRepair\report-*.txt` — диагностика
- `%ProgramData%\RdpRepair\repair-*.log` — ход ремонта