Pregunta

Estoy creando una interfaz que permita al usuario administrar (entre otras cosas) el firewall de Windows. La GUI que viene con Windows se ve así

enter image description here

Mi GUI está escrita en Java y usa la netsh advfirewall firewall comandos para leer la configuración actual y guardar cambios.

Algunos de los elementos son registros individuales en el firewall. Sin embargo, el elemento "Windows Remote Management" es uno de los elementos "agrupados". Esta es una combinación de múltiples elementos. Aquí hay uno de esos elementos en la combinación.

Rule Name:                            Windows Remote Management - Compatibility
Mode (HTTP-In)
----------------------------------------------------------------------
Enabled:                              No
Direction:                            In
Profiles:                             Private,Public
Grouping:                             Windows Remote Management
LocalIP:                              Any
RemoteIP:                             LocalSubnet
Protocol:                             TCP
LocalPort:                            80
RemotePort:                           Any
Edge traversal:                       No
Action:                               Allow

En este caso, todo el grupo está deshabilitado, pero puede habilitarse para el tipo público o privado o ambos. (sin mencionar el dominio)

Cuando habilita este grupo con la GUI de Windows, si solo habilita uno de los tipos, tiene que duplicar todos los elementos del grupo. Una copia para el tipo de discapacitado, una para el tipo habilitado.

El problema surge cuando intento crear la segunda copia. los netsh advfirewall firewall add rule dominio No me permite establecer una agrupación en artículos nuevos. ¡Eso significa que no puedo crear la segunda copia! Lo que significa que, a menos que el artículo ya haya sido duplicado por Windows, solo puedo habilitar o deshabilitar ambos tipos juntos (público y privado), que no es lo que quiero.

¿Cómo puedo crear esta segunda copia? ¿Alguna idea sobre cómo hacerlo con Java o la línea de comando? Descubrí que una exportación de Netsh crea un archivo de byte. Parece que es un archivo de byte de registro. ¿Hay alguna forma de editar el firewall usando reg query? ¿Dónde se almacenarían la configuración del firewall en el registro? Espero evitar escribir el mío .exe.

¿Fue útil?

Solución

El lugar en el registro donde se almacenan las reglas de firewall de Windows es:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules

Los datos en este registro clave tienen las mismas variables que son editables a través de netsh advfirewall firewall. La mayoría de los nombres y descripciones reales son referencias que se ven así @FirewallAPI.dll,-31293. Las entradas de firewall no tienen una identificación única y se identifican por su nombre. Debido a esto y porque no pude averiguar a qué señalaba la referencia, eliminé las entradas de firewall usando netsh advfirewall firewall y agregarlos de nuevo usando reg query.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top