
以下の PowerShell コマンドを実行しようとすると、エラーが発生しました。
コマンド :
*PS cert:\currentuser\authroot> gci | where subject -like "UTTN「*
エラーは以下のとおりです:
Where-Object: パラメータ 'FilterScript' をバインドできません。タイプ "System.String" の "subject" 値をタイプ "System.Management.Automation.ScriptBlock" に変換できません。行:1 文字:12 + gci | where <<<< subject -like "UTTN" + 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」型の「subject」値を「System.Management.Automation.ScriptBlock」型に変換できません
string
これは、を に変換できないことを示しscriptBlock
、where
次のようなスクリプト ブロックが続く必要があることを意味します。{code here}
必ずエラー メッセージを読んで、その意味を解釈するようにしてください。
答え3
「-match」を使用して、件名のどこにでも存在する可能性のあるUTNを検索します。
gci | ?{$_.subject -match "UTN"}
「-like」を使用しても何も表示されない場合は、検索対象を引用符内のアスタリスクで囲んで入力してください。
gci | ?{$_.subject -like "*UTN*"}