我創建了這個函數來解析特定文本的字段並返回一個自定義對象。爲什麼這個函數不能使用管道變量?
一切工作正常,如果我使用的語法,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