Power Shell 오류: 매개변수를 바인딩할 수 없습니다.

Power Shell 오류: 매개변수를 바인딩할 수 없습니다.

아래 PowerShell 명령을 실행하려고 할 때 오류가 발생했습니다.

명령은 다음과 같습니다.

*PS 인증서:\현재사용자\authroot> gci | 여기서 주제 -like "UTN"*

오류는 다음과 같습니다.

Where-Object: 'FilterScript' 매개변수를 바인딩할 수 없습니다. "System.String" 유형의 "주체" 값을 "System.Management.Automation.ScriptBlock" 유형으로 변환할 수 없습니다. 행:1자:12 + gci | 여기서 <<<< 주제 -like "UTN" + 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" 유형의 "주체" 값을 System.Management.Automation.ScriptBlock" 유형으로 변환할 수 없습니다.

string이는 a를 a로 변환할 수 없다는 뜻입니다 scriptBlock. 이는 where다음과 같은 스크립트 블록이 따라와야 함을 의미합니다.{code here}

오류 메시지를 읽고 그 의미를 해석해 보십시오.

답변3

주제의 어느 곳에나 있을 수 있는 UTN을 찾으려면 "-match"를 사용하십시오.

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

"-like"를 사용했는데 아무 것도 표시되지 않으면 따옴표 안의 별표 사이에 찾고 있는 내용을 입력하세요.

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

관련 정보