Короткий ответ

Если ICMP/WinRM/консоль живы, это не «сервер лёг». Проверьте: служба TermService, fDenyTSConnections, профиль firewall и порт 3389, NLA vs старый клиент, затем лицензии RDS (не путать с обычным административным RDP). С клиента: Test-NetConnection WS-042.contoso.example -Port 3389.

Не отключайте NLA и firewall профиля Domain как постоянный фикс. Лицензионные обходы не рассматриваются — см. RD Licensing.

Симптомы и как отличить

  • Сервер отвечает ping/SMB, mstsc: не удаётся подключить.
  • CredSSP encryption oracle / NLA.
  • «Нет серверов лицензирования» — уже роль RDS, не двухместный admin RDP.
  • После патча — отдельная ветка KB.
ЕстьНетВетка
Консоль гипервизора, нет TCP 3389фильтр/службаэта статья
3389 есть, логон домена нетвход
Внутренний ID, graceлицензии RDS
TermService Stoppedслужба

Возможные причины

  1. RDP отключён политикой (fDenyTSConnections = 1).
  2. Firewall (профиль Public после смены сети) режет 3389.
  3. NLA включён, DC недоступен для проверки, кэш логона пуст.
  4. Службы TermService, UmRdpService не Running.
  5. Слушатель на другом порту, чем клиент.
  6. Сетевой путь: NAT, промежуточный ACL, RD Gateway.
  7. Исчерпаны 2 сеанса admin RDP (не лицензия RDS, а shadow/session).
  8. Лицензирование сеансового хоста.

Диагностика

С админской станции:

Test-NetConnection WS-042.contoso.example -Port 3389
Resolve-DnsName WS-042.contoso.example

На сервере (консоль iLO/гипервизор, если RDP уже мёртв):

Get-Service TermService, UmRdpService, SessionEnv | Format-Table Name, Status, StartType
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' | Select-Object fDenyTSConnections
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' |
  Select-Object PortNumber, UserAuthentication, SecurityLayer
Get-NetFirewallProfile | Format-Table Name, Enabled
Get-NetFirewallRule -DisplayGroup 'Remote Desktop' | Format-Table DisplayName, Enabled, Direction, Action, Profile

NLA: UserAuthentication = 1. Если DC для этого сервера недоступен, NLA-сеанс может не поднять учётку без кэша.

nltest /dsgetdc:contoso.example /force
Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7011,7000 } -MaxEvents 15

Сеансы (если WinRM жив):

quser

Решение

Сценарий A. RDP выключен

Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -Value 0
Enable-NetFirewallRule -DisplayGroup 'Remote Desktop'
Get-Service TermService | Start-Service

Предпочтительно GPO «Allow users to connect remotely», не разовая галка, если политику всё равно перезатрёт.

Сценарий B. Профиль Public

Верните NIC в Domain (DNS домена, secure channel). Не отключайте firewall Public насовсем. Проверьте, что правило RDP включено для фактического профиля.

Сценарий C. NLA и нет DC

Восстановите locator/DNS/время. Временное снятие NLA (UserAuthentication = 0) — только чтобы войти с консоли управления в аварии, затем вернуть 1.

Сценарий D. Два админа уже внутри

rwinsta только для сеанса, который можно сбросить по регламенту. Не убивайте чужой production-сеанс без согласования.

Сценарий E. Роль RDS / лицензии

Если это Session Host, не admin-два-сеанса — переходите в статью лицензирования. Не «сбрасывайте grace» неофициальными скриптами.

Сценарий F. Сеть, шлюз и «RDP с дома»

TCP 445/389 до DC живы, 3389 False с вашей станции — смотрите промежуточный firewall, не TermService. С самой консоли сервера Test-NetConnection localhost -Port 3389 должен быть True, если слушатель жив. Если localhost True, с WS-042 False — путь, не Windows.

Test-NetConnection WS-042.contoso.example -Port 3389
Get-NetTCPConnection -LocalPort 3389 -ErrorAction SilentlyContinue |
  Format-Table LocalAddress, State, OwningProcess
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' |
  Select-Object PortNumber, UserAuthentication

Смена порта RDP в GPO без обновления клиента даёт ровно эту картину. RD Gateway: клиент стучится на 443 шлюза, не на 3389 хоста; диагностика шлюза отдельно.

NLA + нет DC: локальная админская учётка иногда проходит, доменная — нет. Это не «сломан RDP», а вход в домен. CredSSP «encryption oracle»: выровняйте патч клиента и сервера, не оставляйте Allow на всех ПК домена.

После включения правил firewall проверьте профиль: Domain vs Public. Правила на Domain не спасают NIC, который Windows считает Public после сбоя DNS.

Как проверить, что проблема устранена

С новой машины:

Test-NetConnection WS-042.contoso.example -Port 3389

mstsc под доменной учёткой с NLA. quser видит сеанс. После reboot TermService Running, fDenyTSConnections 0, firewall Domain включён.

Если не помогло

  • 3389 False снаружи, True локально: ACL маршрутизатора, не Windows.
  • CredSSP политика клиента жёстче сервера — выровняйте, не «Allow encryption oracle» навсегда на всех ПК.
  • Только с macOS/старого mstsc: NLA/TLS, не «сервер мёртв».
  • Слушатель 3389 занят — другой порт в GPO, клиент ходит на дефолт.

Проверьте, что вы стучитесь на то же имя, что в сертификате/NLA: WS-042.contoso.example, не короткий NetBIOS через чужой DNS. Два сеанса admin уже внутри — это не лицензия RDS и не firewall. После смены NIC Windows мог повесить профиль Public: правила Domain не сработают, пока не вернёте Domain. Не публикуйте 3389 в интернет «чтобы админ с дачи зашёл» — это уже другая авария.

Профилактика

  • Консоль гипервизора/iLO кроме RDP.
  • WinRM/SSH как запасной канал в admin-VLAN.
  • NLA включён, DC доступен с сеансовых хостов.
  • Мониторинг 3389 и TermService.
  • Не публиковать 3389 в интернет (это уже другая угроза, не фикс доступности).
  • После любой аварии с NLA верните UserAuthentication = 1 и проверьте, что WS-042 снова в профиле Domain. Запасной канал — консоль гипервизора, не дырка в NAT.

FAQ

Ping есть — почему этого мало?

RDP — TCP (и иногда UDP 3389) плюс CredSSP. ICMP не проверяет TermService.

Нужно ли разрешать UDP 3389?

Для UDP-транспорта RDP — да, если политика включает; TCP достаточно для подключения. Сначала добейтесь TCP.

GPO снова выключает RDP после моего реестра?

Да. Чините GPO computer-scope, не гоняйтесь с gpupdate в цикле.

Административный RDP и RDS — одно и то же?

Нет. Два сеанса на сервере без Session Host — не RD Licensing. Сообщения про license server появляются на роли RDS.

Можно ли открыть RDP, выключив firewall?

Нет как решение. Включите группу правил Remote Desktop на нужном профиле.

Почему NLA ломается, а консоль гипервизора жива?

Консоль не ходит в DC за CredSSP. NLA на WS-042 требует доступный каталог. Сначала locator и DNS, не галка UserAuthentication.