특정 텍스트의 필드를 구문 분석하고 사용자 지정 개체를 반환하는이 함수를 만들었습니다.이 함수는 왜 파이프 된 변수와 함께 작동하지 않습니까?
Get-MachineUser -VMArray $PassedArray
구문을 사용하면 모든 것이 잘 작동하지만 배열을 파이프하면 작동하지 않습니다. $PassedArray | Get-MachinesUser
.
팀원 중 누군가와 일하면서 배열을 전달할 때 배열의 마지막 항목 만 처리한다는 것을 알았습니다. 나는 다른 문법을 사용하는 것에 신경 쓰지 않지만 파이핑이 작동하지 않는 원인이 무엇인지 궁금하다.
function Get-MachinesUser{
param (
[parameter(Mandatory=$true, ValueFromPipeline=$true)]
[System.Object[]] $VMArray
)
foreach($vm in $VMArray){
if($VM.Description -match '.*(ut[A-Za-z0-9]{5}).*'){
[PSCustomObject]@{
"Name" = $vm.Name
"User" = $Matches[1]
}
}
}
}
어떤 객체 유형이 $ PassedArray입니까, 어떤 객체 유형이 포함되어 있습니까 (문자열, 객체 모음, 기타)? –
문자열 배열입니다. – finalbroadcast