Powershell export-csv显示System.Object [],“ System.Object []”

问题描述

我想将Powershell脚本导出到csv,仅在导出文件时,我在csv文件中获得标头,但是数据包含systemobject。

#------- Opvragen token tiptrack -------
#Dit is de URL waar de token voor tiptrack wordt opgevraagd.
$Url_token="https://tiptracknext-staging-login.indicia.nl/oauth2/aus342go9hNphcHXM0i7/v1/token"

#Dit is de body die mee wordt gestuurd in de request,deze @R_28_4045@ie staat gelijk aan de data in de post request vanuit de handleiding.
$Data_token = @{
grant_type="client_credentials"
client_id="123457"
client_secret="123456"
scope="eapi"
}

$token_tiptrack=Invoke-RestMethod -Method Post -Uri $Url_token -ContentType "application/x-www-form-urlencoded" -Body $Data_token

#------- Opvragen Employerbudgetsid -------
#Dti is de URL waarna de GET request wordt gestuurd om het employerid te kunnen.
$Url_budgetid='https://staging.tiptrack.nl/Tiptrack.Employer.ApI/Odata/EmployeeBudgets?$expand=Employee($expand=SecureEmployee)&$top=5'

#Dit is header die mee wordt gestuurd in de request. Deze data in deze header staat gelijk aan de data in de API handleiding.
$header_process = @{
Authorization='Bearer '+$token_tiptrack.access_token
"accept"="application/json"
}

#Vanuit het uploaden van het bestand krijgen we een reactie van de server,in deze reactie staat het upload id,deze id hebben we nodig om het bestand te kunnen verwerken. 
$data = Invoke-RestMethod -Uri $Url_budgetid -Method Get -Headers $header_process 


$exportdata = $data | 
    ForEach-Object { return [PSCustomObject]@{ 
        EmployeeNumber = $_.Value.Employee.SecureEmployee.EmployeeNumber;
        ComputedCurrentBalanceAmount =($_.Value.ComputedCurrentBalanceAmount) ;
        }  } 

$exportdata  | Select EmployeeNumber,ComputedCurrentBalanceAmount | Export-Csv C:\afas\test3.csv -NoType@R_28_4045@ion

这是我想要的输出

# EmployeeNumber,ComputedCurrentBalanceAmount
# EMP1,100,00
# EMP2,250,49
# EMP3,450,00 

解决方法

提供的输出数据未列出SecureEmployee属性的任何数据。因此,我假设您的代码中的属性层次结构正确。 Value属性包含您需要迭代的Employee对象数组。

$exportdata = $data.Value | ForEach-Object { 
    [PSCustomObject]@{ 
        EmployeeNumber = $_.Employee.SecureEmployee.EmployeeNumber
        ComputedCurrentBalanceAmount = $_.ComputedCurrentBalanceAmount
    }
} 

$exportdata | Export-Csv C:\afas\test3.csv -NoTypeInformation