Home » PowerShell » PowerShell – Get AD Group Members and list of Users

PowerShell – Get AD Group Members and list of Users

PowerShell Get-AdGroupMember is used to get members from the active directory. You can get ad group members by specifying the active directory group name. The Identity parameter specifies the Active Directory Group to access to get members of the group.

As a System Administrator, we have to query the active directory to get a list of users in the AD group and export ad group members to CSV or any file format.

In this article, I will explain how to use the PowerShell Get-AdGroupMember cmdlet to get users from the AD group and get members of ad group.

PowerShell Get-AdGroupMember

Get-AdGroupMember cmdlet gets members of an active directory group.

Syntax

Get-ADGroupMember
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   [-Identity] <ADGroup>
   [-Partition <String>]
   [-Recursive]
   [-Server <String>]
   [<CommonParameters>]

Parameters

-Identity: is used to specify an active directory group object using any of the values like distinguishedName, GUID, SID, or SAMAccountName.

-Recursive: Get all the members from the hierarchy of the group.

-Server: Specify the Active Directory Domain Service instance to connect to by providing one of the values for the corresponding domain name or directory server.

Get AD Group Members

Active Directory groups can have multiple groups within them and have users associated with each group.

To get list of users from AD group and get groups from AD group, run the below command

Get-ADGroupMember -Identity "Shell_Sales" | Select-Object Name | Sort-Object Name

In the above PowerShell command, we have to get users and groups from the Shell_Sales ad group.

Using PowerShell Get-ADGroupMember cmdlet, it gets members from the active directory, members can be groups, users, or computers.

Using the Identity parameter, it returns users and groups from Shell_Sales active directory group.

In the next command, it selects the name of the object and sorts the object by Name before it lists all users in ad group to the console.

The output of the above command to get ad group members as below

Name
----
Administrator
ShellGeek
Shell_Asia
Shell_Europe

Get List of Users from Groups and Nested Groups

In the above example, we have discussed how to get users and groups from the active directory. As we know, active directory groups can have groups in them.

In the above example, the Shell_Sales ad group has Shell_Asia and Shell_Europe groups.

To get list of users from groups and nested groups, use the Get-ADGroupMember cmdlet to recursively check through specified by –Recursive parameter in active directory and get ad group members, run below command

Get-ADGroupMember -Identity "Shell_Sales" -Recursive | Get-ADUser -Property DisplayName | Select-Object DisplayName

In the above PowerShell script to get members of ad group,

Using PowerShell Get-AdGroupMemeber get members of the active directory group specified by the Identity parameter and passes ad group members to the second command.

The second command uses the Get-ADUser cmdlet to get ad users from a list of ad users and returns the display name

The third command, Select-Object displayname of all ad users from groups and nested groups on the console.

Get AdGroupMember Enabled Account

To get adgroupmember enabled accounts in the specified group, use the Get-AdGroupMember cmdlet to get all the members of the group and piped them to the Get-AdUser cmdlet to get enabled accounts.

$group = "SALESLEADER"

$adusers = Get-ADGroupMember -Identity $group | where {$_.objectclass -eq "user"}

foreach ($activeuser in $adusers) 
{ 

    Get-ADUser -Identity $activeuser | where {$_.enabled -eq $true} | select Name, SamAccountName, UserPrincipalName, Enabled 
    
 }

In the above PowerShell script, the Get-AdGroupMember uses the Identity parameter to get all users from the adgroup SALESLEADER and stores them in the $adusers variable.

Use the foreach loop to iterate over the $adusers and use the Get-AdUser cmdlet to check the user account enabled status and select the name, and samaccountname for enabled accounts.

The output of the above PowerShell script to get adgroupmember enabled accounts is:

Get AdGroupMember Enabled Accounts
Get AdGroupMember Enabled Accounts

Get-AdGroupMember MaxGroupOrMemberEntries Modification

The Get-AdGroupMember has a default limit of 5000 to get active directory objects and their properties.

If you have more than 5000 active directory objects and tried to get all members using the Get-AdGroupMember, it throws an error: “Get-AdGroupMember: The size limit for this request was exceeded.

You can increase the MaxGrouporMemberEntries to retrieve active directory objects more than the default limit.

Refer to the below steps to add MaxGroupOrMemberEntries:

  • Go to the Domain Controller
  • Navigate to location C:\Windows\ADWS
  • Open the file Microsoft.ActiveDirectory.WebServices.exe.config in notepad
  • Check if the MaxGroupOrMemberEntries key is available or not, if available then increase the size else follow the below key to the file.
  • Add entry <add key=”MaxGroupOrMemberEntries” value=”10000”/>

Note: Kindly take the backup of Microsoft.ActiveDirectory.WebServices.exe.config before making any changes.

Get AdGroupMemeber Filter Example

To get users from the group, use the get adgroupmember filter to check if ObjectClass is equal to the “user“.

 Get-ADGroupMember "SALESLEADER" | where {$_.objectclass -eq "user"} | Select Name,DistinguishedName | Format-Table -AutoSize

In the above PowerShell script, Get-AdGroupMember gets all the members from the adgroup “SALESLEADER” and uses the filter to get users from the group.

The Get-AdGroupMember uses Format-Table for output formatting as given below

PS C:\> Get-ADGroupMember "SALESLEADER" | where {$_.objectclass -eq "user"} | Select Name,DistinguishedName | Format-Table -AutoSize

Name                             DistinguishedName
----                                   -----------------
Tom Smith                    CN=Tom Smith,OU=SALES,DC=SHELLPRO,DC=LOCAL
Chris Dore                    CN=Chris Dore,OU=SALES,DC=SHELLPRO,DC=LOCAL
Gary Waugh                 CN=Gary Waugh,OU=SALES,DC=SHELLPRO,DC=LOCAL


PS C:\>

To get a list of groups from the active directory, use the Get-AdGroupMember Filter to check if the ObjectClass is equal to the “group“.

 Get-ADGroupMember "SALESLEADER" | where {$_.objectclass -eq "group"} | Select Name,DistinguishedName | Format-Table -AutoSize

In the above PowerShell script, the Get-AdGroupMember gets all the members from the active directory and uses the get adgroupmember filter to check if ObjectClass is equal to the group and retrieves the group names.

Conclusion

I hope the above article on how to get a list of users from ad groups and nested groups may help you to understand the use of the PowerShell Get-ADGroupMember cmdlet.

You can read more about how to export ad group members to a CSV file and Set-AdGroup to modify active directory group attributes in PowerShell.

You can find more topics about PowerShell Active Directory commands and PowerShell basics on the ShellGeek home page.

Recommended Content

Get Adgroupmember SAMAccountname

Get Adgroupmember count for users and groups

Get Adgroupmember name and email address

Get Adgroupmember from multiple groups

Leave a Comment