Exchange Online: Script Powershell para exportar os membros de todos os grupos de distribuição

Olá a todos!

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.

Nenhum comentário: