Files
fix-DAK-PC/docs/DAK-PC-RESOLVED.md
PTah d1e594f057 docs: проверенный сценарий DAK-PC (фазы 3-5 + RestoreTls)
Добавлен DAK-PC-RESOLVED.md, README и runbook отражают фактическое решение
без repair install; перечислены внешние задачи планировщика для отключения.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 16:19:58 +10:00

3.9 KiB
Raw Permalink Blame History

DAK-PC — проверенное решение (2026-06-12)

Фактический исход: RDP с TLS восстановлен без repair install Windows.

Симптомы

  • Клиент RDP: «внутренняя ошибка»
  • Журнал System: 1057, Schannel 36870
  • TermService сбрасывал SSLCertificateSHA1Hash
  • Временно работал обход SecurityLayer=0

Что не из этого репозитория (можно отключить на ПК)

Создано вручную / другими скриптами во время отладки — не запускать после успешного ремонта:

Артефакт Назначение (предположительно)
Задачи RdpBindFix, RdpNativeReset, FixRdpCertSystemOnce, RdpLegacyCert Автопочинка cert/bind
CryptoRepair.ps1 ACL / crypto / cert (дублирует часть Fix-RdpTls)
RDP-Login-Monitor (+ Watchdog) Мониторинг входов (по желанию)

Последовательность, которая решила проблему

1. Самотесты (после исправления багов в скриптах)

cd C:\Soft\fix-DAK-PC\scripts
.\Invoke-RdpRepairSelfTest.ps1 -IncludeAdminTests

Ожидание: FAIL=0.

2. Полный ремонт — фазы 3–5

.\Fix-RdpTls.ps1

На DAK-PC:

  • Фаза 2 (нативный сброс): cert появился, но привязка не прижилась → reboot не помог при повторе.
  • Ответ n на reboot → фаза 35:
    • создан cert 144D8D18C5452DBB8D3DE9FE6C61E69E2497E1A9
    • ACL на MachineKeys
    • cert в store Remote Desktop
    • запись SSLCertificateSHA1Hash (reg + WMI)
    • Hash BEFORE = Hash AFTER (TermService принял cert)

Скрипт тогда ошибочно показал ERROR из‑за сравнения байтов реестра с hex thumbprint (исправлено в RdpRepair 1.0.3).

3. Возврат TLS

git pull   # версия RdpRepair 1.0.3+
.\Fix-RdpTls.ps1 -RestoreTls

Результат в логе:

  • Привязка cert принята TermService
  • SecurityLayer=2, TermService перезапущен

4. На клиенте RDP (не на DAK-PC)

Remove-Item "HKCU:\Software\Microsoft\Terminal Server Client\Servers\DAK-PC" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "HKCU:\Software\Microsoft\Terminal Server Client\Servers\DAK-PC.b26.kalinamall.ru" -Recurse -Force -ErrorAction SilentlyContinue

Что не понадобилось на DAK-PC

  • Repair install Windows (docs/REPAIR-INSTALL.md) — запасной план при пустом Hash AFTER
  • Повторные reboot в цикле
  • Задачи планировщика RdpBind* / CryptoRepair.ps1

Критерии «готово» (выполнено)

  • Cert в Remote Desktop, NotAfter в будущем
  • SSLCertificateSHA1Hash = thumbprint после перезапуска TermService
  • SecurityLayer = 2
  • RDP с клиента работает

Минимальный набор файлов репозитория для повтора

Файл Зачем
scripts/Fix-RdpTls.ps1 Единая точка входа
scripts/lib/RdpRepair.Common.ps1 Логика cert/ACL/bind
scripts/Invoke-RdpRepairSelfTest.ps1 Проверка перед ремонтом
docs/DAK-PC-RESOLVED.md Этот сценарий
docs/TROUBLESHOOTING.md События 1057/36870
docs/REPAIR-INSTALL.md Только если Hash AFTER реально пустой