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 .
fuente
Respuestas:
o
fuente
netsh firewall
está en desuso (desde win7), no funciona en Win10 y permite rdp solo para la red actual (si está en una pública, se permitirá rdp para redes públicas y no funcionará en redes privadas después). Esto se observa en la historia original, solo pensé que no vale la pena mencionarlo en cuestión. Arreglaré esa falla.netsh firewall
aún funciona en Windows 10 (probado en Pro).Si entiendo la pregunta correctamente, esto te dará lo que quieres. Esto es PowerShell:
Esto filtrará las reglas y tomará los nombres correctos de las reglas independientes del lenguaje. Lo hace filtrando en el puerto 3389 y buscando la regla asociada con "Dominio y redes privadas".
Profiles -eq 3
es la máscara de mapa de bits para redes privadas y de dominio, puede ver la referencia aquí:https://msdn.microsoft.com/en-us/library/windows/desktop/aa366303(v=vs.85).aspx
Donde 1 (redes de dominio) + 2 (redes privadas) = 3
Aquí está el enlace de MSDN donde descubrí el resto:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365309(v=vs.85).aspx
Y así es como descubrí cuáles eran las propiedades y los métodos para los otros objetos:
fuente
)}
Si está buscando la solución PowerShell, se puede usar lo siguiente:
fuente
Los siguientes comandos cmd.
y
no son suficientes para habilitar el escritorio remoto.
Tuve que agregar este para que funcione (Cliente: Windows 10).
fuente