Activer le bureau à distance dans le pare-feu Windows à partir de la ligne de commande

remarque: # la balise de ligne de commande n'implique pas de fichier batch uniquement, j'accepterai un script PowerShell ou tout utilitaire disponible gratuitement, qui peut être démarré à partir de la ligne de commande et terminer son travail sans surveillance.


Tl; dr

Comment transformer sans surveillance les règles de pare-feu exactement pour indiquer l'interface GRAPHIQUE, sous Windows Vista vers Windows 10 de n'importe quelle langue d'interface (d'affichage)?

Élaboration de

Cette question est similaire à #786383, mais c'est pas pareil.

En gros, parce que la réponse n'est pas bonne pour moi:

  1. set rule group="remote desktop" new enable=Yes ouvre le port 3389 pour les réseaux publics, et je veux éviter cela. En outre, différentes langues Windows ont des noms de groupe différents, mais j'ai besoin d'une solution universelle.
  2. netsh firewall set service type = remotedesktop mode = enable ne fonctionne pas non plus pour moi: il est obsolète depuis win7 et n'autorise rdp que pour le réseau actuel (si vous êtes dans un réseau public, 3389 sera ouvert pour les réseaux publics et ne fonctionnera pas dans les réseaux privés ensuite).

Notez qu'avant que RDP ne soit activé via l'interface graphique, il n'y a qu'une seule règle par protocole pour RDP. Mais lorsque RDP est activé via l'interface graphique, le port n'est ouvert que pour les réseaux privés et de domaine, et les règles sont divisées pour cela. Après l'activation, il y a 4 règles dans Windows 8+ et 2 règles (pas d'UDP) dans Windows XP, Vista et 7.

La solution que j'utilise actuellement consiste à ajouter mes propres règles:

netsh.exe advfirewall firewall add rule name="Remote Desktop - User Mode (TCP-In)" dir=in action=allow program="%%SystemRoot%%system32svchost.exe" service="TermService" description="Inbound rule for the Remote Desktop service to allow RDP traffic. [TCP 3389] added by LogicDaemon's script" enable=yes profile=private,domain localport=3389 protocol=tcp
netsh.exe advfirewall firewall add rule name="Remote Desktop - User Mode (UDP-In)" dir=in action=allow program="%%SystemRoot%%system32svchost.exe" service="TermService" description="Inbound rule for the Remote Desktop service to allow RDP traffic. [UDP 3389] added by LogicDaemon's script" enable=yes profile=private,domain localport=3389 protocol=udp

Mais c'est mauvais, car (contrairement aux standards) ils peuvent être modifiés par l'utilisateur, n'ont pas groupe (pour travailler avec d'autres scripts), et ne pas être automatiquement désactivé lorsque RDP est désactivé via l'interface graphique.

Captures d'écran

Règles de pare-feu avant d'activer RDP via l'interface graphique pour la première fois * **

Mêmes règles lorsque RDP est activé via l'interface graphique (état que je veux obtenir):

Et après avoir désactivé RDP dans l'interface graphique:


Je ne raconterai pas toute l'histoire de ce combat avec les utilitaires de ligne de commande Windows, jusqu'à ce que quelqu'un le demande. Voici cette histoire en russe .

demandé sur