Muitas vezes precisamos exportar os membros de todos os grupos de distribuição para alguma tipo de manutenção, consulta, etc...
O script que compartilho com vocês irá ajudar muito no dia a dia.
Ele ira exportar para um arquivo .csv separando em: Distribution Group, DisplayName, Distribution Group Email, Member DisplayName, Member Email, Member Type.
Segue o exemplo de um arquivo gerado:
![]() |
Arquivo gerado |
Segue script:
$OutputFile = "DistributionGroupMembers.csv" #Nome do arquivo de saída | |
$arrDLMembers = @{} | |
Connect-ExchangeOnline | |
#Cabeçalho do arquivo de saída | |
Out-File -FilePath $OutputFile -InputObject "Distribution Group DisplayName,Distribution Group Email,Member DisplayName, Member Email, Member Type" -Encoding UTF8 | |
#Get os grupos de distribuição | |
$objDistributionGroups = Get-DistributionGroup -ResultSize Unlimited | |
Foreach ($objDistributionGroup in $objDistributionGroups) | |
{ | |
write-host "Processing $($objDistributionGroup.DisplayName)..." | |
#Get members do grupo | |
$objDGMembers = Get-DistributionGroupMember -Identity $($objDistributionGroup.PrimarySmtpAddress) | |
write-host "Found $($objDGMembers.Count) members..." | |
Foreach ($objMember in $objDGMembers) | |
{ | |
Out-File -FilePath $OutputFile -InputObject "$($objDistributionGroup.DisplayName),$($objDistributionGroup.PrimarySMTPAddress),$($objMember.DisplayName),$($objMember.PrimarySMTPAddress),$($objMember.RecipientType)" -Encoding UTF8 -append | |
write-host "`t$($objDistributionGroup.DisplayName),$($objDistributionGroup.PrimarySMTPAddress),$($objMember.DisplayName),$($objMember.PrimarySMTPAddress),$($objMember.RecipientType)" | |
} | |
} | |
Por hoje é isso.
Breno Padovan.