Boa madrugada á todos,
Acabei passando um perrengue daqueles para fazer a migração de um 2003 para 2008, isto porque em todos os Labs tudo saiu 100% simples, em outros ambientes de prod. também, mas nesse em específico realmente custou 2 madrugas.
Então, mais do que justo publicar a resolução, já que na internet, cada forum ou KB tratava de forma diferente, mas em somente 1 deles a solução foi 100% certeira.
Mas então.. qual é o problema?
Em primeiro lugar precisamos preparar o ambiente (Windows 2003 – Active Directory) e estender os objetos e schemas do AD, porém não será aqui que explicaremos detalhadamente os passos, de modo que há inúmeros tutoriais na internet, mas poucos que tratam os erros que podem ocorrer.
Vamos ao primeiro comando que busca os schemas e esteden os objetos, além, de criar novos também:
adprep32.exe /forestprep
No caso, o DC Windows 2003 é um sistema 32-bits, por isso o número 32 no programa, pois diferente de antigamente, hoje no Windows 2008, já possui ambos os binários, portanto somente copie do DVD para o Windows 2003.
Aqui diversos erros simples aconteceram, como nível de floresta entre outros que são simples para se consertar, o problema foi quando um erro enorme no log (%windir%\debug\adprep\logs) e na tela apareceu:
============================================================================
“attributeId” attribute value for objects defined in Windows 2000 schema and extended schema do not match.
A previous schema extension has defined the attribute value as “1.2.840.113556.1.4.7000.187.70” for object “CN=uidNumber,CN=Schema,CN=Configuration,DC=walar,DC=com,DC=br” differently than the schema extension needed for Windows Server Codename “Longhorn” .
[Status/Consequence]
Adprep cannot extend your existing schema
[User Action]
Contact the vendor of the application that previously extended the schema to resolve the inconsistency. Then run adprep again.
=============================================================================
“attributeId” attribute value for objects defined in Windows 2000 schema and extended schema do not match.
A previous schema extension has defined the attribute value as “1.2.840.113556.1.4.7000.187.71” for object “CN=gidNumber,CN=Schema,CN=Configuration,DC=walar,DC=com,DC=br” differently than the schema extension needed for Windows Server Codename “Longhorn” .
[Status/Consequence]
Adprep cannot extend your existing schema
[User Action]
Contact the vendor of the application that previously extended the schema to resolve the inconsistency. Then run adprep again.
=============================================================================
“isSingleValued” attribute value for objects defined in Windows 2000 schema and extended schema do not match.
A previous schema extension has defined the attribute value as “FALSE” for object “CN=nisMapEntry,CN=Schema,CN=Configuration,DC=walar,DC=com,DC=br” differently than the schema extension needed for Windows Server Codename “Longhorn” .
[Status/Consequence]
Adprep cannot extend your existing schema
[User Action]
Contact the vendor of the application that previously extended the schema to resolve the inconsistency. Then run adprep again.
=============================================================================
“governsId” attribute value for objects defined in Windows 2000 schema and extended schema do not match.
A previous schema extension has defined the attribute value as “1.2.840.113556.1.5.7000.106.58” for object “CN=nisMap,CN=Schema,CN=Configuration,DC=walar,DC=com,DC=br” differently than the schema extension needed for Windows Server Codename “Longhorn” .
[Status/Consequence]
Adprep cannot extend your existing schema
[User Action]
Contact the vendor of the application that previously extended the schema to resolve the inconsistency. Then run adprep again.
Resumindo o erro (há muito mais linhas, mas ficaria impraticável para a leitura posteriormente), trata-se dos valores dos registros nos schemas entre outros atributos com valores diferenciados.
Portanto, precisamos corrigir todos estes valores, mas dai a pergunta fica, qual seria o valor correto para tal para editarmos via ADSIEDIT.msc???
Infelizmente não os encontrei, mas encontrei diversas formas de “corrigir”, que por fim só perdi tempo, mas aprendi muita teoria por outro lado, o que acabou valendo a pena.
Por fim… há um software da Microsoft que corrige todos estes valores, que são modificados através de uma ferramenta de terceiros como o “Oracle IDM”, “Services for Unix”, etc, onde adicionam novos atributos ao AD (LDAP), porém na preparação acabam tendo problemas desta natureza, por isso nos Labs nada ocorreu.
O software que corrige está disponível pelo hotfix, cuja referência é: http://support.microsoft.com/kb/919938/pt-br
Faça o download do hotfix, execute o binário (.exe) com um usuário administrador, e, ele usará um arquivo “LDF” que contém a “correção” dos valores dos diversos atributos que estão errados, portanto deixe-o terminar e após pode voltar a executar os comandos da preparação do ambiente:
adprep32.exe /forestprep
adprep32.exe /domainpgrep /gpprep
Lembrando que caso você tenha preparado o ambiente para Windows 2008 e não Windows 2008 R2, não será necessário utilizar o “gpprep” de um para o outro posteriormente.
É importante ficar de olho quando o forestprep estiver executando, pois deve-se verificar se o número do Schema é 47 (Windows 2008 R2) ou 44 (Windows 2008).
Bom.. fica a dica de que tanto procurei e nada achei.
Grande abraço e ótimo final de semana.