---
title: "Active Directory — Bases et structure"
domain: sysadmin
subdomain: active-directory
type: note
tags: [active-directory, AD, windows, LDAP, forest, domain, OU]
difficulty: beginner
status: stable
updated: "2025-05-10"
---
## Structure hiérarchique

```
Forest (corp.lan)
└── Domain (corp.lan)
    ├── Tree (sub.corp.lan)
    ├── Domain Controllers (DC)
    └── Organizational Units (OU)
        ├── OU=Users
        │   ├── OU=IT
        │   └── OU=Finance
        ├── OU=Computers
        ├── OU=Groups
        └── OU=ServiceAccounts
```

## Objets AD

| Objet           | Description                                    |
|-----------------|------------------------------------------------|
| User            | Compte utilisateur                             |
| Computer        | Compte machine joint au domaine               |
| Group           | Regroupement d'objets (sécurité ou distribution)|
| OU              | Conteneur pour organiser les objets            |
| GPO             | Politique de groupe liée à une OU              |
| Service Account | Compte pour les services applicatifs           |
| gMSA            | Group Managed Service Account (auto-rotation)  |

## Types de groupes

| Type         | Portée          | Usage                                          |
|--------------|-----------------|------------------------------------------------|
| Domain Local | Domaine local   | Assigner des permissions locales              |
| Global       | Forêt entière   | Regrouper des utilisateurs du même domaine    |
| Universal    | Forêt entière   | Regrouper des objets de plusieurs domaines    |

### Bonnes pratiques AGDLP

```
Accounts → Global Groups → Domain Local Groups → Permissions
```
Mettre les Users dans des Global Groups, les Global Groups dans des Domain Local Groups, assigner les permissions aux Domain Local Groups.

## Commandes essentielles (net)

```cmd
# Infos domaine
net user /domain
net group /domain
net localgroup Administrators

# Utilisateur spécifique
net user {{USER}} /domain

# Ajouter au domaine (join)
netdom join %COMPUTERNAME% /domain:{{TARGET_DOMAIN}} /userd:admin /passwordd:*
```

## PowerShell AD (module RSAT)

```powershell
# Installer le module
Install-WindowsFeature RSAT-AD-PowerShell
Import-Module ActiveDirectory

# Utilisateurs
Get-ADUser {{USER}} -Properties *
Get-ADUser -Filter {Department -eq "IT"} -Properties Department, Title
Get-ADUser -Filter {Enabled -eq $true} | Select Name, SamAccountName

# Groupes
Get-ADGroup -Filter * | Where-Object {$_.GroupScope -eq "DomainLocal"}
Get-ADGroupMember "Domain Admins" | Select Name, SamAccountName

# Ordinateurs
Get-ADComputer -Filter * -Properties LastLogonDate | 
    Where-Object {$_.LastLogonDate -lt (Get-Date).AddDays(-90)} |
    Select Name, LastLogonDate  # comptes inactifs

# OUs
Get-ADOrganizationalUnit -Filter * | Select Name, DistinguishedName

# Forêt et domaine
Get-ADForest
Get-ADDomain
Get-ADDomainController -Filter *
```

## Distinguished Name (DN)

```
CN=John Doe,OU=IT,OU=Users,DC=corp,DC=lan

CN  = Common Name (nom de l'objet)
OU  = Organizational Unit
DC  = Domain Component (chaque partie du domaine)

Exemples :
CN=Administrator,CN=Users,DC=corp,DC=lan
CN=Web Servers,OU=Computers,DC=corp,DC=lan
OU=Finance,OU=Users,DC=corp,DC=lan
```

## Trusts (relations d'approbation)

```powershell
# Voir les trusts
Get-ADTrust -Filter *
nltest /domain_trusts

# Types de trust
# - Parent/Child : automatique dans la même forêt
# - Forest Trust : entre deux forêts
# - External : domaine hors forêt
# - Shortcut : raccourci dans une forêt complexe
```

## FSMO Roles

```powershell
# Voir les détenteurs de rôles FSMO
netdom query fsmo

# Les 5 rôles :
# - Schema Master (1 par forêt)
# - Domain Naming Master (1 par forêt)
# - PDC Emulator (1 par domaine)
# - RID Master (1 par domaine)
# - Infrastructure Master (1 par domaine)
```

## Replication AD

```powershell
# Vérifier la réplication
repadmin /showrepl
repadmin /replsummary

# Forcer une réplication
repadmin /syncall /AdeP

# Diagnostics
dcdiag /test:replications
dcdiag /test:netlogon
```

<Tip>
Les comptes inactifs et les groupes imbriqués sont les premières cibles lors d'un pentest AD. Faire un audit régulier avec `Get-ADUser -Filter {LastLogonDate -lt ...}` et `Get-ADGroupMember` récursif sur les groupes privilégiés.
</Tip>
