Here is a nice little script that connects to your Office365 environment, reads the contents of all distribution groups both static and dynamic and exports the filtered contents into a CSV file thus allowing you to apply filters etc in Excel.
<# .NOTES =========================================================================== Created with: SAPIEN Technologies, Inc., PowerShell Studio 2015 v4.2.85 Created on: 12/06/2015 9:47 a.m. Created by: Maurice Daly Filename: GetDistributionGroupMembers.ps1 =========================================================================== .DESCRIPTION List all members of all static and dynamic distribution groups from your Office 365 portal and export the contents into a CSV. #> $UserCredential = Get-Credential $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection Import-PSSession $Session $DistributionGroups = Get-DistributionGroup $DynDistributionGroups = Get-DynamicDistributionGroup $FilePath = "C:\DistributionGroupMembers.csv" # Read Static Distribution Groups foreach ($DistributionGroup in $DistributionGroups) { Get-DistributionGroupMember $DistributionGroup.PrimarySMTPAddress | Sort-Object name | Select-Object @{ Label = "Distribution Group"; Expression = { $DistributionGroup.name } }, Name | Export-Csv -Path $FilePath -Delimiter ";" -NoTypeInformation -Append -Force } # Read Dynamic Distribution Groups foreach ($DynDistributionGroup in $DynDistributionGroups) { Get-Recipient -RecipientPreviewFilter $DynDistributionGroup.RecipientFilter | Sort-Object name | Select-Object @{ Label = "Distribution Group"; Expression = { $DynDistributionGroup.name } }, Name | Export-Csv -Path $FilePath -Delimiter ";" -NoTypeInformation -Append -Force } # Close Remote PS Session Get-PSSession | Remove-PSSession
Add comment