feat: локальные скрипты починки RDP/TLS для Windows (fix-DAK-PC)

Fix-RdpTls.ps1 с фазами диагностики, cert, ACL, привязкой; самотесты; docs repair install и возврат TLS.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
PTah
2026-06-12 19:05:29 +10:00
commit 14348a0181
9 changed files with 1055 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
# Возврат к нормальному TLS (SecurityLayer=2)
## Контекст
На DAK-PC временно работал RDP с **SecurityLayer=0** (шифрование RDP без TLS). На рабочих ПК домена (FVG-PC, NEW-ADMIN-PC) используется **SecurityLayer=2** (SSL/TLS) при пустом `SSLCertificateSHA1Hash` и нативном cert в store `Remote Desktop`.
**Не включайте SecurityLayer=2**, пока не выполнены критерии ниже.
## Критерии готовности
| Проверка | Ожидание |
|----------|----------|
| Cert в `LocalMachine\Remote Desktop` | есть, `NotAfter` > сегодня |
| `SSLCertificateSHA1Hash` после старта TermService | **не пустой**, совпадает с thumbprint |
| События 1057 за 10 мин после теста RDP | **0** |
| Schannel 36870 | **0** |
Проверка одной командой (локально на DAK-PC):
```powershell
cd C:\path\to\fix-DAK-PC\scripts
.\Fix-RdpTls.ps1 -DiagnoseOnly
```
## Возврат TLS
```powershell
.\Fix-RdpTls.ps1 -RestoreTls
```
Скрипт:
1. Убедится, что cert и hash на месте (или попытается привязать).
2. Установит `SecurityLayer = 2`.
3. Перезапустит `TermService`.
4. Проверит hash **после** старта.
5. Выведет инструкцию сброса кэша RDP на клиенте.
## На клиенте RDP (ваш ПК)
```powershell
Remove-Item "HKCU:\Software\Microsoft\Terminal Server Client\Servers\DAK-PC" -Recurse -Force -ErrorAction SilentlyContinue
# или имя FQDN, если подключаетесь по FQDN
Remove-Item "HKCU:\Software\Microsoft\Terminal Server Client\Servers\DAK-PC.b26.kalinamall.ru" -Recurse -Force -ErrorAction SilentlyContinue
```
Подключитесь снова по RDP.
## Если после RestoreTls RDP снова «внутренняя ошибка»
1. Срочный доступ:
```powershell
.\Fix-RdpTls.ps1 -EmergencyRdpOnly
```
2. Повторите **repair install** ([REPAIR-INSTALL.md](REPAIR-INSTALL.md)).
3. Не оставляйте SecurityLayer=2 без рабочего cert.
## GPO
`LicenseServers` / `LicensingMode` в домене **не были** причиной на DAK-PC (одинаковы на всех ПК).
Если админ меняет политики — после `gpupdate /force` снова запустите `-DiagnoseOnly`.
## Значения SecurityLayer (справка)
| Значение | Режим |
|----------|--------|
| 0 | Только RDP Security Layer (legacy) |
| 1 | Negotiate |
| 2 | SSL (TLS) — **норма для вашей сети** |