Changer le port RDP sous Windows sans redémarrer le serveur

Publié le Mis à jour le 4 min de lecture

Un court script PowerShell suffit pour changer le port RDP sous Windows, créer la règle de pare-feu correspondante et redémarrer le service Bureau à distance, le tout sans redémarrer le serveur.

Dans ce guide, nous vous montrons comment changer le port du Bureau à distance (RDP) sous Windows à l'aide de PowerShell, par exemple sur un Windows Server, comment adapter le pare-feu Windows en conséquence et comment redémarrer le service Bureau à distance. Aucun redémarrage complet du serveur n'est nécessaire.

Pourquoi changer le port RDP ?

Le port par défaut du Bureau à distance est le TCP 3389, et c'est précisément celui que des bots automatisés scannent 24h/24, 7j/7. Tout serveur Windows exposé sur Internet avec le port 3389 ouvert accumule en quelques heures des centaines de tentatives de connexion échouées. Cela sollicite inutilement le système, et si une stratégie de verrouillage de compte est active, cela finit par verrouiller votre propre compte.

Un port modifié sort votre serveur de ces scans de masse. Il ne remplace pour autant aucune des autres mesures de protection : un mot de passe fort, l'authentification au niveau du réseau (NLA) activée et une règle de pare-feu qui limite le RDP à votre propre adresse IP restent tout aussi importants.

Prérequis

  • Un système Windows avec le Bureau à distance activé, par exemple Windows Server 2022 ou Windows Server 2025
  • Les droits d'administrateur sur ce système
  • Un port libre au-dessus de 1024, dans notre exemple nous utilisons 33445
  • L'accès à la console KVM dans votre espace client comme voie de secours, au cas où la connexion ne fonctionnerait pas tout de suite après la modification

Ouvrir PowerShell en tant qu'administrateur

Ouvrez d'abord Windows PowerShell en tant qu'administrateur. Pour cela, faites un clic droit sur « Windows PowerShell » dans le menu Démarrer et choisissez « Exécuter en tant qu'administrateur ». Sans droits élevés, le script ne pourra modifier ni le registre ni le pare-feu.

Le script PowerShell pour changer le port RDP

Collez le script suivant dans PowerShell. Adaptez au préalable le numéro de port de la première ligne au port de votre choix :

# Le port 33445 n'est qu'un exemple. Vous pouvez utiliser n'importe quel port libre.

$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."

Ce que fait le script en détail

  1. Il définit le nouveau numéro de port dans la variable $newPort.
  2. Il applique cette valeur à l'entrée de registre PortNumber sous HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp.
  3. Il crée dans le pare-feu Windows une règle qui autorise les connexions TCP entrantes sur le nouveau port. Si la règle existe déjà, elle n'est pas recréée.
  4. Il redémarre le service Bureau à distance (TermService) pour que la modification prenne effet immédiatement.

Se reconnecter après la modification

Le redémarrage du service coupe immédiatement toutes les connexions RDP en cours. C'est normal. Pour la nouvelle connexion, n'indiquez plus seulement l'adresse du serveur dans le client RDP, mais la combinaison de l'adresse et du port :

<Adresse-IP>:<Nouveau-Port>

Dans notre exemple, cela donne ceci :

192.168.1.100:33445

Vérifier le port RDP actuel

Vous pouvez à tout moment lire le port actuellement enregistré directement dans le registre :

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber

Ce qu'il vous reste à faire ensuite

  • Adapter le pare-feu en amont : si un pare-feu externe se trouve devant votre serveur, le nouveau port doit y être ouvert lui aussi. Sinon, vous n'atteindrez pas le serveur, même avec une règle Windows correcte.
  • Vérifier l'ancienne règle du port 3389 : la règle existante « Bureau à distance » reste en place. Désactivez-la si le port 3389 ne doit plus être joignable.
  • Restreindre l'accès : le plus efficace reste de limiter le RDP à votre propre adresse IP dans le pare-feu. Toutes les attaques automatisées tombent alors dans le vide.
  • Compte déjà verrouillé ? Si votre compte utilisateur a déjà été verrouillé par les tentatives d'attaque précédentes, notre guide Corriger l'erreur RDP « compte verrouillé » vous aidera.

Questions fréquentes

Dois-je redémarrer le serveur après avoir changé le port RDP ?
Non. Il suffit de redémarrer le service TermService, et c'est exactement ce que fait le script automatiquement. Toutes les sessions RDP ouvertes sont en revanche déconnectées.
Quel port choisir pour le RDP ?
Choisissez un port libre au-dessus de 1024, par exemple 33445. Évitez les ports déjà occupés par d'autres services et notez bien le numéro, car vous en aurez besoin à chaque connexion.
Comment me connecter après la modification ?
Indiquez dans le client RDP l'adresse du serveur suivie du nouveau port, au format adresse IP:port. Dans notre exemple, cela donne 192.168.1.100:33445.
Un autre port RDP protège-t-il vraiment des attaques ?
Un port modifié sort votre serveur des scans de masse qui visent le port 3389 et réduit nettement le nombre de tentatives de connexion. Il ne remplace toutefois pas un mot de passe fort, l'authentification au niveau du réseau (NLA) et une restriction par adresse IP dans le pare-feu.
Je n'atteins plus le serveur après la modification, que puis-je faire ?
Le plus souvent, il manque l'ouverture du nouveau port sur un pare-feu en amont. Connectez-vous au serveur via la console KVM de votre espace client et vérifiez-y la règle de pare-feu ainsi que la valeur du port enregistrée dans le registre.

Windows Server Windows RDP RDP-Port Remote Desktop PowerShell Firewall Server-Sicherheit