Seu problema tem algo a ver com $InstanceID
tipo (tente $InstanceID.Gettype()
em seu script). O próximo snippet de código pode ajudar:
$InstanceIDs = -split $(
Get-NetFirewallPortFilter |
Where { $_.LocalPort -Eq "RPC" } |
Format-Table -Property InstanceID -HideTableHeaders |
Out-String
)
Show-NetFirewallRule |
Where { $_.InstanceID –In $InstanceIDs} |
ForEach-Object {
if ($_.Name) {
"{0} {1} {2}" -f $_.Name, '==', $_.DisplayName
}
}
Observe que $InstanceIDs
é uma matriz de strings no snippet de código acima; Além disso, a propriedade $_.Name
em Show-NetFirewallRule
corresponde a InstanceID
one em Get-NetFirewallPortFilter
.