Как связать данные 2 expandproperty друг с другом
В моем сценарии я использую expandproperty
3 раза, чтобы получить правильные данные. В первом свойстве расширения я также должен использовать данные. Но я не могу добавить это в строку выбора.
В -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
Я надеюсь, что вы можете мне помочь.
1 ответ
Вы можете использовать .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
синтаксис.