如何使用 netsh 查找使用模式的规则

Ach*_*les 15 find netsh windows-firewall

我想知道 Microsoft 中是否有人遇到过无法记住规则名称的情况!
netsh advfirewall firewall show rule只接受1名,没有模式匹配设施,可在netsh的,以帮助使用图案像发现一个规律"SQL*"^SQL.+$
使用节目,name=all就可以列出所有的规则,但我无法找到一个Windows的实命令行grep的工具。

我希望能够运行这样的命令:

netsh advfirewall firewall show rule name=sql*
Run Code Online (Sandbox Code Playgroud)

这可能吗?

ton*_*oth 12

在 PowerShell 中运行:

$fw=New-object -comObject HNetCfg.FwPolicy2    
$fw.rules | findstr /i "whaturlookingfor"
Run Code Online (Sandbox Code Playgroud)

更好的是:

$fw.rules | select name | select-string "sql"
Run Code Online (Sandbox Code Playgroud)

  • 此外,您只能选择规则的某些属性。`$fw.Rules | where-object {$_.Enabled -eq $true -and $_.Direction -eq 1} | 选择对象 - 属性名称、方向、启用` (3认同)

小智 6

这是我能做的最好的。有谁知道如何更进一步?喜欢从结果中删除/减去规则名称?

netsh advfirewall firewall show rule name=all | find "Rule Name:" | find "NameLookingFor"
Run Code Online (Sandbox Code Playgroud)


bco*_*ody 6

在 Windows 10 上,当我执行 时,我收到一条警告netsh advfirewall,指出未来的 Windows 版本可能不再支持该功能,应该使用 PowerShell。幸运的是,OP 想要做的事情在 PowerShell 中很简单:

Get-NetFirewallRule -DisplayName "SQL*"

我有 1000 多个防火墙规则,这些规则是由我想要删除的随机命名的可执行文件创建的。以下命令使这很容易做到:

Remove-NetFirewallRule -DisplayName "*mongod.exe"