netsh显示按本地端口过滤的规则

MUY*_*ium 1 netsh

这里的突击队员可以显示所有规则,

    netsh advfirewall firewall show rule dir=in name=all
Run Code Online (Sandbox Code Playgroud)

我想过滤

  • 与端口445相关的规则。
  • 当前启用的规则。

我阅读了文档,并且可以看到例如[dir=in|out]未记录可选选项的信息。

如何实现?关于未记录的可能性的文档

如果需要,我可以使用VB脚本或Powershell 2.0。

小智 5

这些是我所知道的仅有的两个未记录的选项:

目录(方向)-入或出

状态-启用或禁用

我们可以构建一个netsh查询,该查询将关闭并且只缺少端口部分:

netsh advfirewall firewall show rule status=enabled name=all
Run Code Online (Sandbox Code Playgroud)

我们可以使用powershell的select-string查找端口要求(免责声明我不擅长正则表达式,因此可能会有更好的选择,但这似乎可行)

select-string -pattern "(LocalPort.*445)|(LocalPort.*Any)" -context 9,4
Run Code Online (Sandbox Code Playgroud)

选择字符串匹配规则445特有的任何内容,还匹配适用于任何端口的规则。context参数将为我们显示规则的其余部分(否则,我们将只获得LocalPort行)

最后的命令最终被

netsh advfirewall firewall show rule status=enabled name=all | select-string -pattern "(LocalPort.*445)|(LocalPort.*Any)" -context 9,4
Run Code Online (Sandbox Code Playgroud)

这对我有用,请让我知道它是否给您带来任何问题或您需要其他东西。