Получить конкретные параметры правила брандмауэра

Я хотел бы получить конкретное правило брандмауэра по имени и посмотреть параметры, которые оно использует (в частности, 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 == "ваше имя");

Другие вопросы по тегам