所以现在我试图在命令提示符(cmd)中看到以下命令产生的信息:
netsh advfirewall防火墙显示规则名称=“TestFirewallUpdateSettings”个人资料=任何
我得到的输出是:
Rule Name: TestFirewallUpdateSettings
----------------------------------------------------------------------
Enabled: Yes Direction:
In Profiles: Domain,Private,Public
Grouping: LocalIP: Any RemoteIP:
Any Protocol: Any Edge traversal:
No Action: Allow
我想要的是只使用vb.net阅读In Profiles部分,并想知道是否有一个API可以满足我的需求?
答案 0 :(得分:1)
是的,有。您可以创建自己的互操作程序集,以便在系统基于COM的FirewallApi.dll中访问对象 - 特别是INetFwPolicy2
。有关详细信息,请查看this SO thread。我过去做过这个(Windows 7),它就像一个魅力。
此外,还有一个WMI名称空间--ROOT \ SecurityCenter2 - 应该提供有关防火墙等信息。然而,它没有很好的文档记录,我没能通过C#枚举它,虽然我可以通过各种WMI浏览器工具看到它。
您还可以查看新的Microsoft.TeamFoundation.Build.Common.INetFwPolicy2。它似乎与手动创建的互操作程序集完成相同的工作。