Cómo agregar/eliminar reglas en Windows Firewall

Cómo agregar/eliminar reglas en Windows Firewall

Necesito implementar una herramienta que agregue y elimine reglas en el Firewall de Windows. Las reglas pueden ser entrantes o salientes, prohibiendo la comunicación en protocolos, IP y puertos específicos. Tengo problemas para tomar la decisión de diseño sobre cuál de las siguientes opciones conozco que debo utilizar:

  1. PowerShell, como se describe, por ejemplo, enhttps://technet.microsoft.com/en-us/library/jj554906(v=wps.630).aspx. El problema con esta opción es que (corríjame si me equivoco) parece que no es compatible con Windows 7, mientras que mi herramienta debe funcionar en Windows 7, Windows 8(.1) y, deseablemente, versiones posteriores de Windows. Además, no puedo usar C#, mientras que PowerShell no se integra con C++ excepto (posiblemente, no estoy seguro) llamando al proceso de PowerShell, dándole opciones de línea de comando y leyendo/escribiendo desde/hacia su salida/entrada. corrientes.
  2. forma "netsh advfirewall firewall". El problema con esta opción es que Windows 8.1 dice que el contexto "netsh advfirewall" está en desuso y puede eliminarse de versiones posteriores de Windows. Por eso me temo que seguir este camino hará que mi herramienta no funcione en Windows 9 o 10.
  3. Interfaces COM del firewall de Windows, como en estos ejemploshttps://msdn.microsoft.com/en-us/library/windows/desktop/dd339604(v=vs.85).aspx. La codificación C++ requerida no es un problema, aunque puede llevar más tiempo que el uso de PowerShell o la línea de comandos (firewall netsh advfirewall).

¿Qué opción sería la mejor decisión de diseño para agregar/eliminar reglas de Firewall de Windows? ¿Existen otras opciones o ventajas/desventajas de las opciones que enumeré?

Respuesta1

Para Windows 7 la forma de hacerlo es diferente

Todo lo relacionado con el firewall en Server 2008/Vista / Server R2/ Windows 7 se administra a través del objeto COM HNetCfg.FwPolicy2

deaquí

Si desea utilizar PowerShell pero necesita apuntar a ambas versiones del sistema operativo, diría que escribir 2 funciones sería lo más sencillo, ya que parece que ya sabe cómo hacerlo para Windows 8.

información relacionada