Как пользоватьсясобирать информацию на 2 foreach - PullRequest
0 голосов
/ 11 октября 2018

Мне нужно объединить результаты 2 foreach, чтобы я мог запустить хороший отчет - это скрипт:

$users = Get-ADGroupMember -Identity 'TESTGRoup'
$result1 = ForEach ($user in $users){

    New-Object -TypeName psobject -Property @{
        User   = $user
        CN     = $User.SamAccountName
        Domain = $user.name
        Name   = $user.SID
    }
}

$Result4 = Get-ADGroupMember 'TESTGRoup' |
    Where-Object {$_.objectClass -eq 'User'} |
    Get-AdUser |
    ForEach {
        Get-MsolUser -UserPrincipalName $_.UserPrincipalName | Select UserprincipalName, Blockcredential  
        $result7 = New-Object -TypeName psobject -Property @{
            User1   = $Result4.UserPrincipalName
            CN1     = $Result4.BlockCredential
        }
    }

Конечный результат - все пользователи объединены в одну строку, а не включенытаблица.

Извините за формат кода - не знаю, как его лучше представить.

Спасибо

1 Ответ

0 голосов
/ 11 октября 2018

Если я правильно понимаю ваш вопрос, приведенный ниже код сгенерирует объекты с необходимыми вам агрегированными данными по одному объекту на пользователя:

#requires -Version 3
$results = foreach ($user in Get-ADGroupMember -Identity 'TESTGRoup')
{
    $user | ? objectClass -eq User | Get-ADUser | % {
        $msol = Get-MsolUser -UserPrincipalName $PSItem.UserPrincipalName

        [pscustomobject]@{
            'User'   = $user
            'CN'     = $user.SamAccountName
            'Domain' = $user.Name
            'Name'   = $user.SID
            'User1'  = $msol.UserPrincipalName
            'CN1'    = $msol.BlockCredential
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...