В этом руководстве показано, как с помощью 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‑адрес‑сервера>:<Новый‑порт>
Пример: