电源shell错误:无法绑定参数

当我试图执行下面的PowerShell命令,我得到错误。

命令 :

* PS证书:\ currentuser \ authroot> gci | 主题式的“ UTN ”*

错误如下:

Where-Object:无法绑定参数“FilterScript”。 无法将types“System.String”的“主题”值转换为键入“System.Management.Automation.ScriptBlock”。 在行:1 char:12 + gci | 其中<<<< subject-like“ UTN ”+ CategoryInfo:InvalidArgument:(:) [Where-Object],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.WhereObjectCommand

我正在使用Windows PowerShell ISE。
一个可行的解决scheme是高度赞赏

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

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

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

您需要在expression式周围放置大括号,并使用$_.引用任何属性$_. 字首。

Peter Hahndorf已经回答了这个问题,但是我想扩展你收到的错误信息:

不能将types“System.String”的“主题”值转换为键入System.Management.Automation.ScriptBlock“

这就是说它不能将一个string转换成一个scriptBlock ,这意味着需要在脚本块后面跟着这样的{code here}{code here}

请务必阅读错误信息并尝试解释它们的含义。

使用“-match”查找可能在主题中的任何位置的UTN

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

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

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