You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么PowerShell中Get-NetFirewallRule组合特定参数会报错?

PowerShell防火墙规则查询报错原理说明

你遇到的报错本质是PowerShell Cmdlet的参数集(Parameter Set)互斥限制,和防火墙本身的隐藏规则无关:

  • PowerShell的Cmdlet允许开发者定义多组互斥的参数集合,用来限定不同查询场景下的合法参数组合,避免逻辑冲突。你可以执行Get-Command Get-NetFirewallRule -Syntax查看所有官方定义的合法参数组合:
    • -DisplayName参数属于独立的名称查询参数集,该参数集设计时没有开放-Enabled作为可搭配参数,两者同时传入时PowerShell无法匹配到任何一组合法参数集,因此抛出参数解析错误。
    • -DisplayGroup参数所属的组查询参数集允许和-Enabled参数搭配使用,因此组合查询不会报错。
  • 管道写法可以正常执行的原因是:
    你拆分了两步操作,第一步用Get-NetFirewallRule -Enabled True先查询到所有已启用的防火墙规则,第二步用Where-Object(?是它的别名)在已经返回的结果集里做DisplayName的模糊匹配,这一步是PowerShell层面的内存过滤,不需要调用Cmdlet的参数校验逻辑,自然不会触发参数集错误。

内容的提问来源于stack exchange,提问作者Ali Avcı

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 09:24:09