-Поиск по дневнику

Поиск сообщений в lj_ru_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 09.09.2006
Записей:
Комментариев:
Написано: 4


[SOLVED] Проверка "пробивания" файрволла на Win

Четверг, 15 Августа 2019 г. 14:11 + в цитатник
Потребовалось автоматизировать одну задачу, в процессе которой нужно узнать, сконфигурирован ли встроенный файрволл винды на пропуск определенного UDP порта (incoming) к определенной программе (*.ехе). Если нет, внести для этого новое правило.

Так вот, вопрос: Как скриптами можно проверить наличие "нужной дыры"?

Я знаю, как в VBS пройтись по всем правилам:

Set fwPolicy2 = CreateObject("HNetCfg.FwPolicy2")
For Each rule In fwPolicy2.Rules
...


В rule есть вся инфа: ApplicationName, Protocol, Local/RemotePorts, Local/RemoteAddresses, Interfaces...

Но это простой доступ к списку правил. Можно, конечно, и пройтись по всем и попытаться проверить наличие хоть одного правила, разрешающего то, что нужно (но придется играться со списками, ведь ApplicationName может быть Any, ведь Ports может содержать как отдельный порт, так и список или диапазон...)

Может быть, есть более элегантный метод?

PS. То же самое можно получить от netsh:
netsh advfirewall firewall show rule name=all
Но вопрос именно в том, как проверить, есть ли уже разрешающее правило

Решение:
Простая и элегантная функция IsPortAllowed. Работает для входящих TCP/UDP портов. Спасибо yatur!

https://ru-programming.livejournal.com/1369076.html


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку