Numa instalação de Active Directory com várias Politicas de Grupo configuradas, tudo funcionava excepto a instalação de software, isto é todas as configurações que alterava em cada politica no próximo reboot ou no próximo “gpupdate /force” entravam em vigor excepto a instalação de software gerido, o que me levou a crer que não era erro de configuração é que isto não acontecia em todos os computadores do dominio.
Depois de pesquisar todas as combinações possiveis do erro em Inglês e em Português no Google não conseguia achar a solução, comecei então a ler os logs das politicas de grupo dos computadores em que verifiquei o problema, e o sintoma era comum nenhum encontra o controlador principal do dominio no arranque, no log em todos tinha o mesmo erro (está a bold):
USERENV(2c4.688) 12:58:22:109 ProcessGPOs: Forced option changed policy mode.
USERENV(2c4.634) 12:58:23:593 ProcessGPOs: Forced option changed policy mode.
USERENV(2c4.664) 12:58:23:718 PolicyChangedThread: UpdateUser failed with 6.
USERENV(2c4.2c8) 12:59:21:640 CUserProfile::CleanupUserProfile: Ref Count is not 0
USERENV(2c4.2c8) 12:59:21:656 CUserProfile::CleanupUserProfile: Ref Count is not 0
USERENV(2c4.2c8) 12:59:21:656 CUserProfile::CleanupUserProfile: Ref Count is not 0
USERENV(2c4.600) 12:59:23:812 ProcessGPOs: The DC for domain REMOVIONOMEDODOMINIO is not available at startup. retrying
USERENV(2c4.600) 12:59:44:031 ProcessGPOs: DC for domain REMOVIONOMEDODOMINIO is reachable after retries.
USERENV(2c4.600) 13:05:20:265 ProcessGPOs: Extension Instalação de software ProcessGroupPolicy failed, status 0x643.
USERENV(2c4.1a8) 14:31:58:924 PolicyChangedThread: UpdateUser failed with 0.
USERENV(2c4.f3c) 14:41:06:558 PolicyChangedThread: UpdateUser failed with 6.
USERENV(2c4.f80) 14:42:15:814 PolicyChangedThread: UpdateUser failed with 0.
Depois de vários testes a causa deste problema está no carregamento da rede, que não sei se será dos drivers ou das placas de rede demoram mais a ficar disponiveis no sistema e na altura que o sistema vai procurar o PDC, não o encontra!!
Solução: Alterar o tempo que o Windows (cliente) demora até concluir que não encontra o DC, por outras palavras mudar o timeout, para isso basta criar a seguinte chave no registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GpNetworkStartTimeoutPolicyValue
do tipo DWORD e com valor decimal de 30, caso o problema persista deve-se aumentar o valor até o mesmo estar resolvido.