В этом руководстве показано, как с помощью PowerShell изменить порт Remote Desktop (RDP) на Windows (например, Windows Server), настроить Windows Firewall и перезапустить службу удалённого рабочего стола.
Откройте Windows PowerShell с правами администратора (правый клик по «Windows PowerShell» в меню «Пуск» → «Запуск от имени администратора») и вставьте следующий скрипт:
# Port 33445 is just an example port. You can use any free ports you want.
$newPort = 33445
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp'
Set-ItemProperty -Path $regPath -Name 'PortNumber' -Value $newPort
if (-not (Get-NetFirewallRule -DisplayName "RDP Port $newPort" -ErrorAction SilentlyContinue)) {
    New-NetFirewallRule `
      -DisplayName "RDP Port $newPort" `
      -Direction Inbound `
      -Protocol TCP `
      -LocalPort $newPort `
      -Action Allow
}
Restart-Service -Name TermService -Force
Write-Host "The RDP port has been changed."
Что происходит при выполнении скрипта:
- 
В переменной $newPortзадаётся новый порт для RDP.
- 
Через Set-ItemPropertyизменяется значение параметраPortNumberв реестре по путиHKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp.
- 
Если правило с таким названием отсутствует, создаётся новое правило Windows Firewall, разрешающее входящие TCP‑соединения на указанный порт. 
- 
Служба удалённого рабочего стола ( TermService) перезапускается, чтобы изменения вступили в силу.
После выполнения скрипта все активные RDP‑сессии будут прерваны из‑за перезапуска службы. Чтобы подключиться заново, введите в клиенте RDP:
<IP‑адрес‑сервера>:<Новый‑порт>
Пример:
