# get group members recursive, ignored circular nested group

param(

[parameter(mandatory=$true,position=0)]

$group

)

 

# get group members recursive, ignored circular nested group

param(

[parameter(mandatory=$true,position=0)]

$group

)

 

$Global:members = @()

$Global:list_members_extended = @()

 

function mygroup($name) {

            foreach ($groupe in (get-distributiongroupmember $name | group-object RecipientType)) {

                        if ($groupe.name -eq "MailUniversalDistributionGroup")     {                     

                                               $groupe.group | foreach {

                                                           if ($Global:list_members_extended -notcontains $_.name) {

                                                                                  $Global:list_members_extended += $_.name

                                                                                  mygroup $_.name

                                                           }

                                               }

                        } else {

                                   $Global:members += $groupe.group | select alias

                        }

            }         

}

mygroup $group

return ($members)