Как добавить / удалить правила в Брандмауэре Windows [закрыто]

Мне нужно реализовать инструмент, который добавляет и удаляет правила в Брандмауэре Windows. Правила могут быть входящими или исходящими, запрещая связь по указанным протоколам, IP-адресам и портам. У меня возникли проблемы с принятием дизайнерского решения о том, какой из следующих вариантов я знаю, чтобы использовать:

  1. Powershell, как описано, например, в https://technet.microsoft.com/en-us/library/jj554906(в=кнопка WPS.630).аспн . Проблема с этим вариантом заключается в том, что (исправьте меня, если я неправильно) кажется, он не поддерживается на Windows 7, в то время как мой инструмент должен работать на Windows 7, Windows 8(.1), и желательно более поздних версиях Windows. Кроме того, мне не разрешено использовать C#, в то время как PowerShell не интегрируется с C++, за исключением (возможно, я не уверен) через вызов процесса PowerShell, предоставляя ему параметры командной строки и чтение/запись из/в его потоки вывода/ввода.
  2. "netsh advfirewall firewall" путь. Проблема с этой опцией является то, что Windows 8.1 говорит, что " netsh advfirewall" контекст является устаревшим и может быть удален из более поздних версий Windows. Так что я боюсь, что принимая этот путь сделает мой инструмент не работает на Windows 9 или 10.
  3. com интерфейсы брандмауэра Windows, как в этих примерахhttps://msdn.microsoft.com/en-us/library/windows/desktop/dd339604 (v=против 85).aspx . Требуемое кодирование C++ не является проблемой, хотя может занять больше времени, чем использование PowerShell или командной строки (netsh advfirewall брандмауэр.)

какой вариант будет лучшим решением для добавления / удаления правил Брандмауэра Windows? Существуют ли другие варианты или преимущества/недостатки перечисленных мной вариантов?

27
задан Serge Rogatch
14.04.2023 19:15 Количество просмотров материала 2801
Распечатать страницу

1 ответ

для Windows 7, способ сделать это отличается

все, что связано с брандмауэром в Server 2008 / Vista / Server R2 / Windows 7, управляется через HNetCfg.FwPolicy2 COM-объекта

с здесь

Если вы хотите использовать PowerShell, но нужно ориентироваться на обе версии ОС, я бы сказал, что написание 2 функции будет проще всего, так как вы, кажется, уже знаете, как это сделать для Windows 8.

1
отвечен Julian Knight 2023-04-16 03:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

c
com
netsh
powershell
windows-firewall
Вверх