Присоединитесь к двум результатам в Powershell

У меня есть два CMDlets, которые возвращают списки объектов. Каждый возвращает объекты типа SPSolution, который содержит свойство Id, другие объекты возвратов типа SPFeature со свойством SolutionId.

Теперь я хочу присоединиться/объединить к этим данным что-то вроде этого:

$f = Get-Feature
$s = Get-Solution
$result = <JOIN> $f $s
          <ON> $f.SolutionId = $s.Id
          <SELECT> FeatureName = $f.DisplayName, SolutionName = $s.Name
6
задан Hinek 20 April 2010 в 09:17
поделиться

2 ответа

Это неэффективно и предполагает наличие PowerShell 2, но должен выполнить свою работу:

$solutions = Get-Solution

foreach ($f in Get-Feature) {

    $filteredSolutions = $solutions |
        where-object { $_.Id -eq $f.SolutionId }

    foreach ($s in $filteredSolutions) {
        new-object PSObject -prop @{
            FeatureName = $f.DisplayName
            SolutionName = $s.Name
        }
    }
}

Обратите внимание, что у меня не установлен SharePoint, поэтому я боюсь, что не смогу это проверить!

5
ответ дан 9 December 2019 в 22:31
поделиться

Вот однострочник, который должен помочь (полагается на вложенные конвейеры):

Get-Feature | % {$f = $_; Get-Solution | ? {$f.SolutionId -eq $_.Id} | 
                 Select Name,@{n='FeatureName';e={$f.DisplayName}}}
2
ответ дан 9 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: