Finding the Functional Levels of Active Directory

There a quite a few ways of finding the Fuctional levels of Active Directory. Dsquery is a good option as it usually is distributed with windows.  This will give you the Domain Functional Level:

dsquery * "DC=DOMAIN, DC=LOCAL" -scope base -attr msDS-Behavior-Version ntMixedDomain

Replace DOMAIN and LOCAL with your directory details. You can check the result with the following table:

0, 0 Windows 2000 Native domain Level
0, 1 Windows 2000 Mixed domain Level
2, 0 Windows 2003 Domain Level
3, 0 Windows 2008 Domain Level
4, 0 Windows 2008 R2 Domain Level 

To find the Active Directory Schema Version:

dsquery * "CN=Schema,CN=Configuration,DC=DOMAIN, DC=LOCAL" -scope base -attr objectversion

Remember to replace DOMAIN and LOCAL with your AD details. Lookup the results with:

13 Windows 2000
30 Windows 2003
31 Windows 2003 R2
44 Windows 2008
47 Windows 2008 R2

Probably the easiest option tool to use to find this information is Adfind:

adfind -sc modes

This will will look something like this:

AdFind VJoe Richards ([email protected]) February 2011
Using server: DOMAIN.LOCAL:389
Directory: Windows Server 2003

>domainControllerFunctionality: 2 [Windows Server 2003 Mode]
>domainFunctionality: 2 [Windows Server 2003 Domain Mode]
>forestFunctionality: 0 [Windows 2000 Forest Mode]

1 Objects returned

You can also use Adfind to show the schema version:

adfind -sc schver


Written on October 11, 2011