[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
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-