C# 防火墙,删除特定条目

bes*_*ash 2 c# windows-firewall

我目前正在为一家公司编写 windows 防火墙管理器。
问题是,我只能按名称删除条目,而不能按 INetFwRule 对象或其他东西删除。
有两次具有相同名称的条目,其中一个用于 TCP,另一个用于 UDP,我们可能只想删除其中一个。
我可以删除两者并在之后再次创建其中一个,但我不想使用该解决方法。
有没有人有一个简单的解决方案?

Mar*_*age 5

您只能使用INetFwRules接口按名称删除规则,这似乎是一个设计糟糕的 API,因为不同的规则可以具有相同的名称。解决方法是不仅按名称过滤规则,还按指定要删除的规则的其他属性过滤规则。找到要删除的规则后,您可以使用INetFwRule界面将规则重命名为唯一名称。

然后您可以使用这个唯一的临时名称删除规则。