O esquema (armazenado no Mestre de esquema), é na verdade o modelo base para armazenamento de dados no Active Directory. Cada objeto existente no Active Directory é uma instância de uma classe no esquema. Podemos definir um schema do active directory como a representação de uma coleção de objetos e seus atributos.
Um objeto de usuário, por exemplo, existe como uma instância da classe de usuário. Os atributos definem as peças de informação que uma classe, e, portanto, uma instância dessa classe, pode conter. As sintaxes definem o tipo de dados que podem ser colocados em um atributo. Como exemplo, se um atributo é definido com uma sintaxe de Boolean, ele pode armazenar True ou False como seu valor, ou pode ser null. Um valor nulo tem um significado específico da implementação; Ele pode significar True ou False dependendo do aplicativo usando o valor. Cada instância gerencia um ou mais bancos de dados de usuários, que em nosso caso, é a gestão do ADDS. E exatamente o que é uma instância? Podemos definir que uma instância é a combinação da memória e dos processos que são parte de uma instalação em funcionamento e/ou a instância é usada para a gerência e acesso ao banco de dados. Quando criamos uma instância, estamos na verdade criando um acesso gerenciado ao banco de dados do Active Directory.
O Active Directory contém diversos atributos e classes no esquema padrão. Cada nova versão do Active Directory incluiu atualizações importantes para o esquema padrão do Windows Server, que foi projetado para ser extensível para que os administradores pudessem adicionar classes ou atributos que considerassem necessário. Na verdade, a extensão do esquema não é uma tarefa difícil; Muitas vezes é mais difícil projetar as mudanças que você gostaria de incorporar. Todas as vezes que se faz necessário instalar um software que tem como seu requisito principal o Active Directory, como o Exchange Server, uma extensão de registros e dados é efetuado no esquema. Antes de instalar e implementar qualquer software ou solução, é necessário validar se existe algum tipo de extensão ativa no esquema. O planejamento é mais importante que a implantação em si. Quando o planejamento é bem feito, a implantação é rápida e efetiva, com alto poder de resiliência em casos extremos.
Sempre que a Microsoft lança uma atualização para o esquema do Active Directory padrão, atualiza o atributo schemaVersion no Active Directory. A versão não é atualizada quando os administradores fazem suas próprias alterações personalizadas, portanto, enquanto o número da versão informa o nível mínimo do esquema a partir da perspectiva do sistema operacional, ele não atesta se houve modificações específicas adicionais também. É importante entender que as modificações que você faz ao sistema é conhecido como expansão e as atualizações feitas pela Microsoft são alterações estruturais.
Antigamente utilizávamos para descobrir a versão do esquema o AdFind.exe (descontinuado no Windows Server 2012). O AdFind é uma ferramenta antiga de consulta criada sob a linguagem C++, nascida sob o ano de 2009 para atuar com pesquisas sobre o Active Directory. Era extremamente útil nas versões mais antigas como por exemplo o Windows 2000. Hoje podemos usar o PowerShell para essa atividade. O comando abaixo retorna exatamente a versão e detalhes relacionados ao esquema do active directory.
Get-ADObject (Get-ADRootDSE).schemaNamingContext -Property objectVersion
Ainda é possível acessar uma das inúmeras chaves de registro do Windows Server para descobrir qual é a versão do Schema. A chave que costumo recomendar é a seguinte:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\SchemaVersion
Existem hoje 8 versões de Schema (esquema) do Windows Server, sendo cada uma delas direcionada para uma versão de mercado, conforme demonstrado pela próxima figura. Note que cada versão do Windows Server possui um número referente a sua versão de esquema. Isso pode ser extremamente útil para planejar implementações futuras.