Schema Versions

Here’s a PowerShell HashTable pre-built with the Active Directory and Exchange schema versions as of September 2014.

Active Directory (Forest Prep) Schema Versions:

13 Windows 2000 Schema
30 Windows 2003 Schema
31 Windows 2003 R2 Schema
39 Windows 2008 BETA Schema
44 Windows 2008 Schema
47 Windows 2008 R2 Schema
51 Windows Server 8 Developer Preview Schema
52 Windows Server 8 BETA Schema
56 Windows Server 2012 Schema
69 Windows Server 2012 R2 Schema
81 Windows Server 2016 Technical Preview Schema

 

Exchange (Forest Prep) Schema Versions:

4397 Exchange 2000 RTM Schema
4406 Exchange 2000 SP3 Schema
6870 Exchange 2003 RTM Schema
6936 Exchange 2003 SP3 Schema
10637 Exchange 2007 RTM Schema
11116 Exchange 2007 RTM Schema
14622 Exchange 2007 SP2 & Exchange 2010 RTM Schema
14625 Exchange 2007 SP3 Schema
14726 Exchange 2010 SP1 Schema
14732 Exchange 2010 SP2 Schema
14734 Exchange 2010 SP3 Schema
15137 Exchange 2013 RTM Schema
15254 Exchange 2013 CU1 Schema
15281 Exchange 2013 CU2 Schema
15283 Exchange 2013 CU3 Schema
15292 Exchange 2013 SP1/CU4 Schema
15300 Exchange 2013 CU5 Schema
15303 Exchange 2013 CU6 Schema
15312 Exchange 2013 CU7 Schema
15312 Exchange 2013 CU8 Schema
15312 Exchange 2013 CU9 Schema
15317 Exchange 2016 Preview Schema

 

PowerShell Script Code:

Write-Verbose “Create Schema Version hashtable `r ”
$SchemaVersionTable =
@{
“13” = “Windows 2000 Schema” ;
“30” = “Windows 2003 Schema”;
“31” = “Windows 2003 R2 Schema” ;
“39” = “Windows 2008 BETA Schema” ;
“44” = “Windows 2008 Schema” ;
“47” = “Windows 2008 R2 Schema” ;
“51” = “Windows Server 8 Developer Preview Schema” ;
“52” = “Windows Server 8 BETA Schema” ;
“56” = “Windows Server 2012 Schema” ;
“69” = “Windows Server 2012 R2 Schema” ;
“81” = “Windows Server 2016 Technical Preview Schema” ;

“4397” = “Exchange 2000 RTM Schema” ;
“4406” = “Exchange 2000 SP3 Schema” ;
“6870” = “Exchange 2003 RTM Schema” ;
“6936” = “Exchange 2003 SP3 Schema” ;
“10637” = “Exchange 2007 RTM Schema” ;
“11116” = “Exchange 2007 RTM Schema” ;
“14622” = “Exchange 2007 SP2 & Exchange 2010 RTM Schema” ;
“14625” = “Exchange 2007 SP3 Schema” ;
“14726” = “Exchange 2010 SP1 Schema” ;
“14732” = “Exchange 2010 SP2 Schema” ;
“14734” = “Exchange 2010 SP3 Schema” ;
“15137” = “Exchange 2013 RTM Schema” ;
“15254” = “Exchange 2013 CU1 Schema” ;
“15281” = “Exchange 2013 CU2 Schema” ;
“15283” = “Exchange 2013 CU3 Schema” ;
“15292” = “Exchange 2013 SP1/CU4 Schema” ;
“15300” = “Exchange 2013 CU5 Schema” ;
“15303” = “Exchange 2013 CU6 Schema” ;
“15312” = “Exchange 2013 CU7/CU8/CU9 Schema”
“15317” = “Exchange 2016 Preview Schema”
}

========
EXCHANGE
========
Write-Verbose “Get Exchange Forest Prep Version”
$RootDSEExchangerangeUpper = ([ADSI]”LDAP://CN=ms-Exch-Schema-Version-Pt,CN=Schema,CN=Configuration,$RootDSE”).rangeUpper
$RootDSEExchangeobjectVersion = ([ADSI]”LDAP://cn=,cn=Microsoft Exchange,cn=Services,cn=Configuration,$RootDSE”).objectVersion
$ExchangeSchemaVersionName = $SchemaVersionTable.Get_Item(“$RootDSEExchangerangeUpper”)

Write-Output “The current Exchange Schema Version is $RootDSEExchangerangeUpper which is $ExchangeSchemaVersionName `r ”
Write-Output ” `r ”

OR, using the Active Directory Cmdlets:
import-module ActiveDirectory
$ADForestConfigurationDN = ((Get-ADForest).PartitionsContainer) -Replace(‘CN=Partitions,’)
$ExchangeSchemaInfo = Get-ADObject “cn=ms-exch-schema-version-pt,cn=Schema,$ADForestConfigurationDN” -properties rangeupper
$ExchangeSchemaVersion = $ExchangeSchemaInfo.rangeupper
$ExchangeSchemaVersionName = $SchemaVersionTable.Get_Item(“$ExchangeSchemaVersion”)
Write-Output “The current Exchange Schema Version is $ExchangeSchemaVersion which is $ExchangeSchemaVersionName `r ”
Write-Output ” `r ”

================
ACTIVE DIRECTORY
================

Write-Verbose “Get AD Forest Prep Version”
$RootDSE= ([ADSI]””).distinguishedName
$RootDSEADObjectVersion =([ADSI]”LDAP://$rootDSEschemaNamingContext”).objectVersion
$ADSchemaVersionName = $SchemaVersionTable.Get_Item(“$RootDSEADObjectVersion”)
Write-Output “The current AD Schema Version is $RootDSEADObjectVersion which is $ADSchemaVersionName `r ”
Write-Output ” `r ”

OR, using the Active Directory Cmdlets:
import-module ActiveDirectory
$ADForestConfigurationDN = ((Get-ADForest).PartitionsContainer) -Replace(‘CN=Partitions,’)
$ADSchemaInfo = Get-ADObject “cn=schema,$ADForestConfigurationDN” -properties objectversion
$ADSchemaVersion = $ADSchemaInfo.objectversion
Write-Output “The current AD Schema Version is $RootDSEADObjectVersion which is $ADSchemaVersionName `r ”
Write-Output ” `r “

 

 

 

(Visited 26,786 times, 3 visits today)