когда я пытаюсь выполнить приведенную ниже команду 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}
Обязательно прочтите сообщения об ошибках и попытайтесь понять, что они означают.