Category: мода

Category was added automatically. Read all entries about "мода".

Photo

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

Потребовалось автоматизировать одну задачу, в процессе которой нужно узнать, сконфигурирован ли встроенный файрволл винды на пропуск определенного 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!
animated-1
  • 109

Enum —> Enumerable

Что-то торможу. Если у меня есть enum, как наиболее элегантным способом создать IEnumerable, итерирующий через все значения этого enum?

Флаг стиля окна WS_EX_COMPOSITED

Стиль нужен для убиения дикого фликера VCL/LCLных компонентов при ресайзе форм. Проблема заключается в том, что после установления сего флажка на модных темках XP перестают мигать кнопочки в систембаре формы ( _[]X ), при наведении мышкой поверх.
Суть флага, как я понял, заставить рисовать содержимое формы с двойным буффером (аля ~asdasd.DoubleBuffered:=true). Правда, почему-то установление этого стиля для окна работает намного эффективнее, чем менять вручную вышеупомянутое проперти, перебирая все компоненты формы (очевидного результата этим методом так и не достиг).
Через FindWindow можно таким образом запороть все доступные формы, поставив им этот стиль. Правда, при ресайзе у них теперь не будет фликера и рисоваться они будут плавнее. Может быть, кто-то знает, с чем это связано? В MSDNе про подобные побочные эффекты ни слова.