По скрину всё понятно:
1. **Это Windows 11** (build 26200) — клиентская версия, а не Server. На ней **один сеанс**. Пока ты сидишь в консоли (99user, console, Активно), `mstsc /v:127.0.0.1` всегда будет давать ошибку «сеанс запущен» — ему пришлось бы отключить тебя же от консоли, из которой ты запускаешь mstsc. **Локальный тест — тупик, забудь про него.**
2. **RDP жив**: `rdp-tcp` в состоянии «Прием» (Listen). Служба и порт работают.
Значит, проблема по-прежнему только во внешнем доступе. На этой машине проверь:
**1. Что правило реально включено и какой у него Scope:**
```powershell
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow |
Where-Object { ($_ | Get-NetFirewallPortFilter).LocalPort -eq '3389' } |
Select-Object DisplayName, Profile
Get-NetFirewallRule -DisplayName "RDP whitelist" |
Get-NetFirewallAddressFilter |
Select-Object RemoteAddress
```
Сравни RemoteAddress с фактическим внешним IP офиса (2ip.ru с офисного ПК).
**2. С офисного ПК:**
```powershell
Test-NetConnection -ComputerName <публичный_IP_этой_машины> -Port <внешний_порт>
```
**3. Лог файрвола на сервере** после попытки подключения:
```powershell
netsh advfirewall set allprofiles settings logging enabled
```
→ `C:\Windows\System32\LogFiles\Firewall\pfirewall.log`: DROP с IP офиса и dport 3389 = правило не матчится (профиль/Scope); записи нет = режет хостер или форвард.
И учти: на Windows 11 при входе по RDP снаружи консольный сеанс будет отключаться — это нормальное поведение клиентской версии.