如何将两个expandproperty数据相互连接



在我的脚本中,我使用expandproperty三次,这是为了获得正确的数据。在第一个展开属性中,我还必须使用数据。但我无法将其添加到选择行。

-expandproperty值中,我必须使用computerbalance,而在-expandproperty -secureemployer中,我不得不使用employeenumber

这是我的脚本:

Invoke-RestMethod -Uri $Url_budgetid -Method Get -Headers $header_process | Select-Object -ExpandProperty value | Select employee | Select-Object -ExpandProperty Employee | Select-Object -ExpandProperty SecureEmployee 

我希望你能帮助我。

您可以使用.dotProperty方法来使用对象的属性。使用[PSCustomObject]@{Key1=Value1;Key2=Value2;...}方法,您可以将感兴趣的属性只累积到一个对象中。

以下是示例数据及其简化为对象列表的示例。

$data = @'
[    {
computer: {balance : 180, name: "Computer1"},
employee: {displayName: "Juan Carlos Rodrigez", employeeNumber: "Emp123", telephone: "+1234567890"}
},
{
computer: {balance : 220, name: "Computer2"},
employee: {displayName: "Natalia Marisa Oreiro", employeeNumber: "Emp456", telephone: "+987654321" }
},
{
computer: {balance : 90, name: "Computer3"},
employee: {displayName: "Don Pedro", employeeNumber: "Emp000", telephone: "+77777777777" }
}
]
'@ | ConvertFrom-Json

$warningLine = 200
$dataSimplified = $data | 
ForEach-Object { return [PSCustomObject]@{ 
ComputerBalance = [Int]::Parse($_.computer.balance);  # we can use values 'As Is'
EmployeeNumber = $_.employee.employeeNumber.ToUpper(); # We can translate or modify falues
FirstName = $_.employee.displayName.Split(' ')[0]; # We can use them partially
ShouldWarnLowBalance = $_.computer.balance -le $warningLine } # We can create new properties based on what we whant
} |
Where-Object { $_.ShouldWarnLowBalance -eq $true } # We can right then filter output depending on our generated values

#> $dataSimplified
#
#ComputerBalance EmployeeNumber FirstName ShouldWarnLowBalance
#--------------- -------------- --------- --------------------
#            180 EMP123         Juan                      True
#             90 EMP000         Don                       True

我使用powershell已经5年多了,从未使用过-ExpandProperty语法。

最新更新