When managing a hybrid Office 365 environment with tools like EasyEntra, your local Active Directory needs to know how to store Exchange-specific attributes. If your schema isn’t up to date, your administration tools won’t find the necessary fields, leading to errors like “The Specified Directory Service Attribute or Value Does Not Exist.” The easiest and quickest way to check your environment’s health is by checking both your Active Directory and Exchange schema versions using PowerShell.
Prepare AD and Domains for Exchange Server Using PowerShell
Open PowerShell as an Administrator and run the following script to extend the Active Directory Schema for Exchange server.
Import-Module ActiveDirectory
$SchemaVersions = @()
$SchemaPartition = (Get-ADRootDSE).NamingContexts | ? { $_.SubString(0, 9).ToLower() -eq 'cn=schema' }
$SchemaVersionAD = (Get-ADObject $SchemaPartition -Property objectVersion).objectVersion
$SchemaVersions += @{'Active Directory' = $SchemaVersionAD}
$SchemaPathExchange = "CN=ms-Exch-Schema-Version-Pt,$SchemaPartition"
if (Test-Path "AD:$SchemaPathExchange") {
$SchemaVersionExchange = (Get-ADObject $SchemaPathExchange -Property rangeUpper).rangeUpper
$SchemaVersions += @{'Exchange' = $SchemaVersionExchange}
} else {
$SchemaVersions += @{'Exchange' = "-"}
}
Write-Output $SchemaVersions When the script runs, it queries your Directory Service and outputs two critical numbers. Here is an example of a healthy, modern environment:
Here, the AD value tells you the base operating system level of your Active Directory schema.
- Value 88: Indicates that your schema is updated to Windows Server 2019.
- (Other common values include 87 for Windows Server 2016 and 69 for Windows Server 2012 R2).
The Exchange value corresponds to the rangeUpper attribute of your Exchange extensions.
- Value 17003: Indicates that your schema has been successfully extended for Exchange Server 2019 (specifically Cumulative Update 14 / CU14 or later, extending into Exchange Server Subscription Edition).
- The Threshold: To use fully supported hybrid management without throwing missing attribute errors, your Exchange version needs to read 14726 (Exchange 2010 SP1) or higher.
Active Directory and Exchange Schema Version Reference Tables
Use the following tables to interpret the schema version values returned by the PowerShell script.
Active Directory Schema Version
| AD Version | Schema Version |
|---|---|
| Windows Server 2019 | 88 |
| Windows Server 2016 | 87 |
| Windows Server 2012 R2 | 69 |
| Windows Server 2012 | 56 |
| Windows Server 2008 R2 | 47 |
| Windows Server 2008 | 44 |
| Windows Server 2003 R2 | 31 |
| Windows Server 2003 | 30 |
| Windows 2000 Server | 13 |
Exchange Schema Version Numbers
| Exchange Version | Schema Version |
|---|---|
| Exchange 2019 CU12 | 17003 |
| Exchange 2019 CU8 | 17002 |
| Exchange 2019 CU2 | 17001 |
| Exchange 2019 RTM | 17000 |
| Exchange 2016 CU21 | 15334 |
| Exchange 2016 CU19 | 15333 |
| Exchange 2016 CU7 | 15332 |
| Exchange 2016 CU6 | 15330 |
| Exchange 2016 CU3 | 15326 |
| Exchange 2016 CU2 | 15325 |
| Exchange 2016 CU1 | 15323 |
| Exchange 2016 RTM | 15317 |
| Exchange 2013 CU7 | 15312 |
| Exchange 2013 CU6 | 15303 |
| Exchange 2013 CU5 | 15300 |
| Exchange 2013 SP1 (CU4) | 15292 |
| Exchange 2013 CU3 | 15283 |
| Exchange 2013 CU2 | 15281 |
| Exchange 2013 CU1 | 15254 |
| Exchange 2013 RTM | 15137 |
| Exchange 2010 SP3 | 14734 |
| Exchange 2010 SP2 | 14732 |
| Exchange 2010 SP1 | 14726 |
| Exchange 2010 RTM | 14622 |
| Exchange 2007 SP3 | 14625 |
| Exchange 2007 SP2 | 14622 |
| Exchange 2007 SP1 | 11116 |
| Exchange 2007 RTM | 10637 |
| Exchange 2003 RTM | 6870 |
| Exchange 2000 SP2 | 4406 |
| Exchange 2000 RTM | 4397 |
You can also compare it with Microsoft’s Exchange Active Directory version tables.