power shell 错误:无法绑定参数

power shell 错误:无法绑定参数

当我尝试执行以下 PowerShell 命令时,出现错误。

命令 :

*PS cert:\currentuser\authroot> gci | 其中主题-like“联合网络“*

错误如下:

Where-Object:无法绑定参数“FilterScript”。无法将“System.String”类型的“subject”值转换为“System.Management.Automation.ScriptBlock”类型。在第 1 行,字符:12 + gci | 其中 <<<< subject -like "联合网络“+ CategoryInfo:InvalidArgument:(:) [Where-Object],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.WhereObjectCommand

我正在使用 Windows PowerShell ISE。
非常感谢一个可行的解决方案

答案1

看起来您正在使用 PowerShell Vs.2,该版本不支持新的where syntax

在 PowerShell 版本 1 和 2 中,使用:

gci | where {$_.subject -like "UTN"}

您需要在表达式周围加上花括号,并引用带有$_.前缀的任何属性。

答案2

Peter Hahndorf 已经回答了这个问题,但我想扩展一下您收到的错误消息:

无法将“System.String”类型的“主题”值转换为“System.Management.Automation.ScriptBlock”类型

这就是说它不能将 a 转换string为 a scriptBlock,这意味着where需要跟一个像这样的脚本块:{code here}

请务必阅读错误消息并尝试解释其含义。

答案3

使用“-match”查找可能位于主题中任何地方的 UTN

gci | ?{$_.subject -match "UTN"}

如果您使用“-like”但没有显示任何内容,请将您要查找的内容放在引号内的星号之间。

gci | ?{$_.subject -like "*UTN*"}

相关内容