DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk8 min

Active Directory: Check Domain and Forest Functional Level

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Active Directory functional levels control which Active Directory features are available in a domain and across the entire forest. If you’re planning an upgrade, deploying newer domain controllers, or troubleshooting replication/feature behavior, you need an accurate answer for both domain and forest functional levels.

This guide shows several reliable ways to check functional levels—GUI and PowerShell—so you can verify the current state without guessing. You’ll also learn how to interpret the values and what to do when commands return nothing or errors.

As an Amazon Associate I earn from qualifying purchases.

What Functional Level Means (Domain vs. Forest)

Domain functional level is the minimum feature set enabled for a specific domain. Raising it allows domain-scoped features that may require newer Windows Server versions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Forest functional level is the minimum feature set across the whole forest. It gates features that are forest-wide (not just inside one domain) and can be more restrictive.

In practice, you often see the domain level at or below the forest level. You can raise one without the other, but you must follow Microsoft’s upgrade rules and compatibility requirements.

Prerequisites and Permissions

Before you check functional levels, confirm you have the right access and tools installed. A functional level query is read-only, but you still need directory read permissions and, for some GUI consoles, administrative privileges to open the right properties pages.

Minimum permissions

  • At least Domain Users can often read functional level via PowerShell if the account can query AD, but in real environments you’ll usually use an account with permissions to read directory configuration.
  • To avoid surprises, use an account with Domain Admins or equivalent rights when running GUI consoles.

Required modules and OS support

  • For the most reliable results, use Windows PowerShell 5.1 or newer with the ActiveDirectory module.
  • On Windows Server, you can install the RSAT feature that includes Active Directory tools (often called Active Directory Domain Services Tools).

If you’re on Windows Server Core or a workstation without the module, use the PowerShell method after installing RSAT, or use an alternative GUI path where available.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Method 1: Check Functional Level from AD Administrative Center (GUI)

The Active Directory Administrative Center (ADAC) gives a clean GUI view, especially on newer Windows Server builds. It’s often the easiest GUI option once ADAC is installed.

Steps

  1. Open Active Directory Administrative Center (from Server Manager or by searching on the Start menu).
  2. In the left tree, click your Active Directory instance.
  3. Expand the navigation to find AD Sites and then Domains (exact placement can vary slightly by ADAC version).
  4. Locate your domain, then select it and look for Properties.
  5. In the Properties window, find Functional level for the domain.
  6. To find the forest functional level, locate forest-level properties from the root/connection node for your forest. If you don’t see it directly in Properties, switch to Method 2 or PowerShell.

If ADAC doesn’t show forest functional level clearly (this can happen depending on console version and permissions), use the PowerShell method below. It’s the most consistent across environments.

Method 2: Check Functional Level from Active Directory Domains and Trusts (GUI)

This is the classic MMC route. It’s dependable and commonly available on Windows Server systems with AD DS tools installed.

Steps (domain and forest)

  1. Open Active Directory Domains and Trusts (run domain.msc).
  2. In the left pane, click your domain name.
  3. Right-click and choose Properties.
  4. Look for Functional level—this is the domain functional level.
  5. To find forest functional level, you typically check it from the Active Directory Domains and Trusts console root via forest-level properties, which may require additional navigation or a connection to the forest root.

Because GUI placement can differ, many admins prefer PowerShell for the forest functional level. If you can’t find the forest value in your MMC, Method 3 will give it precisely.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Method 3: Check Functional Level with PowerShell (Recommended)

PowerShell is the fastest and most exact way to retrieve both domain and forest functional levels. It avoids console UI differences and returns values in a form you can log and compare over time.

Install the ActiveDirectory module (if needed)

On Windows Server, you can install RSAT tools. On a workstation, ensure the RSAT AD module is present.

  • Then verify the module loads: Import-Module ActiveDirectory

Check forest functional level

  1. Open an elevated PowerShell window (Run as Administrator).
  2. Run:
Import-Module ActiveDirectory

Get-ADForest | Select-Object Name, ForestMode, DomainNamingMaster

The ForestMode value is the forest functional level (for example, Windows2012R2Forest or Windows2016Forest).

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check domain functional level

  1. Run:
Get-ADDomain | Select-Object DNSRoot, NetBIOSName, DomainMode, PDCEmulator

The DomainMode value is the domain functional level (for example, Windows2012R2Domain or Windows2016Domain).

Check all domains in the forest (common in multi-domain forests)

  1. Run:
$forest = Get-ADForest

$domains = $forest.Domains

$results = foreach ($d in $domains) { Get-ADDomain -Identity $d | Select-Object DNSRoot, DomainMode

}

$results | Sort-Object DNSRoot | Format-Table -AutoSize

This is especially helpful if you have multiple domains and want to confirm whether one domain lags behind the rest.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Export results for auditing

$forest = Get-ADForest

$forest | Select-Object Name, ForestMode | Out-File -Encoding UTF8 .\ad-forest-functional-level.txt

$domains = $forest.Domains | ForEach-Object { Get-ADDomain -Identity $_ | Select-Object DNSRoot, DomainMode }

$domains | Export-Csv .\ad-domain-functional-levels.csv -NoTypeInformation -Encoding UTF8

Auditing matters when you’re planning upgrades, because functional levels should be tracked like configuration baselines.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Method 4: Check Functional Level with AD Module Tools and Command Line

If PowerShell isn’t available (locked-down environments), you can still extract some information using other AD tools, though the exact forest/domain functional level output can vary. In most real environments, PowerShell remains the most consistent.

Common command-line approach

Depending on your tooling, you may use dsquery / dsget approaches to locate configuration objects and then infer modes. That said, results are harder to interpret than the direct Get-ADForest and Get-ADDomain properties.

If you need certainty quickly, use PowerShell rather than reconstructing functional levels from directory objects.

Interpreting Results and Mapping Levels to Windows Versions

PowerShell returns functional levels as strings like Windows2012R2Forest. The naming usually maps cleanly to the minimum Windows Server version whose domain controller features are enabled.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Typical mapping you’ll see

Returned value example Meaning
Windows2008Domain / Windows2008Forest Functional level aligned with Windows Server 2008-era features
Windows2008R2Domain / Windows2008R2Forest Functional level aligned with Windows Server 2008 R2 features
Windows2012Domain / Windows2012Forest Functional level aligned with Windows Server 2012 features
Windows2012R2Domain / Windows2012R2Forest Functional level aligned with Windows Server 2012 R2 features
Windows2016Domain / Windows2016Forest Functional level aligned with Windows Server 2016 features
Windows2019Domain / Windows2019Forest Functional level aligned with Windows Server 2019 features
Windows2022Domain / Windows2022Forest Functional level aligned with Windows Server 2022 features

If you need exact feature gating details for a specific Windows Server release, base it on the official Microsoft functional level feature matrix for that version.

Rank #4
Sale
Mastering Active Directory: Design, deploy, and protect Active Directory Domain Services for Windows Server 2022
  • Mastering Active Directory: Design, deploy, and protect Active Directory Domain Services for Windows Server 2022, 3rd Edition
  • ABIS BOOK
  • Packt Publishing

Common Issues and Troubleshooting

Functional level checks are simple when AD is healthy. When you hit errors, it’s usually connectivity, DNS, module installation, or targeting the wrong domain controller.

PowerShell error: ActiveDirectory module not found

Symptom: Import-Module : The specified module 'ActiveDirectory' was not loaded.

  • Install RSAT AD DS tools on the machine running PowerShell.
  • Confirm PowerShell version is modern enough (5.1 is typically fine).
  • Re-run Import-Module ActiveDirectory.

PowerShell error: Cannot find object or DNS issues

Symptom: Get-ADForest fails, often with messages about connectivity or naming.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Verify DNS resolves your domain controllers: run nslookup <your-domain>.
  • Check that your client can reach a domain controller over 53/88/389 (or whatever ports your environment uses).
  • Try specifying a domain controller explicitly:
$dc = "dc01.yourdomain.local"

Get-ADForest -Server $dc | Select Name, ForestMode

Get-ADDomain -Server $dc | Select DNSRoot, DomainMode

Inconsistent values across domains

Symptom: forest functional level is higher than a particular domain functional level.

  • That’s possible and not necessarily incorrect—one domain can lag if functional level was raised earlier for some domains or a specific administrative decision was deferred.
  • Use the “all domains” script from Method 3 to pinpoint which domain differs.

GUI doesn’t show forest functional level

Some console views don’t expose forest functional level cleanly. If the MMC doesn’t show what you need, switch to PowerShell immediately. It’s the most reliable method for audit-grade output.

Replication or authentication problems

Functional level values are directory attributes, so if you’re seeing strange failures, the underlying AD health issue may be your real problem. Check replication and authentication first (replication status, DC event logs, and DNS records), then re-run the PowerShell queries.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When You Should Care (Upgrade Planning and Compatibility)

Knowing domain and forest functional levels helps you plan upgrades with fewer surprises. You’ll also avoid installing features or expecting behaviors that your current modes don’t support.

Concrete scenarios

  • Raising functional level: You can’t raise the forest functional level unless requirements are met across the forest, including DC version readiness and absence of incompatible domain controllers.
  • New DC deployments: You need a minimum functional level and compatible schema expectations for certain operations.
  • Compatibility troubleshooting: If an application depends on directory behaviors introduced in a specific Windows Server generation, mismatched functional levels can look like “random” auth failures.

If you’re doing an upgrade project (for example, moving from Windows Server 2012 R2-era modes toward newer builds), treat these functional level checks as a baseline artifact you can attach to your change record.

FAQs

Can I check functional level without being a Domain Admin?

You might be able to read it depending on your AD read permissions and how your environment secures directory queries. In practice, Domain Admin (or equivalent) avoids authorization issues, especially with GUI consoles.

Will functional level change automatically when I add newer domain controllers?

No. Adding or upgrading domain controllers doesn’t automatically raise functional levels. Functional level updates are an explicit action.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What’s the difference between functional level and schema version?

Schema version tracks the schema’s current revision. Functional level controls which domain/forest features are enabled. You can have a newer schema with a lower functional level in certain scenarios.

Why does PowerShell show strings like Windows2016Forest instead of a number?

Microsoft represents functional levels as named enums. Those strings correspond to specific functional level gates that map to particular Windows Server feature sets.

Bottom Line

For precise, audit-friendly results, use PowerShell: Get-ADForest for ForestMode and Get-ADDomain for DomainMode. GUI tools can work for domain values, but PowerShell is consistently better for forest-level verification and multi-domain forests.

Once you know both levels, you can plan upgrades and feature deployments with confidence—and you’ll be able to explain compatibility constraints to stakeholders without guesswork.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.