Abhijit
Abhijit

Reputation: 11

Get AD group members using powershell

I am trying to export groups and their members in following format using powershell. can somebody help me out here.

Format in CSV:

Group Name | Members

g1 M1

g1 M2

g2 M1

g2 M2

g3 M1

I have got output in CSV format but I am not able to split it out properly.

1st row == DN,member,sAMAccountName

2nd row == CN=DSO_ALL_**_AMER_Member_P_17700,OU=PersonalGroups,DC=**,DC=**,DC=**,DC=**,"CN=M123456,OU=Personal,OU=SG,OU=CS,DC=gbl,DC=**,DC=**,DC=**;CN=M123458,OU=Personal, OU=SG,OU=CS,DC=gbl,DC=**,DC=**,DC=**,DSO_ALL-_**_AMER_Member_P_17700

From the 2nd row I need both member id and group name i.e "M123456" and "M123458" and group name "DSO_ALL-_**_AMER_Member_P_17700"

Upvotes: 1

Views: 3052

Answers (1)

Vesper
Vesper

Reputation: 18747

Get-ADGroup | Get-ADGroupMember is a good start, however, Get-ADGroupMember does not return group identity, which you pretty much need here. So, you need a little pre-processing and post-processing.

$groups=get-adgroup -filter *
$data=@()
foreach ($group in $groups) {
    $gid=$group.name
    foreach ($member in (get-adgroupmember -id $group)) {
        # now we have both group and member, make an object
        $obj=new-object psobject
        $obj | add-member -type noteproperty -name "Group Name" -value $gid
        $obj | add-member -type noteproperty -name "Member" -value ($member.name)
        $data+=$obj
    }
}
$data | export-csv file.csv -notypeinformation -encoding utf8

Then you parse your properly prepared CSV. In case you need other attributes, add a respective line of $obj | add-member -type noteproperty.

Upvotes: 0

Related Questions