Exporter les membres du groupe de distribution Microsoft 365 au format CSV avec PowerShell
Il existe de nombreux groupes de distribution et nous aimons rassembler tous les membres et propriétaires. Nous pouvons parcourir les groupes du centre d'administration Microsoft 365 individuellement, mais cela prend beaucoup de temps. Automatisons donc la tâche et exportons un rapport avec tous les membres, propriétaires et plus d'informations. Dans cet article, vous apprendrez comment exporter en masse les membres du groupe de distribution Microsoft 365 vers un fichier CSV avec un script PowerShell.
Rechercher des groupes de distribution Microsoft 365
Pour rechercher tous les groupes de distribution dans Microsoft 365, procédez comme suit :
Connectez-vous au centre d'administration Microsoft Exchange
Cliquez sur Destinataires > Groupes.
Cliquez sur le type de groupe pour lister les groupes de distribution
Examinons l'étape suivante sur la façon d'exporter les membres du groupe de distribution Microsoft 365 avec PowerShell.
Obtenez les membres du groupe de distribution Microsoft 365 avec le script PowerShell
Le PowerShell Export-M365DGMembers.ps1 obtiendra tous les groupes de distribution Microsoft 365, y compris leurs membres, et les exportera vers un fichier CSV.
Pour chaque groupe de distribution Microsoft 365, il rassemble les informations suivantes :
Afficher un nom
Description
AdresseSmtpPrimaire
AdresseSmtpsecondaire
Alias
Type de groupe
-
Type de destinataire
SyncedFromOnPremises
Membre
MemberPrimarySmtpAddress
Type de membre
Les propriétaires
HiddenFromAddressLists
MemberJoinRestriction
MemberDepartRestriction
RequireSenderAuthenticationEnabled
-
AcceptMessagesOnlyFrom
Envoyer de la part de
Envoyer comme
QuandCréé
QuandModifié
Remarque : Voulez-vous obtenir une liste de tous les membres du groupe de distribution dans Exchange Server ? Lisez l'article Exporter les membres d'un groupe de distribution au format CSV avec PowerShell.
1. Installez le module Microsoft Graph PowerShell
Avant de pouvoir aller plus loin et obtenir les membres et propriétaires Microsoft 365 de tous les groupes de distribution, nous devons installer le module Microsoft Graph PowerShell.
Démarrez Windows PowerShell en tant qu'administrateur et exécutez les commandes ci-dessous.
Install-Module Microsoft.Graph -ForceInstall-Module Microsoft.Graph.Beta -AllowClobber -ForceImportant : installez toujours les modules Microsoft Graph PowerShell et Microsoft Graph Beta PowerShell. En effet, certaines applets de commande ne sont pas encore disponibles dans la version finale et ne fonctionneront pas. Mettez à jour les deux modules vers la dernière version avant d'exécuter une applet de commande ou un script pour éviter les erreurs et les résultats incorrects.
2. Préparez le script PowerShell d'exportation des membres du groupe de distribution Microsoft 365
Créez deux dossiers sur le lecteur (C:) :
Température
Scripts
Téléchargez le script PowerShell Export-M365DGMembers.ps1 et placez-le dans le dossier C:\scripts. Le script exportera le fichier CSV vers le dossier C:\temp.
Assurez-vous que le fichier est débloqué pour éviter les erreurs lors de l'exécution du script. Pour en savoir plus, consultez l'article Erreur non signée numériquement lors de l'exécution du script PowerShell.
Une autre option consiste à copier et coller le code ci-dessous dans le Bloc-notes. Donnez-lui le nom Export-M365DGMembers.ps1 et placez-le dans le dossier C:\scripts.
<#
.SYNOPSIS
Export-M365DGMembers.ps1
.DESCRIPTION
Export Microsoft 365 Distribution Group Members to CSV file with PowerShell.
.LINK
www.alitajran.com/export-microsoft-365-distribution-group-members-to-csv-powershell/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 03/21/2024 - Initial version
V1.10, 04/20/2024 - Added MemberType property and report members on seperate row
#>
# CSV file export path
$Csvfile = "C:\temp\M365DGMembers.csv"
# Connect to Exchange Online PowerShell
Connect-ExchangeOnline
# Get all distribution groups
$Groups = Get-DistributionGroup -ResultSize Unlimited
# Create an empty array to store the custom objects
$customObjects = @()
# Set up the progress bar parameters
$totalGroups = $Groups.Count
$currentGroup = 0
# Loop through distribution groups and store custom objects in the array
foreach ($Group in $Groups) {
$GroupDN = $Group.DistinguishedName
$DisplayName = $Group.DisplayName
$Description = $Group.Description
$PrimarySmtpAddress = $Group.PrimarySmtpAddress
$SecondarySmtpAddress = $Group.EmailAddresses | Where-Object { $_ -clike "smtp*" } | ForEach-Object { $_ -replace "smtp:", "" }
$GroupType = $Group.GroupType
$RecipientType = $Group.RecipientType
$IsDirSynced = $Group.IsDirSynced
$Members = Get-DistributionGroupMember $GroupDN -ResultSize Unlimited
$Owner = $Group.ManagedBy | ForEach-Object { (Get-Recipient $_ -ErrorAction SilentlyContinue).DisplayName }
$Alias = $Group.Alias
$HiddenFromAddressLists = $Group.HiddenFromAddressListsEnabled
$MemberJoinRestriction = $Group.MemberJoinRestriction
$MemberDepartRestriction = $Group.MemberDepartRestriction
$RequireSenderAuthenticationEnabled = $Group.RequireSenderAuthenticationEnabled
$AcceptMessagesOnlyFromIDs = $Group.AcceptMessagesOnlyFrom
$AcceptMessagesDisplayNames = $AcceptMessagesOnlyFromIDs | ForEach-Object { (Get-Recipient $_).PrimarySmtpAddress }
$GrantSendOnBehalfToIDs = $Group.GrantSendOnBehalfTo
$GrantSendOnBehalfToDisplayNames = $GrantSendOnBehalfToIDs | ForEach-Object { (Get-User $_ -ErrorAction SilentlyContinue).DisplayName }
$WhenCreated = $Group.WhenCreated
$WhenChanged = $Group.WhenChanged
# Get SendAs permissions
$SendAsPermissions = Get-RecipientPermission -Identity $PrimarySmtpAddress
$SendAsTrustees = $SendAsPermissions.Trustee
foreach ($Member in $Members) {
# Create a custom object for each member and add it to the array
$customObject = [PSCustomObject]@{
DisplayName = $DisplayName
Description = $Description
PrimarySmtpAddress = $PrimarySmtpAddress
SecondarySmtpAddress = ($SecondarySmtpAddress -join ',')
Alias = $Alias
GroupType = $GroupType
RecipientType = $RecipientType
SyncedFromOnPremises = $IsDirSynced
Member = $Member.DisplayName
MemberPrimarySmtpAddress = $Member.PrimarySmtpAddress
MemberType = $Member.RecipientType
Owners = ($Owner -join ',')
HiddenFromAddressLists = $HiddenFromAddressLists
MemberJoinRestriction = $MemberJoinRestriction
MemberDepartRestriction = $MemberDepartRestriction
RequireSenderAuthenticationEnabled = $RequireSenderAuthenticationEnabled
AcceptMessagesOnlyFrom = ($AcceptMessagesDisplayNames -join ',')
SendOnBehalf = ($GrantSendOnBehalfToDisplayNames -join ',')
SendAs = ($SendAsTrustees -join ',')
WhenCreated = $WhenCreated
WhenChanged = $WhenChanged
}
$customObjects += $customObject
}
# Update the progress bar
$currentGroup++
$status = "{0:N0}" -f ($currentGroup / $totalGroups * 100)
$progressParams = @{
Activity = "Retrieving Group Members"
Status = "Processing group: $($group.DisplayName) - $currentGroup of $totalGroups : $status% completed"
PercentComplete = ($currentGroup / $totalGroups) * 100
}
Write-Progress @progressParams
}
# Complete the progress bar
Write-Progress -Activity "Retrieving Group Members" -Completed
# Output the custom objects array, sort them, and display in a grid view
$customObjects | Sort-Object DisplayName | Out-GridView -Title "M365 Distribution Group Members"
# Export report to CSV file
$customObjects | Sort-Object DisplayName | Export-Csv -Path $Csvfile -NoTypeInformation -Encoding utf8Ligne 22 : Modifier le chemin du fichier CSV
3. Exécutez le script PowerShell d'exportation des membres du groupe de distribution Microsoft 365
Obtenez tous les groupes de distribution Microsoft 365, y compris leurs membres et propriétaires, et exportez-les vers un fichier CSV.
Exécutez la commande ci-dessous pour exécuter le script Export-M365DGMembers.ps1.
c:\scripts\.\Export-M365DGMembers.ps14. Ouvrez le rapport sur les membres du groupe de distribution Microsoft 365
Le script PowerShell Export-M365DGMembers.ps1 exporte tous les membres du groupe de distribution Microsoft 365 vers un fichier CSV.
Recherchez le fichier M365DGMembers.csv dans le chemin C:\temp.
Ouvrez le fichier CSV avec votre application préférée. Dans notre exemple, il s’agit de Microsoft Excel.
Le rapport sur les membres et propriétaires du groupe de distribution Microsoft 365 est superbe !
Lire la suite : Créer un groupe de distribution dans Exchange Hybrid »
Conclusion
Vous avez appris à exporter les membres du groupe de distribution Microsoft 365 au format CSV avec PowerShell. L'export dans le centre d'administration ne vous donne pas toutes les propriétés souhaitées. Il est préférable d'utiliser le script PowerShell car vous pouvez le personnaliser selon vos besoins.
Avez-vous apprécié cet article? Vous aimerez peut-être également Exporter les enregistrements de l’application Entra ID, les certificats et le rapport d’expiration des secrets. N’oubliez pas de nous suivre et de partager cet article.


