Внешние группы 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 и оставьте все остальное, как есть, и вы должны получить желаемый результат.

Другие вопросы по тегам