Назад | Перейти на главную страницу

Ошибка powershell: невозможно привязать параметр

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

Команда :

* Сертификат PS: \ currentuser \ authroot> gci | где предметный "UTN"*

Ошибка ниже:

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

Я использую Windows PowerShell ISE.
рабочее решение высоко ценится

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

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

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

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

Используйте "-match", чтобы найти UTN, который может быть где угодно в теме.

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

Если вы используете «-like» и ничего не появляется, поместите то, что вы ищете, между звездочками внутри кавычек.

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

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

Невозможно преобразовать значение "subject" типа "System.String" в тип System.Management.Automation.ScriptBlock "

Это говорит о том, что он не может преобразовать string в scriptBlock, откуда следует, что where за ним должен следовать блок скрипта, например: {code here}

Обязательно прочтите сообщения об ошибках и попытайтесь понять, что они означают.