首页 > 解决方案 > 使用注册表查看 ICMP 类型设置

问题描述

我想看看我的系统上允许/启用了哪些 ICMP 类型。

我发现在这里您可以设置您的 ICMP,但是否有可能在注册表中查看这些设置或通过 powershell 命令获取它们?

标签: windowspowershellregistryicmp

解决方案


用于Get-NetFirewallRule枚举防火墙规则。用于Get-NetFirewallPortFilter获取有关这些规则过滤内容的详细信息。过滤 ICMP 协议规则的输出,然后选择 ICMP 类型。

Get-NetFirewallRule -Enabled True -Action Allow |
    Get-NetFirewallPortFilter |
    Where-Object { $_.Protocol -in 'icmpv4', 'icmpv6' } |
    Select-Object -Expand IcmpType -Unique

替换AllowBlock枚举阻止规则。

如果Get-NetFirewallRule找不到规则,它将引发错误。您可以通过添加-ErrorAction SilentlyContinue到命令来抑制它。

请注意,这些*-NetFirewall*cmdlet 是随 Windows Server 2012 引入的,在早期版本中不可用。对于那些你需要使用netsh命令的人。使用类似这样的东西来枚举防火墙规则

netsh advfirewall firewall show rule all

并解析输出以获取相关信息。


推荐阅读