
아래 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*"}