Active Directory Domain Services : installer un contrôleur de domaine

Active Directory Domain Services : installer un contrôleur de domaine

Mettez en place un domaine Active Directory sur Windows Server pour centraliser l'authentification, les permissions, les GPO et la gestion des postes. Le tuto va du serveur vierge au premier user connecté.

Introduction

Active Directory Domain Services (AD DS) est le service d'annuaire de Microsoft. Il centralise :

  • Comptes utilisateurs et groupes
  • Authentification (Kerberos, NTLM)
  • Stratégies de groupe (GPO) pour configurer postes et serveurs
  • DNS interne
  • Permissions sur ressources (partages, imprimantes, serveurs)

Indispensable dès qu'on a 5+ machines Windows à gérer.

Prérequis

  • Windows Server 2019 / 2022 / 2025 (Standard ou Datacenter)
  • Au moins 2 vCPU et 4 Go de RAM (8 Go recommandé)
  • IP statique configurée
  • Hostname défini (ne pas changer après promotion DC)
  • Au moins 40 Go d'espace disque

Étape 1 : Préparer le serveur

Définir le hostname

Rename-Computer -NewName "DC01" -Restart

Configurer IP statique

# Voir les interfaces
Get-NetAdapter

# Configurer (adaptez InterfaceIndex)
New-NetIPAddress -InterfaceIndex 4 -IPAddress 10.0.0.10 -PrefixLength 24 -DefaultGateway 10.0.0.1
Set-DnsClientServerAddress -InterfaceIndex 4 -ServerAddresses 127.0.0.1, 8.8.8.8

⚠️ Le DNS primaire pointera vers 127.0.0.1 une fois AD DS installé (le DC est son propre DNS).

Étape 2 : Installer le rôle AD DS

Via PowerShell

Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools

Via Server Manager (GUI)

  1. Server Manager → Manage → Add Roles and Features
  2. Cochez Active Directory Domain Services
  3. Next → Next → Install

Étape 3 : Promouvoir le serveur en contrôleur de domaine

Via PowerShell

Install-ADDSForest `
    -DomainName "verycloud.local" `
    -DomainNetbiosName "VERYCLOUD" `
    -ForestMode "WinThreshold" `
    -DomainMode "WinThreshold" `
    -InstallDns `
    -CreateDnsDelegation:$false `
    -DatabasePath "C:\Windows\NTDS" `
    -LogPath "C:\Windows\NTDS" `
    -SysvolPath "C:\Windows\SYSVOL" `
    -NoRebootOnCompletion:$false `
    -Force

On vous demandera un DSRM password (Directory Services Restore Mode). Notez-le précieusement.

Via Server Manager

  1. Bannière jaune en haut de Server Manager → Promote this server to a domain controller
  2. Add a new forest → Root domain name : verycloud.local
  3. Functional level : Windows Server 2016 (ou plus récent si tous vos DC le supportent)
  4. DSRM password : un mot de passe fort
  5. Cliquez Next jusqu'à Install

Le serveur redémarre automatiquement.

Étape 4 : Premier login en mode domaine

Au login, utilisez :

  • Username : VERYCLOUD\Administrator
  • Password : le mot de passe Administrator existant

Vérifiez :

Get-ADDomain
Get-ADForest
Get-ADDomainController

Étape 5 : Choix du nom de domaine

Bonnes pratiques :

  • verycloud.local (TLD interne, traditionnel mais déprécié par Microsoft)
  • ad.verycloud.fr (sous-domaine de votre vrai domaine, recommandé)
  • verycloud.fr (votre domaine public, casse les services publics)
  • domain.com (impersonne un domaine externe)

Le standard moderne est ad.votre-domaine.fr ou corp.votre-domaine.fr.

Étape 6 : Structure des Unités d'Organisation (OU)

Avant de créer des users, structurez votre domaine. Exemple type :

verycloud.local
├── _Disabled (compte désactivés)
├── Computers
│   ├── Servers
│   │   ├── Web
│   │   ├── DB
│   │   └── Apps
│   └── Workstations
│       ├── IT
│       └── Office
├── Users
│   ├── IT
│   ├── Sales
│   └── Office
├── Groups
│   ├── Security
│   └── Distribution
└── Service Accounts

Créer via PowerShell :

New-ADOrganizationalUnit -Name "Servers" -Path "OU=Computers,DC=verycloud,DC=local"
New-ADOrganizationalUnit -Name "Web" -Path "OU=Servers,OU=Computers,DC=verycloud,DC=local"
New-ADOrganizationalUnit -Name "IT" -Path "OU=Users,DC=verycloud,DC=local"

Étape 7 : Créer des utilisateurs

Un user

$pwd = ConvertTo-SecureString "TempPassword2024!" -AsPlainText -Force

New-ADUser `
    -Name "Mathys Founder" `
    -GivenName "Mathys" `
    -Surname "Founder" `
    -SamAccountName "mathys" `
    -UserPrincipalName "[email protected]" `
    -Path "OU=IT,OU=Users,DC=verycloud,DC=local" `
    -AccountPassword $pwd `
    -ChangePasswordAtLogon $true `
    -Enabled $true

Import en bulk depuis CSV

CSV users.csv :

firstname,lastname,username,department
Alice,Smith,alice.smith,Sales
Bob,Jones,bob.jones,IT
Import-Csv users.csv | ForEach-Object {
    $pwd = ConvertTo-SecureString "Welcome2024!" -AsPlainText -Force
    New-ADUser `
        -Name "$($_.firstname) $($_.lastname)" `
        -GivenName $_.firstname `
        -Surname $_.lastname `
        -SamAccountName $_.username `
        -UserPrincipalName "$($_.username)@verycloud.local" `
        -Path "OU=$($_.department),OU=Users,DC=verycloud,DC=local" `
        -AccountPassword $pwd `
        -ChangePasswordAtLogon $true `
        -Enabled $true
}

Étape 8 : Créer des groupes

# Groupe de sécurité
New-ADGroup -Name "IT-Admins" -GroupCategory Security -GroupScope Global -Path "OU=Security,OU=Groups,DC=verycloud,DC=local"

# Ajouter des membres
Add-ADGroupMember -Identity "IT-Admins" -Members "mathys", "alice.smith"

# Lister les membres
Get-ADGroupMember "IT-Admins"

Étape 9 : Joindre une machine au domaine

Sur le poste client / autre serveur

Add-Computer -DomainName "verycloud.local" -Credential (Get-Credential) -Restart

Entrez VERYCLOUD\Administrator comme credentials.

⚠️ Vérifiez que :

  1. Le DNS du client pointe vers 10.0.0.10 (votre DC)
  2. La connectivité réseau fonctionne (ping DC01)

Étape 10 : Stratégies de groupe (GPO)

Les GPO permettent de pousser des configurations à tous les postes/serveurs joints au domaine.

Ouvrir GPMC

gpmc.msc

Exemple : forcer l'écran de veille après 10 min

  1. Forest : verycloud.local → Domains → verycloud.local
  2. Clic droit sur Default Domain PolicyEdit
  3. User Configuration → Policies → Administrative Templates → Control Panel → Personalization
  4. Enable screen saver : Enabled
  5. Screen saver timeout : 600 (secondes)
  6. Password protect the screen saver : Enabled

Exemple : verrouiller le panneau de configuration

  1. User Configuration → Policies → Administrative Templates → Control Panel
  2. Prohibit access to Control Panel : Enabled

Forcer l'application sur un client

gpupdate /force
gpresult /r

Étape 11 : Second contrôleur de domaine (redondance)

⚠️ Crucial en prod : si vous n'avez qu'un DC et qu'il tombe, plus aucune authentification ne fonctionne.

Sur un second serveur Windows :

# Installer le rôle
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools

# Promouvoir en DC additionnel
Install-ADDSDomainController `
    -DomainName "verycloud.local" `
    -InstallDns `
    -Credential (Get-Credential) `
    -SafeModeAdministratorPassword (Read-Host -AsSecureString) `
    -Force

Étape 12 : Backup AD

# Installer Windows Server Backup
Install-WindowsFeature Windows-Server-Backup

# Créer une politique de backup
$Policy = New-WBPolicy
$Vol = Get-WBVolume -VolumePath "C:"
Add-WBVolume -Policy $Policy -Volume $Vol
Add-WBSystemState -Policy $Policy
Add-WBBareMetalRecovery -Policy $Policy
$BackupTarget = New-WBBackupTarget -VolumePath "E:"
Add-WBBackupTarget -Policy $Policy -Target $BackupTarget
Set-WBSchedule -Policy $Policy -Schedule "02:00"
Set-WBPolicy -Policy $Policy

Étape 13 : DNS forwarders (résolution externe)

Pour que les clients du domaine résolvent les noms internet :

Add-DnsServerForwarder -IPAddress 1.1.1.1, 8.8.8.8
Get-DnsServerForwarder

Étape 14 : Sécuriser AD

Renommer le compte Administrator natif

Rename-LocalUser -Name "Administrator" -NewName "vc_admin"

Désactiver l'invité

Disable-LocalUser -Name "Guest"

Politique de mots de passe

Set-ADDefaultDomainPasswordPolicy `
    -Identity verycloud.local `
    -ComplexityEnabled $true `
    -MinPasswordLength 12 `
    -MaxPasswordAge 90.00:00:00 `
    -MinPasswordAge 1.00:00:00 `
    -PasswordHistoryCount 12 `
    -LockoutThreshold 5 `
    -LockoutDuration 00:30:00

Audit des connexions

GPMC.msc → Default Domain Controllers Policy → Advanced Audit Policy → Account Logon → tout en Success et Failure.

Dépannage

"Cannot find the domain controller"

DNS mal configuré sur le client. Vérifiez :

nslookup verycloud.local

Doit retourner l'IP de votre DC. Sinon, ajustez le DNS du client vers le DC.

"The trust relationship between this workstation and the primary domain failed"

Le compte machine est désynchronisé. Rejoindrez le domaine :

Test-ComputerSecureChannel -Credential (Get-Credential) -Repair

Replication entre DC ne fonctionne pas

repadmin /showrepl
repadmin /syncall /AdeP

Espace SYSVOL plein

Vérifiez :

dfsrdiag pollad

Commandes utiles

# Domaine et forêt
Get-ADDomain
Get-ADForest
Get-ADDomainController -Filter *

# Users
Get-ADUser -Filter * | Measure-Object        # Compter
Get-ADUser -Identity mathys -Properties *    # Détails
Search-ADAccount -LockedOut                  # Comptes verrouillés
Search-ADAccount -PasswordExpired            # Mots de passe expirés

# Groupes
Get-ADGroup -Filter *
Get-ADGroupMember "Domain Admins"

# Computers
Get-ADComputer -Filter * | Format-Table Name, OperatingSystem

# Last logon
Get-ADUser -Filter * -Properties LastLogonDate | 
    Sort LastLogonDate -Descending | 
    Select Name, LastLogonDate -First 20

# Comptes inactifs (90 jours)
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 -UsersOnly

# Forcer la réplication
repadmin /syncall /AdeP

# Vérifier la santé AD
dcdiag /v

Conclusion

Votre Active Directory est opérationnel. Bénéfices :

  • Authentification centralisée pour tout le parc
  • Déploiement de config par GPO
  • Audit complet des connexions
  • Base pour les services Microsoft (Exchange, SharePoint, Intune)

Pour aller plus loin :

  • Mettez en place AD Connect pour synchroniser avec Microsoft Entra ID (Azure AD)
  • Configurez LAPS (Local Admin Password Solution) pour les mots de passe admin local
  • Implémentez Privileged Access Management (PAM) pour les admins
  • Migrez vers Microsoft Entra Domain Services pour du cloud-only

Ressources

Join our Discord community server

For any questions, suggestions, or just to chat with the community, join us on Discord!

900+Members