Короткий ответ
Если 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 | служба |
Возможные причины
- RDP отключён политикой (
fDenyTSConnections = 1). - Firewall (профиль Public после смены сети) режет 3389.
- NLA включён, DC недоступен для проверки, кэш логона пуст.
- Службы
TermService,UmRdpServiceне Running. - Слушатель на другом порту, чем клиент.
- Сетевой путь: NAT, промежуточный ACL, RD Gateway.
- Исчерпаны 2 сеанса admin RDP (не лицензия RDS, а shadow/session).
- Лицензирование сеансового хоста.
Диагностика
С админской станции:
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, ProfileNLA: 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 3389mstsc под доменной учёткой с 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.