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:
@@ -0,0 +1,112 @@
|
||||
# Пошаговый runbook — за компом DAK-PC (локально)
|
||||
|
||||
Выполняйте **на проблемном ПК** в PowerShell **от имени администратора**.
|
||||
|
||||
## 0. Подготовка
|
||||
|
||||
```powershell
|
||||
# Скопируйте репозиторий, например:
|
||||
# git clone https://git.kalinamall.ru/PapaTramp/fix-DAK-PC.git C:\Tools\fix-DAK-PC
|
||||
|
||||
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
|
||||
cd C:\Tools\fix-DAK-PC\scripts
|
||||
```
|
||||
|
||||
## 1. Самотесты (обязательно)
|
||||
|
||||
```powershell
|
||||
.\Invoke-RdpRepairSelfTest.ps1 -IncludeAdminTests
|
||||
```
|
||||
|
||||
Ожидание: `FAIL=0`. При ошибках — не продолжайте.
|
||||
|
||||
## 2. Диагностика
|
||||
|
||||
```powershell
|
||||
.\Fix-RdpTls.ps1 -DiagnoseOnly
|
||||
```
|
||||
|
||||
Отчёт: `%ProgramData%\RdpRepair\report-*.txt`
|
||||
Лог: `%ProgramData%\RdpRepair\repair-*.log`
|
||||
|
||||
Сохраните отчёт на флешку / в тикет.
|
||||
|
||||
## 3. Полный автоматический ремонт TLS
|
||||
|
||||
```powershell
|
||||
.\Fix-RdpTls.ps1
|
||||
```
|
||||
|
||||
Скрипт спросит подтверждение на каждой фазе:
|
||||
|
||||
1. Очистка cert + нативный сброс
|
||||
2. Опционально **reboot** (если Windows должен сам создать cert)
|
||||
3. Создание локального cert + ACL + привязка
|
||||
4. Проверка **Hash AFTER**
|
||||
5. Предложение `SecurityLayer=2`
|
||||
|
||||
### Если после reboot (шаг 3.2)
|
||||
|
||||
Снова с консоли:
|
||||
|
||||
```powershell
|
||||
cd C:\Tools\fix-DAK-PC\scripts
|
||||
.\Invoke-RdpRepairSelfTest.ps1 -IncludeAdminTests
|
||||
.\Fix-RdpTls.ps1
|
||||
```
|
||||
|
||||
## 4. Если Hash AFTER пустой (TermService отклоняет cert)
|
||||
|
||||
### 4a. Срочный RDP (без TLS)
|
||||
|
||||
```powershell
|
||||
.\Fix-RdpTls.ps1 -EmergencyRdpOnly
|
||||
```
|
||||
|
||||
Проверьте RDP с другого ПК. На клиенте:
|
||||
|
||||
```powershell
|
||||
Remove-Item "HKCU:\Software\Microsoft\Terminal Server Client\Servers\DAK-PC" -Recurse -Force -ErrorAction SilentlyContinue
|
||||
```
|
||||
|
||||
### 4b. Repair install Windows
|
||||
|
||||
См. [REPAIR-INSTALL.md](REPAIR-INSTALL.md) — `setup.exe` → обновление с сохранением файлов.
|
||||
|
||||
После repair:
|
||||
|
||||
```powershell
|
||||
.\Fix-RdpTls.ps1
|
||||
```
|
||||
|
||||
## 5. Возврат нормального TLS
|
||||
|
||||
**Только** когда `Hash AFTER` совпадает с thumbprint и RDP с TLS работает:
|
||||
|
||||
```powershell
|
||||
.\Fix-RdpTls.ps1 -RestoreTls
|
||||
```
|
||||
|
||||
Подробно: [RETURN-TO-TLS.md](RETURN-TO-TLS.md).
|
||||
|
||||
## 6. DISM / SFC (до или после repair)
|
||||
|
||||
```powershell
|
||||
DISM /Online /Cleanup-Image /RestoreHealth
|
||||
sfc /scannow
|
||||
```
|
||||
|
||||
Перезагрузка → снова `.\Fix-RdpTls.ps1`.
|
||||
|
||||
## Критерии «готово»
|
||||
|
||||
- [ ] `Cert store` — cert с `NotAfter` в будущем
|
||||
- [ ] `SSLCertificateSHA1Hash` после старта TermService **не пустой**
|
||||
- [ ] `SecurityLayer` = **2**
|
||||
- [ ] События 1057 / 36870 не появляются при подключении RDP
|
||||
- [ ] RDP с клиента без `-EmergencyRdpOnly`
|
||||
|
||||
## Текущее состояние DAK-PC (на момент создания репо)
|
||||
|
||||
- Работал обход: `SecurityLayer=0`
|
||||
- Перед `RestoreTls` обязательно починить привязку cert или сделать repair install
|
||||
Reference in New Issue
Block a user