# Global group count should be retrievable

Global groups are the most commonly used group type for organizing users in Active Directory:

Source: https://maester.dev/docs/tests/AD-GRP-09

<!-- This file is generated by website/scripts/generate-test-docs.mjs. Do not edit manually. -->

<div class="test-byline"><div class="test-byline-avatars"><a class="test-byline-avatar test-byline-avatar--author" href="/contributors/soulemike" title="Michael Soule · Original author"><img src="https://github.com/soulemike.png" alt="Michael Soule" width="28" height="28" loading="lazy" decoding="async" /></a></div><div class="test-byline-meta"><span class="test-byline-text">Contributed by <a href="/contributors/soulemike">Michael Soule</a></span><a class="test-byline-link" href="/contributors">All contributors →</a></div></div>

<p class="test-part">Part of <a href="/docs/tests/ad">Active Directory</a> · Active Directory · Groups · <a href="/docs/tests">All checks</a></p>

```powershell title="Run this check"
Invoke-Maester -TestId AD-GRP-09
```

## Overview

Global groups are the most commonly used group type for organizing users in Active Directory:

- **User organization**: Used to organize users by role, department, or function
- **Forest-wide usage**: Can be used across the entire forest for access control
- **Domain replication**: Group membership only replicates within the domain, reducing replication traffic
- **AGDLP/AGUDLP strategy**: Accounts are placed into Global groups as the first step in the recommended group nesting strategy

A high number of global groups typically indicates well-organized user role management.

#### Control Type

**Operational**

#### Security Recommendation

Optimize global group usage:
1. Use global groups to organize users by role, department, or business function
2. Keep global group membership relatively stable to minimize replication
3. Nest global groups into domain local or universal groups for resource access
4. Avoid assigning permissions directly to global groups—use them as user containers
5. Implement a naming convention that reflects the group's purpose (e.g., "G-Department-Finance")

#### How the Test Works

This test examines all group objects and identifies those where:
- The `GroupScope` property equals "Global"
- These groups can contain users and other global groups from the same domain
- Membership changes only replicate within the domain

The test provides counts and percentages to understand the distribution of group scopes in your environment.

#### Related Tests

- `Test-MtAdGroupDistributionCount` - Counts distribution groups (email-only)
- `Test-MtAdGroupSecurityCount` - Counts security groups by category
- `Test-MtAdGroupDomainLocalCount` - Counts domain local scope groups
- `Test-MtAdGroupUniversalCount` - Counts universal scope groups

## Details

<details>
<summary>Every attribute of this check</summary>

| Field | Value |
| --- | --- |
| Test ID | AD-GRP-09 |
| Severity | Info |
| Suite | Active Directory |
| Product | Active Directory |
| Feature | Groups |
| Area | Infrastructure hardening |
| Resource type | Group |
| MITRE ATT&CK | None |
| PowerShell test | [Test-MtAdGroupGlobalCount](https://github.com/maester365/maester/blob/main/tests/ad/group/Test.AD-GRP-09.ps1) |
| Services | ActiveDirectory |
| Permissions | ActiveDirectory:Ldap:group:ReadProperty |

</details>

## Source

- Test: [`tests/ad/group/Test.AD-GRP-09.ps1`](https://github.com/maester365/maester/blob/main/tests/ad/group/Test.AD-GRP-09.ps1)
- Documentation: [`tests/ad/group/Test.AD-GRP-09.md`](https://github.com/maester365/maester/blob/main/tests/ad/group/Test.AD-GRP-09.md)
