在 vb.net 中是否有 windows API 显示与 "Netsh AdvFirewall Firewall show" 相同的信息

In vb.net is there a windows API that shows the same information as "Netsh AdvFirewall Firewall show"

所以现在我正在尝试在命令提示符 (cmd) 中查看来自以下命令的信息:

netsh advfirewall firewall show rule name="TestFirewallUpdateSettings" profile=any

我得到的输出是:

 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 阅读个人资料部分,想知道是否有 API 可以满足我的要求?

是的,有。您可以创建自己的互操作程序集,以便访问系统的基于 COM 的 FirewallApi.dll 中的对象 - 特别是 INetFwPolicy2。查看 this SO thread 了解详情。我过去曾这样做过 (Windows 7),效果非常好。

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

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