<p>Bonjour,</p>
<p>La rétrogradation du niveau fonctionnel d’un domaine ou d’une forêt Active Directory est l’une des questions les plus importantes en administration Windows Server. La réponse est directe et fondamentale : <strong>il est impossible de rétrograder un niveau fonctionnel AD une fois qu’il a été élevé</strong>, sauf dans des cas très spécifiques. Voici une analyse complète de la situation.</p>
<h2><a name="p-34550-principe-fondamental-lirrversibilit-des-niveaux-fonctionnels-1" class="anchor" href="#p-34550-principe-fondamental-lirrversibilit-des-niveaux-fonctionnels-1" aria-label="Heading link"></a>Principe fondamental : l’irréversibilité des niveaux fonctionnels</h2>
<p>Active Directory fonctionne sur le principe d’une <strong>progression unidirectionnelle</strong> des niveaux fonctionnels. Une fois qu’un niveau fonctionnel de domaine (DFL - Domain Functional Level) ou de forêt (FFL - Forest Functional Level) est élevé, il ne peut <strong>pas être abaissé</strong> par des moyens normaux.</p>
<p><strong>Raison technique</strong> : l’élévation du niveau fonctionnel active des fonctionnalités et des schémas qui modifient la structure interne de la base de données AD. Ces modifications ne sont pas réversibles car elles impliqueraient la perte de données ou de fonctionnalités qui pourraient déjà être utilisées.</p>
<h2><a name="p-34550-niveaux-fonctionnels-disponibles-par-version-2" class="anchor" href="#p-34550-niveaux-fonctionnels-disponibles-par-version-2" aria-label="Heading link"></a>Niveaux fonctionnels disponibles par version</h2>
<h3><a name="p-34550-niveaux-fonctionnels-de-domaine-dfl-3" class="anchor" href="#p-34550-niveaux-fonctionnels-de-domaine-dfl-3" aria-label="Heading link"></a>Niveaux fonctionnels de domaine (DFL)</h3>
<div class="md-table">
<table>
<thead>
<tr>
<th>Niveau</th>
<th>Valeur numérique</th>
<th>Contrôleurs de domaine compatibles</th>
</tr>
</thead>
<tbody>
<tr>
<td>Windows Server 2008</td>
<td>4</td>
<td>WS 2008 et supérieur</td>
</tr>
<tr>
<td>Windows Server 2008 R2</td>
<td>5</td>
<td>WS 2008 R2 et supérieur</td>
</tr>
<tr>
<td>Windows Server 2012</td>
<td>6</td>
<td>WS 2012 et supérieur</td>
</tr>
<tr>
<td>Windows Server 2012 R2</td>
<td>7</td>
<td>WS 2012 R2 et supérieur</td>
</tr>
<tr>
<td>Windows Server 2016</td>
<td>10</td>
<td>WS 2016 et supérieur</td>
</tr>
<tr>
<td>Windows Server 2019</td>
<td>10</td>
<td>WS 2016/2019</td>
</tr>
<tr>
<td>Windows Server 2022</td>
<td>10</td>
<td>WS 2016/2019/2022</td>
</tr>
</tbody>
</table>
</div><blockquote>
<p><strong>Note</strong> : Windows Server 2019 et 2022 n’ont pas introduit de nouveau niveau fonctionnel — ils utilisent tous le niveau 10 (WS 2016).</p>
</blockquote>
<h3><a name="p-34550-vrifier-le-niveau-fonctionnel-actuel-4" class="anchor" href="#p-34550-vrifier-le-niveau-fonctionnel-actuel-4" aria-label="Heading link"></a>Vérifier le niveau fonctionnel actuel</h3>
<pre data-code-wrap="powershell"><code class="lang-powershell"># Vérifier le niveau fonctionnel du domaine
Get-ADDomain | Select-Object Name, DomainMode
Vérifier le niveau fonctionnel de la forêt
Get-ADForest | Select-Object Name, ForestMode
Informations complètes
Get-ADDomain | Select-Object Name, DomainMode, DomainSID
Get-ADForest | Select-Object Name, ForestMode, SchemaMaster, DomainNamingMaster
</code></pre>
<h2><a name="p-34550-exception-la-rtrogradation-est-possible-aprs-lvation-vers-ws-2008-r2-ou-suprieur-5" class="anchor" href="#p-34550-exception-la-rtrogradation-est-possible-aprs-lvation-vers-ws-2008-r2-ou-suprieur-5" aria-label="Heading link"></a>Exception : la rétrogradation est possible après élévation vers WS 2008 R2 ou supérieur</h2>
<p>Microsoft a introduit une exception notable : depuis <strong>Windows Server 2008 R2</strong>, il est possible de <strong>rétrograder le niveau fonctionnel de domaine</strong> sous certaines conditions très précises.</p>
<h3><a name="p-34550-conditions-requises-pour-la-rtrogradation-6" class="anchor" href="#p-34550-conditions-requises-pour-la-rtrogradation-6" aria-label="Heading link"></a>Conditions requises pour la rétrogradation</h3>
<ol>
<li><strong>La rétrogradation ne peut se faire que d’un seul niveau à la fois</strong></li>
<li><strong>Aucune fonctionnalité exclusive au niveau supérieur ne doit être utilisée</strong> (ex : la corbeille AD, les silos d’authentification, etc.)</li>
<li><strong>Tous les contrôleurs de domaine</strong> doivent être compatibles avec le niveau cible</li>
</ol>
<h3><a name="p-34550-fonctionnalits-bloquantes-selon-le-niveau-7" class="anchor" href="#p-34550-fonctionnalits-bloquantes-selon-le-niveau-7" aria-label="Heading link"></a>Fonctionnalités bloquantes selon le niveau</h3>
<div class="md-table">
<table>
<thead>
<tr>
<th>Fonctionnalité</th>
<th>Niveau requis</th>
<th>Bloque la rétrogradation vers</th>
</tr>
</thead>
<tbody>
<tr>
<td>Corbeille Active Directory</td>
<td>WS 2008 R2 (DFL)</td>
<td>WS 2008</td>
</tr>
<tr>
<td>Silos de stratégie d’authentification</td>
<td>WS 2012 R2 (DFL)</td>
<td>WS 2012</td>
</tr>
<tr>
<td>KDC avec support des revendications</td>
<td>WS 2012 (DFL)</td>
<td>WS 2008 R2</td>
</tr>
<tr>
<td>Chiffrement AES pour Kerberos</td>
<td>WS 2008 (DFL)</td>
<td>WS 2003</td>
</tr>
</tbody>
</table>
</div><h3><a name="p-34550-vrifier-si-la-corbeille-ad-est-active-bloque-la-rtrogradation-vers-ws-2008-r2-8" class="anchor" href="#p-34550-vrifier-si-la-corbeille-ad-est-active-bloque-la-rtrogradation-vers-ws-2008-r2-8" aria-label="Heading link"></a>Vérifier si la Corbeille AD est activée (bloque la rétrogradation vers < WS 2008 R2)</h3>
<pre data-code-wrap="powershell"><code class="lang-powershell"># Vérifier si la corbeille AD est activée
$recBin = Get-ADOptionalFeature -Filter {name -like "Recycle Bin Feature"}
if ($recBin.EnabledScopes) {
Write-Host "Corbeille AD activée - rétrogradation vers WS2008 IMPOSSIBLE" -ForegroundColor Red
} else {
Write-Host "Corbeille AD non activée" -ForegroundColor Green
}
</code></pre>
<h2><a name="p-34550-procdure-de-rtrogradation-si-applicable-9" class="anchor" href="#p-34550-procdure-de-rtrogradation-si-applicable-9" aria-label="Heading link"></a>Procédure de rétrogradation (si applicable)</h2>
<p>Si les conditions sont réunies, voici comment procéder :</p>
<h3><a name="p-34550-via-powershell-10" class="anchor" href="#p-34550-via-powershell-10" aria-label="Heading link"></a>Via PowerShell</h3>
<pre data-code-wrap="powershell"><code class="lang-powershell"># Rétrograder le niveau fonctionnel du domaine
Exemple : passer de Windows2012R2Domain à Windows2012Domain
Set-ADDomainMode -Identity "votre-domaine.fr" -DomainMode Windows2012Domain
Rétrograder le niveau fonctionnel de la forêt
Set-ADForestMode -Identity "votre-domaine.fr" -ForestMode Windows2012Forest
Confirmer la modification
Get-ADDomain | Select-Object Name, DomainMode
</code></pre>
<h3><a name="p-34550-via-linterface-graphique-domaines-et-approbations-ad-11" class="anchor" href="#p-34550-via-linterface-graphique-domaines-et-approbations-ad-11" aria-label="Heading link"></a>Via l’interface graphique (Domaines et approbations AD)</h3>
<ol>
<li>Ouvrez <strong>Domaines et approbations Active Directory</strong> (<code>domain.msc</code>)</li>
<li>Faites un <strong>clic droit</strong> sur le domaine</li>
<li>Sélectionnez <strong>Augmenter le niveau fonctionnel du domaine</strong></li>
<li>Si la rétrogradation est possible, vous verrez une option pour sélectionner un niveau inférieur</li>
<li>Cliquez sur <strong>Augmenter</strong> (le terme est trompeur, il s’applique aussi à la rétrogradation dans certains contextes)</li>
</ol>
<blockquote>
<p><strong>Important</strong> : L’interface graphique peut ne pas proposer explicitement la rétrogradation. Privilégiez PowerShell pour cette opération.</p>
</blockquote>
<h2><a name="p-34550-contexte-des-clusters-windows-server-12" class="anchor" href="#p-34550-contexte-des-clusters-windows-server-12" aria-label="Heading link"></a>Contexte des clusters Windows Server</h2>
<p>Si votre question concerne spécifiquement le <strong>niveau fonctionnel d’un cluster de basculement (Failover Cluster)</strong> plutôt que celui d’Active Directory, la situation est différente.</p>
<h3><a name="p-34550-niveau-fonctionnel-dun-cluster-de-basculement-13" class="anchor" href="#p-34550-niveau-fonctionnel-dun-cluster-de-basculement-13" aria-label="Heading link"></a>Niveau fonctionnel d’un cluster de basculement</h3>
<p>Le cluster de basculement Windows Server possède son propre niveau fonctionnel, distinct d’AD :</p>
<pre data-code-wrap="powershell"><code class="lang-powershell"># Vérifier le niveau fonctionnel du cluster
Get-Cluster | Select-Object Name, ClusterFunctionalLevel
Voir les niveaux disponibles
ClusterFunctionalLevel 8 = Windows Server 2012
ClusterFunctionalLevel 9 = Windows Server 2012 R2
ClusterFunctionalLevel 10 = Windows Server 2016
ClusterFunctionalLevel 11 = Windows Server 2019
ClusterFunctionalLevel 12 = Windows Server 2022
</code></pre>
<h3><a name="p-34550-rtrogradation-du-niveau-fonctionnel-dun-cluster-14" class="anchor" href="#p-34550-rtrogradation-du-niveau-fonctionnel-dun-cluster-14" aria-label="Heading link"></a>Rétrogradation du niveau fonctionnel d’un cluster</h3>
<p>Contrairement à Active Directory, le niveau fonctionnel d’un <strong>cluster de basculement ne peut pas être rétrogradé</strong> non plus. La seule façon de “rétrograder” est de :</p>
<ol>
<li><strong>Documenter la configuration</strong> actuelle du cluster</li>
<li><strong>Détruire le cluster</strong> (<code>Remove-Cluster</code>)</li>
<li><strong>Recréer le cluster</strong> sur des serveurs de la version cible</li>
<li><strong>Restaurer les rôles</strong> en cluster</li>
</ol>
<h2><a name="p-34550-alternative-la-rtrogradation-cration-dun-nouveau-dc-de-version-infrieure-15" class="anchor" href="#p-34550-alternative-la-rtrogradation-cration-dun-nouveau-dc-de-version-infrieure-15" aria-label="Heading link"></a>Alternative à la rétrogradation : création d’un nouveau DC de version inférieure</h2>
<p>Si votre objectif est d’introduire un contrôleur de domaine d’une version antérieure dans votre domaine existant (sans rétrograder le niveau fonctionnel), voici les vérifications nécessaires :</p>
<pre data-code-wrap="powershell"><code class="lang-powershell"># Vérifier si le niveau fonctionnel actuel permet l'ajout d'un DC d'une version antérieure
Un DC ne peut rejoindre un domaine que si sa version >= niveau fonctionnel du domaine
$domain = Get-ADDomain
Write-Host "Niveau fonctionnel du domaine : $($domain.DomainMode)"
Write-Host "Pour ajouter un DC, sa version doit être >= à ce niveau"
Lister les DCs existants et leurs versions
Get-ADDomainController -Filter * |
Select-Object Name, IPv4Address, OperatingSystem, OperatingSystemVersion |
Format-Table -AutoSize
</code></pre>
<h2><a name="p-34550-stratgie-recommande-prserver-la-flexibilit-lors-des-mises-niveau-16" class="anchor" href="#p-34550-stratgie-recommande-prserver-la-flexibilit-lors-des-mises-niveau-16" aria-label="Heading link"></a>Stratégie recommandée : préserver la flexibilité lors des mises à niveau</h2>
<p>Pour éviter de se retrouver dans une situation où une rétrogradation est nécessaire, voici les bonnes pratiques :</p>
<h3><a name="p-34550-avant-dlever-le-niveau-fonctionnel-17" class="anchor" href="#p-34550-avant-dlever-le-niveau-fonctionnel-17" aria-label="Heading link"></a>Avant d’élever le niveau fonctionnel</h3>
<pre data-code-wrap="powershell"><code class="lang-powershell"># Checklist avant élévation du niveau fonctionnel
1. S'assurer qu'aucun DC de version ancienne n'existe encore
Get-ADDomainController -Filter * | Select-Object Name, OperatingSystem
2. Vérifier la santé de la réplication
repadmin /replsummary
dcdiag /test:replications
3. Sauvegarder l'état système de tous les DCs
(via Windows Server Backup ou solution tierce)
4. Documenter le niveau fonctionnel actuel
Get-ADDomain | Select-Object DomainMode | Export-Csv "C:\AD_DFL_before_upgrade.csv"
Get-ADForest | Select-Object ForestMode | Export-Csv "C:\AD_FFL_before_upgrade.csv"
</code></pre>
<h2><a name="p-34550-restauration-depuis-une-sauvegarde-solution-ultime-18" class="anchor" href="#p-34550-restauration-depuis-une-sauvegarde-solution-ultime-18" aria-label="Heading link"></a>Restauration depuis une sauvegarde (solution ultime)</h2>
<p>Si une rétrogradation est absolument indispensable et qu’aucune des méthodes ci-dessus n’est applicable, la <strong>seule option restante</strong> est une <strong>restauration autoritaire</strong> depuis une sauvegarde effectuée avant l’élévation du niveau fonctionnel.</p>
<p>Cette opération implique :</p>
<ol>
<li>Une <strong>restauration autoritaire de l’état du système</strong> (Authoritative Restore) sur tous les DCs</li>
<li>Une <strong>coordination précise</strong> de la réplication entre tous les contrôleurs</li>
<li>Un <strong>impact potentiellement majeur</strong> sur tous les objets AD modifiés depuis la sauvegarde</li>
</ol>
<blockquote>
<p><strong>Avertissement</strong> : Une restauration autoritaire en production est une opération à très haut risque. Elle doit être effectuée uniquement par un ingénieur AD expérimenté, avec un plan de rollback documenté et une fenêtre de maintenance planifiée.</p>
</blockquote>
<h2><a name="p-34550-conclusion-19" class="anchor" href="#p-34550-conclusion-19" aria-label="Heading link"></a>Conclusion</h2>
<p>En résumé : <strong>la rétrogradation d’un niveau fonctionnel Active Directory ou d’un cluster Windows Server n’est pas une opération standard prise en charge</strong>. Les rares exceptions concernent des scénarios très précis avec Windows Server 2008 R2+ et uniquement si aucune fonctionnalité exclusive au niveau supérieur n’a été activée.</p>
<p>Pour votre situation spécifique, pourriez-vous préciser : quel niveau fonctionnel actuel cherchez-vous à rétrograder, vers quel niveau cible, et quelle est la raison de cette rétrogradation ? Ces informations me permettront de vous proposer la meilleure approche ou, si la rétrogradation est impossible, une alternative viable pour atteindre votre objectif.</p>