Files
fix-DAK-PC/README.md
T
PTah 14348a0181 feat: локальные скрипты починки RDP/TLS для Windows (fix-DAK-PC)
Fix-RdpTls.ps1 с фазами диагностики, cert, ACL, привязкой; самотесты; docs repair install и возврат TLS.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 19:05:29 +10:00

87 lines
3.8 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.
# fix-DAK-PC — локальная починка RDP/TLS на Windows 10/11
Набор скриптов для **локального** (с консоли проблемного ПК) восстановления RDP, когда клиент показывает «внутренняя ошибка», в журнале **1057** / **Schannel 36870**, TermService сбрасывает `SSLCertificateSHA1Hash`.
Сценарий проверен на **DAK-PC** (Win10 Pro 19045): корень — сломанная привязка TLS-сертификата RDP; обход `SecurityLayer=0`; полное лечение — repair install + возврат TLS.
## Быстрый старт (за компом DAK-PC)
1. Скопируйте репозиторий или папку `scripts` на ПК (флешка, `git clone`, общая шара).
2. **PowerShell от имени администратора**.
3. Разрешите выполнение (один раз в этой сессии):
```powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
cd C:\path\to\fix-DAK-PC\scripts
```
4. **Самотесты** (обязательно):
```powershell
.\Invoke-RdpRepairSelfTest.ps1
```
5. **Полный интерактивный ремонт**:
```powershell
.\Fix-RdpTls.ps1
```
6. Если TLS не удаётся починить — **экстренный доступ** (без TLS):
```powershell
.\Fix-RdpTls.ps1 -EmergencyRdpOnly
```
7. После **repair install** Windows и успешной привязки cert — **возврат TLS**:
```powershell
.\Fix-RdpTls.ps1 -RestoreTls
```
## Структура
| Файл | Назначение |
|------|------------|
| `scripts/Fix-RdpTls.ps1` | Главный сценарий: диагностика → очистка → cert → привязка → проверка |
| `scripts/Invoke-RdpRepairSelfTest.ps1` | Самотесты функций и синтаксиса |
| `scripts/lib/RdpRepair.Common.ps1` | Общие функции |
| `docs/REPAIR-INSTALL.md` | Repair install Windows (на месте) |
| `docs/RETURN-TO-TLS.md` | Возврат SecurityLayer=2 после починки cert |
| `docs/TROUBLESHOOTING.md` | События, типичные ошибки, GPO |
| `docs/LOCAL-RUNBOOK.md` | Пошаговый сценарий за консолью DAK-PC |
## Фазы `Fix-RdpTls.ps1`
| Фаза | Действие |
|------|----------|
| 0 | Самопроверка: админ, ОС, службы, модули |
| 1 | Диагностика → отчёт `%ProgramData%\RdpRepair\report-*.txt` |
| 2 | Очистка просроченных/битых cert в `Remote Desktop` и `My` |
| 3 | Нативный сброс (выкл/вкл RDP, очистка store) + опциональный reboot |
| 4 | Создание cert (цепочка провайдеров: Enhanced RSA → default) |
| 5 | ACL на приватный ключ (`NETWORK SERVICE`, `SYSTEM`) |
| 6 | Привязка (`reg` + WMI), проверка **Hash BEFORE/AFTER** |
| 7 | `-EmergencyRdpOnly`: SecurityLayer=0 |
| 8 | `-RestoreTls`: SecurityLayer=2 при успешной привязке |
## Критерий успеха TLS
После перезапуска `TermService`:
- `SSLCertificateSHA1Hash` в реестре **совпадает** с thumbprint cert в store.
- События **1057** / **36870** не появляются при тестовом подключении RDP.
- `SecurityLayer` = **2** (как на рабочих ПК в домене).
Если **Hash AFTER** пустой при любом cert — см. [docs/REPAIR-INSTALL.md](docs/REPAIR-INSTALL.md).
## Клонирование
```bash
git clone https://git.kalinamall.ru/PapaTramp/fix-DAK-PC.git
```
## Лицензия
Внутреннее использование (PapaTramp / kalinamall).