We have a number of applications that authenticate to Active Directory. Invariably, when there are authentication issues, the vendor support person asks “what version of AD is this?” … not an unreasonable question, but also not something the person who supports Application XYZ is apt to know in a larger company. Fortunately, there are a few places within the directory that you can find details about AD versions.
The simplest is the version of Windows the domain controllers are running … although it’s possible domain controllers have been upgraded but the AD functional level has not yet been changed.
ldapsearch -h ad.example.com -D "ldapquery@example.com" -w "P@s54LD@pQu3ry" -p389 -b "ou=domain controllers,dc=example,dc=com" "(&(objectClass=computer))" operatingSystem
CN=dc007,OU=Domain Controllers,dc=example,DC=com
operatingSystem=Windows Server 2019 Datacenter
CN=dc008,OU=Domain Controllers,dc=example,DC=com
operatingSystem=Windows Server 2019 Datacenter
CN=dc020,OU=Domain Controllers,dc=example,DC=com
operatingSystem=Windows Server 2019 Datacenter
CN=dc021,OU=Domain Controllers,dc=example,DC=com
operatingSystem=Windows Server 2019 Datacenter
You can also find the objectVersion of the schema:
ldapsearch -h ad.example.com -D "ldapquery@example.com" -w "P@s54LD@pQu3ry" -p389 -b "cn=schema,cn=configuration,dc=example,dc=com" "(&(objectVersion=*))" objectVersion
CN=Schema,CN=Configuration,dc=example,DC=com
objectVersion=88
What does 88 mean? It depends! Either Windows 2019 or 2022
Version |
Operating System |
13 |
Windows 2000 Server |
30 |
Windows Server 2003 (Before R2) |
31 |
Windows Server 2003 R2 |
44 |
Windows Server 2008 (Before R2) |
47 |
Windows Server 2008 R2 |
56 |
Windows Server 2012 |
69 |
Windows Server 2012 R2 |
87 |
Windows Server 2016 |
88 |
Windows Server 2019 |
88 |
Windows Server 2022 |
Or the functional level of the forest and its partitions:
ldapsearch -H ldap://ad.example.com -D "ldapquery@example.com" -w "P@s54LD@pQu3ry" -b "cn=partitions,cn=configuration,dc=example,dc=com" "(&(MSDS-Behavior-Version=*))" MSDS-Behavior-Version
dn: CN=Partitions,CN=Configuration,DC=example,DC=com
msDS-Behavior-Version: 7
dn: CN=EXAMPLE,CN=Partitions,CN=Configuration,DC=example,DC=com
msDS-Behavior-Version: 7
What does 7 mean? Well, that depends too. It’s either Windows 2016 or 2019!
msDS-Behavior-Version |
Forest
|
Domain |
Domain Controller
|
0 |
2000 |
2000 Mixed / Native |
2000 |
1 |
2003 Interim |
2003 Interim |
N/A |
2 |
2003 |
2003 |
2003 |
3 |
2008 |
2008 |
2008 |
4 |
2008 R2 |
2008 R2 |
2008 R2 |
5 |
2012 |
2012 |
2012 |
6 |
2012 R2 |
2012 R2 |
2012 R2 |
7 |
2016 |
2016 |
2016 |
7 |
2019 |
2019 |
2019 |