Получить конкретные параметры правила брандмауэра
Я хотел бы получить конкретное правило брандмауэра по имени и посмотреть параметры, которые оно использует (в частности, IP Scope) и сравнить его с чем-то. Возможно ли это, я искал в Интернете, но ничего не смог найти.
Вот как я добавляю правила:
INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
INetFwRule firewallRule = firewallPolicy.Rules.OfType<INetFwRule>().Where(x => x.Name == RULE_NAME).FirstOrDefault();
if (firewallRule == null)
{
firewallRule = (INetFwRule)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
firewallRule.Name = RULE_NAME;
/* More stuff */
firewallPolicy.Rules.Add(firewallRule);
}
1 ответ
Внутри этого объекта firewallPolicy.Rules вы можете обращаться к циклу foreach и использовать его для перехода к каждому правилу, которое есть у вас внутри брандмауэра. Если вам нужно определенное правило, используйте linq для поиска внутри этой коллекции: что-то вроде этого:
var rule = firewallPolicy.Rules.Where (n => n.Name == "ваше имя");