Я пытаюсь настроить правило брандмауэра для службы Windows, чтобы запретить все входящие и исходящие соединения TCP и UDP, за исключением белого списка хостов и портов, используя API защиты служб Windows, следуя примеру VBScript здесь.
Теперь эта служба может порождать новые процессы (поскольку это агент непрерывной интеграции и тестирования), поэтому недостаточно просто установить NewOutboundRule.ApplicationName = "%systemDrive%\WINDOWS\system32\svchost.exe"
, как в приведенном выше примере скрипта — мне нужно правило, которое будет применяться ко всем приложения, запускаемые службой.
Однако, если я попытаюсь настроить новое входящее правило, в котором якобы необязательное свойство ApplicationName
не указано в INetFw
вызов для добавления нового правила завершается сбоем (в строке wshRules.Add NewOutboundRule
в приведенном выше скрипте). Все остальное правильно, как будто я указываю ApplicationName
, вызов проходит успешно.
Есть ли способ создать правила, применимые ко всем возможным значениям ApplicationName
, или какой-то альтернативный способ сделать это?