ошибка оболочки power: не удается привязать параметр

ошибка оболочки power: не удается привязать параметр

Когда я пытаюсь выполнить следующую команду PowerShell, я получаю ошибку.

Команда :

*PS cert:\currentuser\authroot> gci | где тема -like "УТН"*

Ошибка ниже:

Where-Object : Невозможно привязать параметр 'FilterScript'. Невозможно преобразовать значение "subject" типа "System.String" в тип "System.Management.Automation.ScriptBlock". В строке:1 символ:12 + gci | где <<<< subject -like "УТН" + CategoryInfo : InvalidArgument: (:) [Where-Object], ParameterBindingException + FullyQualifiedErrorId : Невозможно преобразоватьАргументБезСообщения,Microsoft.PowerShell.Commands.WhereObjectCommand

Я использую Windows PowerShell ISE.
Буду очень признателен за работоспособное решение.

решение1

Похоже, вы используете PowerShell Vs.2, в этой версии не было поддержки нового where syntax.

В PowerShell версии 1 и 2 используйте:

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

Вам необходимо заключить выражение в фигурные скобки и сослаться на все свойства с $_.префиксом.

решение2

Питер Хандорф уже ответил на этот вопрос, но я хотел бы подробнее остановиться на сообщении об ошибке, которое вы получили:

Невозможно преобразовать значение "subject" типа "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*"}

Связанный контент