Powershell Join - PullRequest
       29

Powershell Join

1 голос
/ 19 января 2012

У меня есть запрос AD для экспорта всех групп, который работает отлично.

Get-QADUser -searchRoot $OuDomain -SizeLimit 0 
| Select-Object dn, sAMAccountName, @{Name="Groups";Expression={(Get-QADMemberOf $_ 
| Select-Object -expandProperty Name) -join ";"}} 
| export-csv $FilePath | Sort-Object SamAccountName

Результат:

DN        SamAccountName    Groups
abc.com   user1             group1;group2;group3

Как экспортировать вышеуказанные результаты в столбцы, например:

DN       SamAccountName  Groups
abc.com  user1           group1
         user1           group2
         user1           group3

Пожалуйста, проверьте http://pastebin.com/JMZ863YY

1 Ответ

1 голос
/ 20 января 2012

Вместо -join, целью которого является сохранение записи от одного (пользователя) ко многим (группе), вам нужно сделать что-то вроде этого (не проверено). Попробуйте:

$users = Get-QADUser -searchRoot $OuDomain -SizeLimit 0
$users | Sort-Object SamAccountName | % {
    $user = $_ | Select-Object dn, sAMAccountName
    if ($lastDomain -eq $user.dn) {
        $lastDomain = ""
    } else {
        $lastDomain = $user.dn
    }
    $groups = Get-QADMemberOf $_ | Select-Object -expandProperty Name
    $groups | % {
        $user2 = New-Object -TypeName PsObject -Property @{
                "Domain" = $lastDomain
                "sAMAccountName" = $user.sAMAccountName
                "Group" = $_
            } 
        $user2
    }
} | export-csv $FilePath
...