Hello,
Active Directory Schema is updated at each Windows Server release. Each of those schema updates brings us some new features to our forests. This is the same for Exchange and Skype (formerly known as Lync or Office Communication Services). Those schema updates bring new attributes and classes in your Active Directory Schema, you can identify which version of those update are injected in your schema by looking at a special location in your forest.
Active Directory Schema
You need to look at the “ObjectVersion” on the schema naming context :
Get-ADObject (Get-ADRootDSE).schemanamingcontext -Properties objectversion
Here, the object version is 85, to get the friendly name you can use that table :
30 | Windows Server 2003 RTM, Windows Server 2003 with Service Pack 1, Windows Server 2003 with Service Pack 2 |
31 | Windows Server 2003 R2 |
44 | Windows Server 2008 RTM |
47 | Windows Server 2008 R2 |
56 | Windows Server 2012 RTM |
69 | Windows Server 2012 R2 |
72 | Windows Server 2016 Technical Preview |
81 | Windows Server 2016 Technical Preview 2 |
82 | Windows Server 2016 Technical Preview 3 |
85 | Windows Server 2016 Technical Preview 4 |
Exchange Schema
For Exchange, you need to look out for for the “RangeUpper” attribute on an Exchange object on the schema naming context :
Get-ADObject "CN=ms-Exch-Schema-Version-Pt,$((Get-ADRootDSE).schemaNamingContext)" -Properties RangeUpper
Again, to get the friendly name of the Exchange schema version you can use that table :
4397 | Exchange Server 2000 RTM |
4406 | Exchange Server 2000 SP3 |
6870 | Exchange Server 2003 RTM |
6936 | Exchange Server 2003 SP3 |
10628 | Exchange Server 2007 RTM |
10637 | Exchange Server 2007 RTM |
11116 | Exchange 2007 SP1 |
14622 | Exchange 2007 SP2 or Exchange 2010 RTM |
14625 | Exchange 2007 SP3 |
14726 | Exchange 2010 SP1 |
14732 | Exchange 2010 SP2 |
14734 | Exchange 2010 SP3 |
15137 | Exchange 2013 RTM |
15281 | Exchange 2013 CU2 |
15281 | Exchange 2013 CU3 |
15292 | Exchange 2013 SP1 |
15312 | Exchange 2013 CU7 |
15317 | Exchange 2016 |
Skype Schema
For Skype, this is also the “RangeUpper” attribute, but on a Skype object in the schema naming context :
Get-ADObject "CN=ms-RTC-SIP-SchemaVersion,$((Get-ADRootDSE).schemaNamingContext)" -Properties RangeUpper
And here is the final table :
1006 | LCS 2005 |
1007 | OCS 2007 R1 |
1008 | OCS 2007 R2 |
1100 | Lync Server 2010 |
1150 | Lync Server 2013 |
All of those tables are in constant change, nearly each new product version releases bring new schema modifications.