How to get distribution group members with and without PowerShell in Microsoft 365

How to get distribution group members

Creating a membership report of all your distribution groups doesn’t have to be painful, even when you have lots of nesting. You can get distribution group members with native tools and PowerShell, but there is a much easier way with sapio365.

This guide shows several ways to get distribution group members in Microsoft 365, from the admin centers and Microsoft Graph PowerShell to a no‑code approach with sapio365.

This post walks through:

  • What you can do in the Entra and Exchange admin centers.
  • ​How to get distribution list members (including nested) with Microsoft Graph PowerShell.
  • ​How to get a complete, exportable report of all distribution list members in a few clicks with sapio365.

Distribution list members in the admin centers

If you try to get distribution group members using only the admin centers, you quickly hit limitations, especially with nested groups. Let’s look at what you get in each place.

General and Exchange admin centers

In both the Microsoft 365 admin center and the Exchange admin center, you can list and export your distribution groups, and you can filter that list. However, you have to open each group to see its direct members, and you cannot just grab a clean, copy‑and‑paste list of all members across all groups.

  • ​You only see direct members for the selected group.
  • You must open each nested group in a separate window to see who is inside it.
  • There is no built‑in way to export all members of all distribution groups in one go.
Viewing members for each distribution group in the main admin center.
Looking up members for each distribution group in the Exchange admin center.

Entra admin center

The Entra admin center gives you a slightly different angle on group membership. You can select a group and choose to see either direct members or all members (including nested), and from that list, you can copy/paste the results.

But there are still some gotchas:

  • You cannot filter the group list to show only distribution groups; the group type filter is only available for Microsoft 365 and security groups.
  • Even when you choose to see all members, you do not see which users are coming from which nested group.
  • To understand nesting, you still have to click into each “group” type member and repeat the process.
Looking up members for each distribution group in the Exchange admin center.

All these limitations and repeated drill‑downs are a big reason so many admins fall back on PowerShell.

Using Microsoft Graph PowerShell to get distribution group members

PowerShell is often the next stop when you need to get distribution group members at scale, especially when nested groups are involved.

Using Get-MgGroupTransitiveMember

If all you care about is “who ends up in this group” and you don’t need to see the nesting structure, the Microsoft Graph PowerShell cmdlet Get-MgGroupTransitiveMember is the quickest way to get both direct and indirect members.

  • ​It returns a flat list of all nested members, so you get everyone who ultimately belongs to the group.
  • Earlier versions required extra work to resolve IDs into names, but newer SDK versions return member details in AdditionalProperties, which makes life easier.

The downside is that the result is flattened: you don’t see which user came from which nested group, so you lose visibility into the membership hierarchy.

Get direct and indirect members of a group with PowerShell

Using Get-MgGroupMember with recursion

If you need a more accurate picture of the structure of your distribution list, you can build a recursive script that uses Get-MgGroupMember.

A typical approach is:

  1. ​Call Get-MgGroupMember to retrieve the direct members of the group.
  2. For each member that is a group, call the same cmdlet again on that group to retrieve its direct members, and so on.
Get direct members of a group with PowerShell

Whether you write this script from scratch, adapt one from the community, or ask an AI to generate it, you still need to:

  • Test the script in your tenant.
  • Adjust it for your preferred output format and properties.
  • Maintain it when APIs, modules, or your reporting requirements change.

​This works, and for many admins it’s the default. But it’s a lot of work for what is essentially a membership report. That is where sapio365 can really help.

Use sapio365 to get distribution group members faster

With sapio365, you skip the scripting and drill‑downs and go straight to a complete, customizable membership report of all your distribution groups, making it easy to get distribution group members in minutes. You see users, groups, nesting, and extra attributes all in one place, and you can export the result with a single click.

​Here is what the workflow looks like.

A. Get your full list of distribution groups

Start from the sapio365 Dashboard and load your distribution groups. You can:

  1. See every distribution group in one grid.
  2. Add any group properties you want to include in your report (for example, if the group is hidden from the address list, if external senders can email the group, etc.).
  3. Select all groups so you are one click away from their members.
See the full list of distribution groups and their properties.

B. View members and owners across all groups

From there, you can load the members and owners of all selected groups into the grid. If you only want members, you can simply filter out the owners.

  1. Owners and members are visible in the same view, with clear indicators for each.
  2. You can quickly filter, group, or sort the grid to focus on what matters, like members only, or users from a particular department or region.
Customize your distribution group membership view with filters.

C. Expand nested membership with a click

Instead of recursive code, you just expand the membership hierarchy.

sapio365 lets you:

  1. Expand nested groups with a click to reveal their members, so you get a full picture of who is in each distribution group, including nested lists.
  2. Enrich the report with extra user properties (for example, sign‑in allowed) and group properties (for example, whether external senders are allowed) as shown in the image below.
Show a complete membership report for all distribution groups, enrich it with extra group and user properties, and expand nested memberships in one view.

D. Export your report in one step

Once the view shows exactly what you need (groups, members, nesting, and any extra fields), you can export it.

  1. Export to Excel with one click or choose another format.
  2. Save the view to apply it later for a fresh report.
Save your custom view or export it to Excel with one click.

Microsoft 365 Admin Centers vs PowerShell vs sapio365

Here is a quick side‑by‑side view of the three approaches discussed above.

Aspect Feature/CapabilityADUC Admin Centers
See members of one groupYes: direct members per selected group. Yes: using Get-MgGroupMember or Get-MgGroupTransitiveMember. Yes: across one or many groups in a single grid.
Include nested groupsLimited: you must click into each nested group manually. Yes: via transitive or recursive queries, but it requires scripting. Yes: expand nesting with a click and see the full hierarchy.
Export all members of all DLsNot in one step: requires opening each group and/or manual exports. Yes: with a script that loops through all groups and exports to CSV. Yes: load all groups, their members, and export directly from the grid.
See which nested group a user comes fromNo: “all members” view is flat and doesn’t show the nesting path. Possible, but only if your recursive script captures and formats that information. Yes: nesting is visible and expandable in the UI.
Add extra properties (user/group)Very limited: few columns and no custom combinations. Yes, but you must select and join properties in code. Yes: add any exposed properties to the grid with a few clicks.
Skill and time requiredLow skill, but high time investment for large or nested groups. Medium to high skill, plus time to test and maintain scripts. No scripting: most of the work is point-and-click configuration.
Best fit use caseQuick spot checks on a small number of groups. Automated or repeatable exports when you are comfortable with PowerShell. Fast, rich reporting and ongoing management of many distribution groups.

If you just need a quick look at a single distribution list, the admin centers may be enough, even if they are a bit clumsy with nested groups. When you want more control and automation, Microsoft Graph PowerShell can give you comprehensive results, provided you are willing to invest the time to script and maintain your solution.

​But if you’re looking for the easiest way to get a clean, complete report of all your distribution list members, including nesting and rich properties, sapio365 lets you get distribution group members in a few clicks without any code. For day‑to‑day reporting and management of distribution groups at scale, sapio365 can save you a lot of effort and a lot of PowerShell.


Sonia Bounardjian

Sonia is a sapio365 product specialist at Ytria. She was part of the initial development team that created sapio365. When she's not busy helping sapio365 users virtually or writing helpful articles in this blog, she's reorganizing her impressive collection of unused high heels.