# PowerShell: Export Active Directory Group Members

One common request I see is getting a list of users that belong to an Active Directory security group. This is requested for various reasons such as, supervisor wants to know who has access to a folder, an auditor wants a list of users, a 3rd party program or cloud service needs to import a list of users from a CSV file.

The problem is…

The built in Active Directory users and Computer tool has no option to export members from a group.

To accomplish this we can use PowerShell.

In this tutorial, I will walk through the steps for exporting group members to a CSV file.

Let’s get started.

## Step 1: Load the Active Directory Module

To connect and query an AD group with PowerShell the Active Directory module needs to be loaded.

The Active Directory module can be installed with the following methods:

• RSAT tools installed
• Windows Server 2008 R2 and above with the AD DS or AD LDS server roles

You can run the following command to see if you have installed

Get-Module -ListAvailable

As you can see I don’t have the module installed.

If you already have the module loaded then jump to step 2, if not following these instructions.

To get the Active Directory module installed on my Windows 10 PC, I will need to download and install the RSAT tools.

With the RSAT tools installed, I run the Get-Module -ListAvailable command again

Now I have the module installed, let’s move on to step 2.

## Step 2: Find AD Group

If you already know the name of the group, then skip to step 3.

If you’re not sure what the group name is, you can issue the following command to list all Active Directory groups.

Get-ADGroup -filter * | sort name | select name

Above, is a screenshot of some of the groups listed in my domain. I had an HR group but wasn’t sure of its complete name, I can see it’s HR full. I’ll use that group in step 3 to list out the members.

## Step 3: Use Get-AdGroupMember to list members

The following command will list all members of my HR Full group

Get-ADGroupMember -identity "HR Full"

You can see the above command provides more details on the group members than I need.

We can filter out the results and just get the member name with this command

Get-ADGroupMember -identity "HR Full" | select name

Perfect, now I just need to export this to CSV.

## Step 4: Export group members to CSV file

The last step is to export the results to a CSV file

This is done by adding Export-csv to our above commands. The full command looks like this

Get-ADGroupMember -identity "HR Full" | select name | Export-csv -path c:\it\filename.csv -Notypeinformation

Get-ADGroupMember -identity “HR Full” | select name | Export-csv -path C:\it\filename.csv -NoTypeInformation

Now I have a CSV file of all the members from the HR Full Active Directory group.

Pretty easy right?

## Method 2: Group Membership Report Tool

This method requires no PowerShell. This GUI tool is super easy to use and has built in support to export all groups and group members. Plus you can quickly find all nested groups!

Step 1: Download and Install the AD Pro Toolkit

Click here to download a free trial

Step 2: Open AD Pro Toolkit and click on Group Membership Report

Step 3: Choose Paths and click run

• Entire Domain = Gets all groups and group members in the entire domain
• Select OU or Group = This lets you select one or multiple OUs or groups.

For this example, I’m going to select entire domain.

Now click the run button and you will get a report of groups and users in each group.

Step 4: Export to CSV

At this point, you can export the report to a CSV file by clicking the export button and select “Export All Rows”. By default, there are over 30 attributes included in the export. If you want to change what attributes are exported then click the change Columns button to add or remove them.

Step 5: Filter Results and find nested groups (optional)

If you need to filter the report such as finding nested groups or display certain group types (security or distribution) then you can do that right in the tool. The tool comes with a powerful search and filter system. In this example, I will find all nested groups.

You can right click on any column to access the filter options. To find all nested groups select “Filter Editor”

Set the filter to the screenshot below and click apply.

Now the report will be filtered to show all nested groups.

In the above screenshot, the first column is the source group and then the group column is the group it’s a member of. So Domain Users is a member of the Legal_Folders group. The next one down Accounting_Printers is a member of the Accounting_Local group.

This filtered report can now be exported to CSV.

The Group Membership Report Tool is a huge time saver and makes it so easy to report and export group membership.

## Recommended Tool: Permissions Analyzer for Active Directory

This FREE tool lets you get instant visibility into user and group permissions. Quickly check user or group permissions for files, network, and folder shares.

Analyze user permissions based on an individual user or group membership.

### 110 thoughts on “PowerShell: Export Active Directory Group Members”

1. I’m looking for a similar script to export to csv groups and members within groups:
group1:member1….
group1:member1…

Reply
• Hi Richard,

Just add -Recursive at the end to include members of child groups

Example

Get-AdGroupMember -identity HR Full -Recursive

Reply
• Hi Robert,

What if i have to get entire (All) groups in one excel?

instead of a specific group, I need to have all my groups with their current users in it.

Reply
• I have a GUI tool for that https://activedirectorypro.com/ad-group-report/

To do this in PowerShell you would use Get-ADGroup to get all groups and set them to a variable. Then use a for each loop to loop through each group and run get-adgroupmember on each group.

Reply
• Hi Jayan, Did you ever get this to work in Powershell?

Kind Regards

Reply
• Is it possible to add users from a CSV to a AD group

Reply
• How to export all groups from any particular member?

Reply
• Get-ADPrincipalGroupMembership username | select name | export-csv -path c:\path

Reply
• I am trying to extract a list of users given a security group. I know that this is easily accomplished using:

Get-AdGroupMember -identity “security group name” | select name | Export-csv -path C:\members.csv -NoTypeInformation

But, what I am trying to do is perform this action given a .csv file of security groups. For example, I have 36 security groups that I would like to query for their respective members. Rather than run the above line 36 times in a row by manually inputing each security group, I would like to say: “Here, take this .csv file, iterate through it one by one and return the members of each group you see, then export all members sorted by each group when you reach the end of the file.

Any ideas as to how to do this? I’ve tried using a foreach loop but I don’t think you can pass an array to the -identity parameter.

Reply
2. Very helpful, thanks!

Reply
• No problem.

Reply
• As many others have said, very helpful Robert, thank you!

Reply
3. Exactly what I needed. Thanks for the information in easily and quickly digestible format!

Reply
• No problem Jay.

Reply
4. Hello, Thank you for the post. But I get an error on Step 2: “get-adgroup : Unable to find a default server with Active Directory Web Services running.”

Reply
• Yulia,

The Powershell Active Directory module uses AD Web services to manage and administer Active Directory. You will need to make sure your server is running AD web services. What version of server are you running?

Reply
5. What is the powershell command to export AD “Contacts” members of an AD group?

Reply
• Hi, Manny

This command will list both contacts and users of an AD group.

Get-ADGroup group-name -Properties member | select-object -ExpandProperty member

Reply
• Hi,
I need to get the ad details of an user and then all the nested group details of all the AD groups which the user is part of. Can any one tell me how?

Reply
• Hi Robert,

Such a time saver! When I try to export this to a csv it doesn’t work.
I usually add | Export-csv -path filepath\filepath\file.csv

Any ideas?

Reply
• Enzi, did you try it with a drive letter? | export-csv -path c:\filepath\file.csv

Reply
6. Thank you! amazing, thank you for your time and sharing the info thanks!!!

Reply
• No problem Edward.

Reply
7. Thank you!

Reply
• Tamu,

You’re welcome

Reply
8. good article, clear and EZ to use,
thank you.

Reply
• You’re Welcome!

Reply
9. WOW this is well put together. Thanks.

Reply
• Richard,

No problem.

Reply
• No problem, I hope you find it useful.

Reply
10. really informative and useful commands for AD admins

Reply
11. Awesome Article!

Reply
• Thanks Latau

Reply
12. This worked great!

Amy chance we can add last logon date? Other scripts I tried from the web did not work.

Reply
13. This is awesome! Do you know how to also get users email address?

Reply
• Here is an example that will list users name and email of a group

Get-ADGroupMember -Identity HR-N-Drive-RW -Recursive | Get-ADUser -Properties Mail | Sel
ect-Object Name, Mail

Reply
• I LOVE YOU MAN

Reply
• I love you more.

Reply
14. Can you export samaccountname and name together? I tried it in various ways, but can only seem to do one or the other.

Reply
• Here you go

Get-ADGroupMember -Identity HR-N-Drive-RW -Recursive | Get-ADUser | Select-Object Name,
SamAccountName

Reply
• THANK YOU! I really needed the emails listed as well.

Reply
15. I want the CSV to list the Group name in Column A and the member in Column B. How would I do that?

Reply
16. thanks for good share , easy to understand and quick

Reply
17. Truly appreciate this, best explanation and clear instructions

Reply
18. Hi,

Kindly help me to get the user ids instead as there are 2000 profiel needs to be reset.

Thanks

Reply
19. Hello Robert,

How do i get the list of member from group A, group B, i.e group B is not a sub group of group A
and i don’t want to right separate command like this Get-AdGroupMember -identity “Group A” | select name.

I Tried Get-AdGroupMember -identity “Group A” “Group B” | select name and i got error :/

Thanks for the help.

Reply
20. Thanks for this 🙂

Reply
• No problem

Reply
21. Amazing how simple you made this! thanks!!

Reply
22. This was perfect. Thank you!

Reply
23. Wow this is great. clear tutorial and easy to follow. Works exactly as I had hope. Thank you Robert!!!

Reply
24. Thanks for this, turned a slog of a job into a 5 min breeze! 🙂

Reply
25. Very Useful. Thanks

Reply
26. This helped so much. Thank you!!!

Reply
27. Thank you so much for this! As a beginner, I wanted a quick way of getting the list of users from a specific group. I searched it for weeks and finally found this post! . With these commands, lot of hours will be saved.

Reply
28. Thanks , this worked

Reply
29. very interesting/handy…
I have a range of AD groups I want to list (eg all AD groups starting g_abcCouncil) how would I modify the filter command ?

(I tried -filter g_abcCouncil* but got a parsing error, not supported)

Reply
• You want to list just the groups and sort them or the groups and members? This would get all groups and sort them get-adgroup -filter* | sort

Reply
30. It was really useful. Thank you. Is there a possibility to add First name and Last name in the output from the AD group

Reply
• Raj, my AD User Export Tool includes first and last name and several other user properties. It can be customized to export exactly what you need.

Reply
31. This is extremely handy especially for someone who is still learning Powershell. I wondered if this script could be configured to run in one domain and pull data from a group in another? You would have to be able to add ID and password from the other domain for it to work.

Reply
32. Exactly What I needed. Thank You!

Reply
• Good day ?, how to get 8000 members list from 1 AD group using cmdlet Get-AdGroupMember and export it to cvs file ?

Thanks a lot and have a nice day ?

Reply
33. Clear and concise…thank you!

Reply
• No problem 🙂

Reply
34. This is Awesome.. Helped me a lot.

I have two quick questions:
1. How can I see Group name and Member name as output?
2. How can I choose multiple groups?

Thanks in advance.

Reply
35. Very Helpful. Thanks for sharing.

Reply
36. This is excellent! Simple to follow. That’s how I like it. Cheers.

Reply
37. VERY informative.

Thank you, Robert!

Reply
38. It worked! Thanks for the help! Great page with great examples.

Reply
• Zo, you are welcome.

Reply
• No problem

Reply
39. Hi Robert,

The Commands are working, But I need to export the members from Multiple Groups. Is there any commands for that ?

Reply
40. Hi Robert,
Thank you for your post. How do I export group members from a specific domain. When I ran the Get-AdGroupMember command, it gets it from a different domain.

Reply
41. How would you filter down to a specific string in the Active Directory Domain Services Folder?

Reply
• Not sure, what exactly are you trying to accomplish?

Reply
42. Very helpful tutorial. Thank you very much…

Reply
43. Hi Robert,
Thank you for your post. How do I export group members from a specific domain. When I ran the Get-AdGroupMember command, it gets it from a specific domain.

Reply
• You can use -server to specify the domain to export from.

Reply
44. Just one word – AWESOME!!

Reply
• Thanks for the feedback Paul

Reply
45. How do we find, when a user was added to a particular AD group and who added the user.

Reply
46. This is one of the best explanations that I could find – Thanks!

Would you know how to deal with a group with a large amount of members? My results are “The size limit for this request was exceeded”

Reply
47. Short and sweet, thanks!

However, FOR NOOBS LIEK ME, in Step 4, it’s confusing that after “Export-csv -path” you got new empty line and then “C:OutputGroupmembers.csv -NoTypeInformation” which doesn’t work.

Obviously, it should be all together and have a backslash “\” to be able to export to the C-drive root IF it works by other policies. IMO would be better to point the output file to the “C:\temp\filename.csv” which is probably more accessible.

Reply
• Vozdra, it has been corrected. Thanks for pointing this out.

Reply
48. i need an export for names, email addresses, title, location and department…. is that possible?

Reply
• Yes. I have two tools that make this really easy. You can download a free trial of them both.

Reply
49. Exactly what i am looking for Thank you Robert. I mostly get all the required stuff from activedirectorypro.com

Reply
• Thanks Kuldip. Glad you found what you needed.

Reply
50. Hi Robert, bit late to the party here. I am doing something similar but I wanted to be able to export only names that do not match part of a string to the CSV e.g names that do not match “admin*”. I can manipulate the CSV afterwards but would be great if I could do it as part of PS.

Reply
51. I hate to ask this because I should know. How do I get it to export the AD username instead of Last, First?

Reply
52. Hi could you point me in the right direction? Any help would be appreciated. At step 3 I’m running into the following error….

Get-AdGroupMember : An unspecified error has occurred
At line:1 char:1
+ Get-AdGroupMember -identity GROUP-TESTA
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: GROUP-TESTA:ADGroup) [Get-ADGroupMember], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember

Reply
• Does the group have members from another domain? This command only works if the group members are all from the same domain.

Reply
53. How do we find the AD groups assigned to a Role?

Reply
54. Hi Robert, how would I get a listing of all members in an AD group that has members from 2 different domains (universal group). Is this possible? Thanks.

Reply
55. Thanks ,Its very useful for audit purpose, I have created around 24 .CSV file. How do I can add all in one excel in different tabs in sing excel.

Thanks again
Vaibhav Joshi

Reply
56. Hi Robert, thank you for sharing all these helpful commands and PS-Scripts.

I am trying to create a script that will export all users with their manager name to a csv file. (i got this part done already), I used: get-aduser -Filter * -Properties Manager | Select-Object Name,sAMAccountName,Manager | export-csv C:\temp\UsersManagersExample.csv -notypeinformation.

But also that shows all the membership groups for each user. I am not sure what is the best way to achieve this. Can you help? I am quite sure that there is a way to get this done using powershell.

So I am trying to get a list of all managers and their reporties plus the membership assigned to each user.

Thank you in advance!
Best Regards,

Fady

Reply
57. Hi ,

I have 120 dl names in one CSV file. How I can get the first member of that all dl using script

Reply
58. thank you so much. This blog helped me.

Reply
59. Hi
How do I get groups within a nested group please? So I have a parent group, then within that, I have nested groups. I wanted those nested groups (not users)

Thanks

Reply
60. Hi
How to export the owners name for a list of service accounts from Powershell ?

Reply
61. Thank you, this info was useful!

Reply
62. Hi Robert,
this is great – any idea how to omit specific emails from results?

Reply