Внешние группы ADGroup и ADGroupMember
Я пытаюсь получить выход CSV от ADGroupMembers в ADGroups, как это:
имя_группы,member1,member2,member3...
Я использую следующий скрипт:
Get-ADGroup -Filter * -SearchBase "OU=myou,OU=myou,DC=domain,DC=local" | group {$_.name} | % {
$group = $_.name
$member = (Get-ADGroupMember -Identity $group |
select @{n='Group';e={$group}}, @{n='Member';e={$_.Name}}) -join ','
'{0},{1}' -f $group,$member
} | Out-File 'out-file-try.csv'
Проблема в том, что мой вывод не показывает участников:
Группа 1,,,,,,,,,,,,,,
Group2,,
Group3,,
Group4,,,,,,,,
Group5,,,,,,,,,,
Кто-нибудь может помочь?
Большое спасибо!
1 ответ
Ваше использование select-object и -join на самом деле не делает то, что вы думаете, что они делают. Ваш оператор выбора объекта создает массив объектов примерно так:
Group Member
---------------
G1 M1
G1 M2
И так далее. Эти объекты основаны на типе pscustomobject. Этот тип оценивается как [string]::Empty
в строковом контексте (что происходит, когда вы используете оператор -join)
Измените объект select в конвейере get-adgroupmember на select-object -expandproperty name
и оставьте все остальное, как есть, и вы должны получить желаемый результат.