Function Get-VAGroupMembers { #Fonction qui retourne tous les users d'un groupe et ces sousgroupe. #La fonction retourne un array #Utilisation: Get-VAGroupMembers -Group "GRP_SHR_FINANCE" PARAM ( [String]$Group ) BEGIN{ $strFilter = "(&(objectCategory=group)(name=" + $Group + "))" $objAD = New-Object System.DirectoryServices.DirectoryEntry $objSearcher = New-Object System.DirectoryServices.DirectorySearcher -Argumentlist $objAD,$strFilter $objGroup = $objSearcher.FindOne() $DNGroup = ($objGroup.GetDirectoryEntry()).DistinguishedName $objGroup = New-Object DirectoryServices.DirectoryEntry("LDAP://" + $DNGroup) $arrMembers = @() } PROCESS{ If ($objGroup.objectclass[1] -eq 'group') { $objGroup.Member | ForEach { $objMember = new-object DirectoryServices.DirectoryEntry("LDAP://" + $_) If ($objMember.ObjectClass[1] -eq 'group') { $arrMembers += Get-VaGroupMembers -Group ($objMember.cn).ToString() } Else { $arrMembers += ($objMember.SamAccountName).ToString() } } } Else { Write-Host -ForegroundColor Red "$Group n'est pas un groupe!" } } END{ Return $arrMembers } }