获取特定的防火墙规则选项

时间:2016-11-11 09:00:36

标签: c# windows-firewall-api

我希望按名称获取特定的防火墙规则并查看它使用的选项(特别是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 个答案:

答案 0 :(得分:0)

在该对象firewallPolicy.Rules中,您可以访问并使用foreach循环 去你的防火墙内的每个规则。 如果您需要特定的规则,请使用linq在该集合中进行搜索: 像这样:

var rule = firewallPolicy.Rules.Where(n =&gt; n.Name ==&#34;您的姓名&#34;);