在vb.net中有一个Windows API显示与“Netsh AdvFirewall Firewall show”相同的信息

时间:2016-07-14 18:45:09

标签: vb.net cmd windows-firewall netsh

所以现在我试图在命令提示符(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可以满足我的需求?

1 个答案:

答案 0 :(得分:1)

是的,有。您可以创建自己的互操作程序集,以便在系统基于COM的FirewallApi.dll中访问对象 - 特别是INetFwPolicy2。有关详细信息,请查看this SO thread。我过去做过这个(Windows 7),它就像一个魅力。

此外,还有一个WMI名称空间--ROOT \ SecurityCenter2 - 应该提供有关防火墙等信息。然而,它没有很好的文档记录,我没能通过C#枚举它,虽然我可以通过各种WMI浏览器工具看到它。

您还可以查看新的Microsoft.TeamFoundation.Build.Common.INetFwPolicy2。它似乎与手动创建的互操作程序集完成相同的工作。