Você pode se surpreender com a resposta obtida do suporte da Microsoft, já que esse problema parece não ser tão importante quanto ao suporte ao Server 2003, pois trata-se de um roadblock que impede sua migração para o 2012 R2. Pelo menos, você deveria girar dessa maneira.
Também tenho quase certeza de que isso se deve à personalização do esquema. Geralmente, é por software de terceiros, mas às vezes pode ser algo como uma instalação do Exchange corrompida. Você provavelmente pode adaptar seu esquema para que possa atualizá-lo, mas lembre-se de que isso pode interromper o software que originalmente fez a modificação do esquema em primeiro lugar.
O seguinte é fornecido sem garantia e sem garantia. Tente isso por sua conta e risco. Tente em um laboratório primeiro, se possível. A coisa certa a fazer seria ligar para a Microsoft e ver se eles vão te ajudar antes de tentar você mesmo.
Descarregar a definição de classe de usuário do esquema:
ldifde -d "CN=User,CN=Schema,CN=Configuration,DC=contoso,DC=com" -f user.txt
Procure no arquivo por qualquer campo auxiliaryClass
. Você provavelmente verá shadowAccount
, posixAccount
e possivelmente outros.
Para cada uma dessas classes auxiliares, faça o dump de suas definições de esquema também, da mesma forma que você acabou de eliminar a definição de classe User.
Em cada uma dessas definições de classes auxiliares, inspecione sua propriedade objectClassCategory
. É 1? Se assim for, deve ser 3. Mude para 3.
objectClassCategory
está documentado aqui:
4 bytes. Structural 1, abstract 2, auxiliary 3. Class 88, 0 should not be used.
Uma classe auxiliar deve ter um valor de 3. Se uma classe auxiliar tiver um valor de 1, alguém cometeu um erro ao modificar o esquema. Altere-o para 3 e permita que o AD replique o esquema e, em seguida, tente o adprep
novamente.
A mensagem de erro que você postou:
The server side error is: 0x20c5 Schema update failed: class in aux-class list does not exist or is not an auxiliary class.
Faz muito mais sentido agora no contexto do que descrevi acima.