想了解为什么Powershell参数在某些情况下不起作用



我的目标是通过给定的过滤器列出所有可用的防火墙规则,这对Powershell来说是全新的。

观察到一个奇怪的行为,这让我问是否有我不知道的隐藏的东西。我可能会使用Pipes来实现同样的目的,但我感兴趣的是,如果有什么原因可以理解。

Get-NetFirewallRule -DisplayGroup n*

功能符合预期

Get-NetFirewallRule -DisplayName n*

功能符合预期

但当我添加/组合Enabled True时,DisplayName会生成这样一条错误消息,DisplayGroup会生成一个结果。

无法使用指定的命名参数解析参数集。

  • Get-NetFirewallRule-DisplayName n*-Enabled True
Get-NetFirewallRule -Enabled True | ? DisplayName -like nsc*

正在运行

Windows 10计算机上的PS版本"5.1.177"。

这应该有效:

Get-NetFirewallRule | ? {($_.DisplayName -like "nsc*") -and ($_.Enabled -eq $true)}

最新更新