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 :

  1. Connectez-vous àCentre d'administration Microsoft Exchange
  2. CliquezDestinataires > Groupes
  3. Cliquez sur letype de groupepour 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.

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 :

  1. Nom d'affichage
  2. Description
  3. AdresseSmtpPrimaire
  4. AdresseSmtpsecondaire
  5. Alias
  6. Type de groupe
  7. Type de destinataire
  8. SyncedFromOnPremises
  9. Membre
  10. MemberPrimarySmtpAddress
  11. Type de membre
  12. Propriétaires
  13. HiddenFromAddressLists
  14. MemberJoinRestriction
  15. MemberDepartRestriction
  16. RequireSenderAuthenticationEnabled
  17. AcceptMessagesOnlyFrom
  18. SendonBehalf
  19. envoyer
  20. QuandCréé
  21. QuandModifié

Note: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 PowerShell d'Exchange Online

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 Exchange Online PowerShell.

Démarrez Windows PowerShell en tant qu'administrateur et exécutez les commandes ci-dessous.

Install-Module -Name ExchangeOnlineManagement -Force

2. Préparez le script PowerShell d'exportation des membres du groupe de distribution Microsoft 365

Créez deux dossiers sur le(C :)conduire:

  • Température
  • Scripts

Téléchargez le script PowerShell Export-M365DGMembers.ps1 et placez-le dansC:scriptsdossier. Le script exportera le fichier CSV vers leC:tempdossier.

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 nomExporter-M365DGMembers.ps1et placez-le dans leC:scriptsdossier.

<#
    .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:tempM365DGMembers.csv"

# Connect to Exchange Online PowerShell
Connect-ExchangeOnline

# Get all distribution groups
$Groups = Get-DistributionGroup -ResultSize Unlimited

# Initialize a List to store the data
$Report = [System.Collections.Generic.List[Object]]::new()

# 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) {

    # 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

    # Retrieve group properties
    $Members = Get-DistributionGroupMember $Group.DistinguishedName -ResultSize Unlimited
    $Owner = $Group.ManagedBy | ForEach-Object { (Get-Recipient $_ -ErrorAction SilentlyContinue).DisplayName }
    $AcceptMessagesOnlyFromDisplayNames = $Group.AcceptMessagesOnlyFrom | ForEach-Object { (Get-Recipient $_).PrimarySmtpAddress }
    $GrantSendOnBehalfToDisplayNames = $Group.GrantSendOnBehalfTo | ForEach-Object { (Get-User $_ -ErrorAction SilentlyContinue).DisplayName }

    # Get SendAs permissions
    $SendAsPermissions = Get-RecipientPermission -Identity $Group.PrimarySmtpAddress
    $SendAsTrustees = $SendAsPermissions.Trustee

    # Create custom objects for each member
    foreach ($Member in $Members) {
        $ReportLine = [PSCustomObject]@{
            DisplayName                        = $Group.DisplayName
            Description                        = $Group.Description
            PrimarySmtpAddress                 = $Group.PrimarySmtpAddress
            SecondarySmtpAddress               = ($Group.EmailAddresses | Where-Object { $_ -clike "smtp*" } | ForEach-Object { $_ -replace "smtp:", "" }) -join ','
            Alias                              = $Group.Alias
            GroupType                          = $Group.GroupType
            RecipientType                      = $Group.RecipientType
            SyncedFromOnPremises               = $Group.IsDirSynced
            Member                             = $Member.DisplayName
            MemberPrimarySmtpAddress           = $Member.PrimarySmtpAddress
            MemberType                         = $Member.RecipientType
            Owners                             = $Owner -join ','
            HiddenFromAddressLists             = $Group.HiddenFromAddressListsEnabled
            MemberJoinRestriction              = $Group.MemberJoinRestriction
            MemberDepartRestriction            = $Group.MemberDepartRestriction
            RequireSenderAuthenticationEnabled = $Group.RequireSenderAuthenticationEnabled
            AcceptMessagesOnlyFrom             = $AcceptMessagesOnlyFromDisplayNames -join ','
            SendOnBehalf                       = $GrantSendOnBehalfToDisplayNames -join ','
            SendAs                             = $SendAsTrustees -join ','
            WhenCreated                        = $Group.WhenCreated
            WhenChanged                        = $Group.WhenChanged
        }
        $Report.Add($ReportLine)
    }
}

# Complete the progress bar
Write-Progress -Activity "Retrieving Group Members" -Completed

# Output the custom objects array, sort them, and display in a grid view
$Report | Sort-Object DisplayName | Out-GridView -Title "M365 Distribution Group Members"

# Export report to CSV file
$Report | Sort-Object DisplayName | Export-Csv -Path $Csvfile -NoTypeInformation -Encoding utf8
  • Ligne 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.ps1

4. 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.

Trouver le fichierM365DGMembers.csvdans le cheminC: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 !

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.

A lire aussi :Comment migrer des groupes de distribution vers Microsoft 365

Avez-vous apprécié cet article ? Vous aimerez peut-être également Exporter le rapport d’expiration des certificats et des secrets des enregistrements de l’application Entra ID. N'oubliez pas de nous suivre et de partager cet article.

Related Posts