当我试图执行下面的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*"}