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

netsh show rules filtered by local port

此处命令允许显示所有规则,

    netsh advfirewall firewall show rule dir=in name=all

我要过滤

我阅读了文档,我可以看到,例如,可选选项 [dir=in|out] 没有记录。

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

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

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

dir(方向)- 进或出

状态 - 启用或禁用

我们可以构建一个 netsh 查询,它接近并且只是缺少端口部分:

netsh advfirewall firewall show rule status=enabled name=all

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

select-string -pattern "(LocalPort.*445)|(LocalPort.*Any)" -context 9,4

select 字符串匹配任何特定于规则 445 的内容,以及适用于任何端口的规则。 context 参数将为我们显示规则的其余部分(否则我们只会得到 LocalPort 行)

最后的命令是

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

这对我有用,如果它给您带来任何问题或您想要其他东西,请告诉我。