nota: # la etiqueta de línea de comandos no implica solo archivo por lotes, aceptaré un script de PowerShell o cualquier utilidad disponible gratuitamente, que se puede iniciar desde la línea de comandos y terminar su trabajo sin supervisión.
tl; dr
¿Cómo transformar desatendidamente las reglas del firewall exactamente para indicar la GUI, en Windows Vista a Windows 10 de cualquier idioma de interfaz (pantalla)?
Elaborando
Esta pregunta es similar a la # 786383 , pero no es la misma.
Básicamente, porque la respuesta no es buena para mí:
set rule group="remote desktop" new enable=Yes
abre el puerto 3389 para redes públicas, y quiero evitar eso. Además, los diferentes idiomas de Windows tienen diferentes nombres de grupo, pero necesito una solución universal.netsh firewall set service type = remotedesktop mode = enable
tampoco funciona para mí: está en desuso desde win7 y permite rdp solo para la red actual (si está en una pública, 3389 se abrirá para redes públicas y no funcionará en redes privadas después).
Tenga en cuenta que antes de habilitar RDP mediante GUI, solo hay una regla por protocolo para RDP. Pero cuando RDP está habilitado a través de GUI, el puerto solo se abre para redes privadas y de dominio, y las reglas se dividen para esto. Después de habilitar, hay 4 reglas en Windows 8+ y 2 reglas (sin UDP) en Windows XP, Vista y 7.
La solución que estoy usando actualmente es agregar mis propias reglas:
netsh.exe advfirewall firewall add rule name="Remote Desktop - User Mode (TCP-In)" dir=in action=allow program="%%SystemRoot%%\system32\svchost.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%%\system32\svchost.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
pero eso es malo, porque (a diferencia de los estándares) pueden ser modificados por el usuario, no tienen grupo (para trabajar con otros scripts) y no se desactivan automáticamente cuando RDP se desactiva a través de la GUI.
Capturas de pantalla
Reglas de firewall antes de habilitar RDP mediante GUI por primera vez * **
Las mismas reglas cuando RDP está habilitado a través de GUI (estado que quiero obtener):
Y después de deshabilitar RDP en GUI:
No volveré a contar toda la historia de esta pelea con las utilidades de línea de comandos de Windows, hasta que alguien pregunte. Aquí está esa historia en ruso .