Брандмауэр Windows 7: изменение элементов группы из командной строки - PullRequest
1 голос
/ 07 сентября 2011

Я создаю интерфейс, который позволяет пользователю управлять (помимо прочего) брандмауэром Windows.GUI, который поставляется с Windows, выглядит следующим образом

enter image description here

Мой графический интерфейс написан на Java и использует команды netsh advfirewall firewall для чтения текущих настроек исохранить изменения.

Некоторые элементы представляют собой отдельные записи в брандмауэре.Однако элемент «Удаленное управление Windows» является одним из «сгруппированных» элементов.Это комбинация нескольких предметов.Вот один из этих элементов в комбинации.

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

В этом случае вся группа отключена, но ее можно включить для типа public или private или обоих.(не говоря уже о домене)

При включении этой группы с помощью графического интерфейса Windows, если вы включаете только один из типов, она должна дублировать все элементы в группе.Одна копия для отключенного типа, одна для включенного типа.

Проблема возникает, когда я пытаюсь создать вторую копию.Команда netsh advfirewall firewall add rule не позволяет мне группировать новые элементы.Значит, я не могу создать вторую копию!Это означает, что, если элемент уже не был продублирован Windows, я могу только включать или отключать оба типа (общий и закрытый), а это не то, что мне нужно.

Как создать эту вторую копию?Любые идеи о том, как сделать это с помощью Java или командной строки?Я обнаружил, что экспорт netsh создает файл байтов.Похоже, это файл байтов реестра.Есть ли способ отредактировать брандмауэр, используя reg query?Где будут храниться настройки брандмауэра в реестре?Я надеюсь не писать свои собственные .exe.

1 Ответ

0 голосов
/ 20 апреля 2012

Место в реестре, где хранятся правила брандмауэра Windows:

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

Данные в этом разделе реестра имеют те же переменные, которые можно редактировать с помощью netsh advfirewall firewall. Большинство реальных имен и описаний являются ссылками, которые выглядят следующим образом @FirewallAPI.dll,-31293. Записи брандмауэра не имеют уникального идентификатора и идентифицируются по имени. Из-за этого и из-за того, что я не смог выяснить, на что указывает ссылка, я удалил записи Брандмауэра с помощью netsh advfirewall firewall и добавил их обратно с помощью reg query.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...