# Raise domain and forest functional levels in Active Directory Domain Services

# Raise domain and forest functional levels in Active Directory Domain Services

<div class="display-flex gap-xxs justify-content-space-between align-items-center flex-wrap-wrap page-metadata-container" id="bkmrk-article-11%2F01%2F2024-4">- Article
- 11/01/2024
- <button class="contributors-button link-button" data-bi-name="contributors" type="button">4 contributors</button>
- Applies to: ✅ [Windows Server 2025](https://learn.microsoft.com/windows-server/get-started/windows-server-release-info), ✅ [Windows Server 2022](https://learn.microsoft.com/windows-server/get-started/windows-server-release-info), ✅ [Windows Server 2019](https://learn.microsoft.com/windows-server/get-started/windows-server-release-info), ✅ [Windows Server 2016](https://learn.microsoft.com/windows-server/get-started/windows-server-release-info)

<div class="margin-block-xxs display-none-print" data-hide-on-archived="" id="bkmrk-feedback"><button class="button button-sm button-clear button-primary" data-bi-name="user-feedback-button" data-test-id="conceptual-feedback-button" data-user-feedback-button="" id="bkmrk-feedback-1" type="button">Feedback</button></div></div><nav aria-label="In this article" class="doc-outline display-none-print margin-bottom-sm" data-bi-name="intopic toc" id="bkmrk-in-this-article-prer">## In this article

1. [Prerequisites](https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/raise-domain-forest-functional-levels?tabs=desktop#prerequisites)
2. [View the current functional level](https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/raise-domain-forest-functional-levels?tabs=desktop#view-the-current-functional-level)
3. [Raise the functional level](https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/raise-domain-forest-functional-levels?tabs=desktop#raise-the-functional-level)
4. [Related content](https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/raise-domain-forest-functional-levels?tabs=desktop#related-content)

</nav>Functional levels determine the available Active Directory Domain Services (AD DS) domain or forest capabilities. Functional levels also determine which Windows Server operating systems you can run on domain controllers in the domain or forest. Level changes happen when you use later versions of your domain controller operating system, the domain, or your forest functional level. This article describes how to raise Active Directory domain and forest functional levels. We recommend you upgrade Active Directory Domain Service servers to the latest release.

To enable the latest domain features, all domain controllers in the domain must run the version of Windows Server that matches or is newer than the desired functional level. If they don't meet this requirement, the administrator can't raise the domain functional level.

To enable the latest forest-wide features, all domain controllers in the forest must run the Windows Server operating system version that matches or is newer than the desired functional level. The current domain functional level must already be at the latest level. If the forest meets these requirements, the administrator can raise the forest functional level.

The domain and forest functional levels only affect how the domain controllers operate together as a group. The clients that interact with the domain or with the forest are unaffected by the changes. Applications are also unaffected by these changes. However, applications can use new features found in later versions of Windows Server once the administrator raises the domain level. For more information about the functional levels, see [Active Directory Domain Services functional levels](https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/active-directory-functional-levels).

 Warning

Changes to the domain and forest functional levels are irreversible. In order to undo the change, you must perform a forest recovery to revert to an earlier point in time.

## Prerequisites

You need to complete the following things to raise the domain functional level:

<div class="content" id="bkmrk-all-domain-controlle">- All domain controllers in the domain are running at least the version of Windows Server that you want to raise the domain functional level to. For example, to raise the domain functional level to Windows Server 2025, all domain controllers in the domain must be running Windows Server 2025. If you have domain controllers running earlier versions of Windows Server, you must upgrade them to Windows Server 2025 before you can raise the domain functional level.
- Before you can promote a machine running Windows Server 2025 to a domain controller in an existing domain, that domain must also be at least at the Windows Server 2016 functional level. Earlier versions of Windows Server don't support Windows Server 2025 domain controllers.
- Your Active Directory forest and domain is operational and free from replication errors. To learn more about replication errors, see [Diagnose Active Directory replication failures](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/diagnose-replication-failures).
- Identify all your DCs hosting the Global Catalog (GC) and FSMO roles. Create and verify backups of these domain controllers before making changes.
- You must be a member of the Enterprise Admins group or equivalent to raise the forest functional level.
- You must have a computer with either of the following Remote Server Administration Tools (RSAT) installed:
    
    
    - AD DS Tools.
        
        OR
    - Active Directory module for Windows PowerShell.

</div>To view the domain or forest functional level using PowerShell, follow these steps.

1. Sign in to a computer with the AD DS Remote Server Administration Tools (RSAT) installed.
2. Open PowerShell as an administrator.
3. Run the following command to view the current domain functional levels of all domains in the forest.
    
    <div class="codeHeader" data-bi-name="code-header" id="bkmrk-powershellcopy"><span class="language">PowerShell</span><button class="action position-relative display-none-print" data-bi-name="copy" type="button">Copy</button><div aria-hidden="true" class="successful-copy-alert position-absolute right-0 top-0 left-0 bottom-0 display-flex align-items-center justify-content-center has-text-success-invert has-background-success is-transparent">  
    </div></div>```
    Get-ADForest | Select-Object -ExpandProperty Domains | ForEach-Object { Get-ADDomain $_ } | Select-Object Name, DomainMode
    
    ```
4. Run the following command to view the current forest functional level, replacing `<forest>` with the forest name.
    
    <div class="codeHeader" data-bi-name="code-header" id="bkmrk-powershellcopy-1"><span class="language">PowerShell</span><button class="action position-relative display-none-print" data-bi-name="copy" type="button">Copy</button><div aria-hidden="true" class="successful-copy-alert position-absolute right-0 top-0 left-0 bottom-0 display-flex align-items-center justify-content-center has-text-success-invert has-background-success is-transparent">  
    </div></div>```
    Get-ADForest -Identity <forest> | Select-Object ForestMode
    
    ```

For more information about the `Get-ADDomain` and `Get-ADForest` cmdlets, see [Get-ADDomain](https://learn.microsoft.com/en-us/powershell/module/activedirectory/get-addomain) and [Get-ADForest](https://learn.microsoft.com/en-us/powershell/module/activedirectory/get-adforest).

To raise the domain or forest functional level using PowerShell, follow these steps.

1. Sign in to a computer with the AD DS Remote Server Administration Tools (RSAT) installed.
2. Open PowerShell as an administrator.
3. Run the following command to raise the domain functional level, replacing `<domain>` with the domain name and `<level>` with the desired domain functional level.
    
    <div class="codeHeader" data-bi-name="code-header" id="bkmrk-powershellcopy-2"><span class="language">PowerShell</span><button class="action position-relative display-none-print" data-bi-name="copy" type="button">Copy</button><div aria-hidden="true" class="successful-copy-alert position-absolute right-0 top-0 left-0 bottom-0 display-flex align-items-center justify-content-center has-text-success-invert has-background-success is-transparent">  
    </div></div>```
    Set-ADDomainMode -Identity <domain> -DomainMode <level>
    
    ```
4. To confirm the change, select **Y**.
5. Once the domain functional level is raised, run the following command to raise the forest functional level, replacing `<level>` with the desired forest functional level.
    
    <div class="codeHeader" data-bi-name="code-header" id="bkmrk-powershellcopy-3"><span class="language">PowerShell</span><button class="action position-relative display-none-print" data-bi-name="copy" type="button">Copy</button><div aria-hidden="true" class="successful-copy-alert position-absolute right-0 top-0 left-0 bottom-0 display-flex align-items-center justify-content-center has-text-success-invert has-background-success is-transparent">  
    </div></div>```
    Set-ADForestMode -Identity <forest> -ForestMode <level>
    
    ```
6. To confirm the change, select **Y**.

You've now raised the domain and forest functional level. For more information about the `Set-ADDomainMode` and `Set-ADForestMode` cmdlets, see [Set-ADDomainMode](https://learn.microsoft.com/en-us/powershell/module/activedirectory/set-addomainmode) and [Set-ADForestMode](https://learn.microsoft.com/en-us/powershell/module/activedirectory/set-adforestmode).