Skip to main content

PowerShell Get-ADGroup: Complete Guide to Query AD Groups

• 2 min read
powershell active-directory get-adgroup group-management ad-cmdlets tutorial

PowerShell Get-ADGroup: Complete Guide to Query Active Directory Groups

Overview

The Get-ADGroup cmdlet allows you to search for and retrieve group objects from Active Directory. Groups are essential for managing permissions and resources.

Common Tasks:

  • Find groups by name or scope
  • List group members
  • Query security vs distribution groups
  • Find groups in specific OU
  • Export group inventory
  • Identify empty or unused groups

Prerequisites:

  • PowerShell 5.1 or later
  • Active Directory PowerShell module
  • Read permissions to group objects

Syntax

Get-ADGroup [-Identity <ADGroup>] [-Filter <string>] [-Properties <string[]>]
```powershell

### Key Parameters

| Parameter | Description |
|-----------|-------------|
| `-Identity` | Group to query (name, DN, GUID, SID) |
| `-Filter` | LDAP filter for searching groups |
| `-Properties` | Attributes to retrieve |
| `-SearchBase` | OU to search within |

---

## Examples

### Example 1: Get Specific Group

```powershell
Get-ADGroup -Identity "IT-Support"
```powershell

### Example 2: Find All Groups

```powershell
Get-ADGroup -Filter * | Select-Object Name, GroupScope, GroupCategory
```powershell

### Example 3: Find Security Groups

```powershell
Get-ADGroup -Filter "groupCategory -eq 'Security'" | Select-Object Name
```powershell

### Example 4: Find Distribution Groups

```powershell
Get-ADGroup -Filter "groupCategory -eq 'Distribution'" | Select-Object Name
```powershell

### Example 5: Get Group Members

```powershell
Get-ADGroupMember -Identity "IT-Support" | Select-Object Name, ObjectClass
```powershell

### Example 6: Find Groups by Name Pattern

```powershell
Get-ADGroup -Filter "name -like '*IT*'" | Select-Object Name
```powershell

### Example 7: Find Empty Groups

```powershell
Get-ADGroup -Filter * -Properties Members |
Where-Object { -not $_.Members } | Select-Object Name
```powershell

### Example 8: Export Groups to CSV

```powershell
Get-ADGroup -Filter * -Properties GroupScope, GroupCategory |
Export-Csv -Path "C:\groups.csv" -NoTypeInformation
```powershell

---

## Group Types

### Security Groups
- Control resource permissions
- Used for access control
- Can have members (users, computers, groups)

### Distribution Groups
- Email distribution lists
- Cannot grant permissions
- For mail clients

### Group Scope

**Domain Local** - Local to single domain
**Global** - Available across forest
**Universal** - Available across domains

---

## Common Use Cases

### Find Groups with No Members
```powershell
Get-ADGroup -Filter * -Properties Members |
Where-Object { -not $_.Members } | Select-Object Name
```powershell

### List User's Groups
```powershell
$user = Get-ADUser jsmith
Get-ADUser jsmith -Properties memberOf | Select-Object -ExpandProperty memberOf
```powershell

### Find Nested Group Membership
```powershell
$group = Get-ADGroup "IT-All"
Get-ADGroupMember -Identity $group -Recursive | Select-Object Name
```powershell

---

## Best Practices

✅ **Use -Filter** - More efficient than Where-Object

✅ **Check GroupScope** - Understand group scope before making changes

✅ **Audit memberships** - Regular review of who's in groups

✅ **Clean up empty groups** - Remove unused groups

### Related Commands
- **Get-ADGroupMember** - List group members
- **[Get-ADUser](/powershell-get-aduser)** - Query users

---

## FAQs

**Q: What's the difference between group scope?**
A: Scope determines where group can be used (domain local, global, universal).

**Q: Can I find groups a user belongs to?**
A: Yes, use Get-ADUser with memberOf property.

**Q: How do I find nested groups?**
A: Use Get-ADGroupMember with -Recursive parameter.

---

## See Also

- **[Active Directory Groups Guide](/active-directory-groups)** - Groups overview
- **[PowerShell Bulk AD Operations](/powershell-bulk-ad-operations)** - Bulk management
- **Complete Active Directory Guide** - AD fundamentals

---

**Last Updated:** February 6, 2026
**Difficulty Level:** Intermediate
**Reading Time:** 9 minutes