Embora pareça haver três opções disponíveis, uma das quais é realmente segura, parece haver apenas duas opções disponíveis que poderão afetar as máquinas que não estão ligadas no momento da mudança ou são móveis e não estavam na rede no momento da mudança. Nenhum dos dois parece ser uma opção segura. As três opções que eu conheço são:
- Scripts de inicialização com .vbs
- GPO usando Preferências de Diretiva de Grupo
- Script do PowerShell como uma tarefa agendada.
Rejeito a opção Powershell porque não sei como direcionar / iterar efetivamente e descartar máquinas já alteradas, todas as máquinas na rede e que impacto isso teria em sobrecarga desnecessária da rede, mesmo que seja provavelmente a melhor solução disponível já que a senha em si pode ser armazenada em um contêiner CipherSafe.NET (solução de terceiros) e a senha passada para o script na máquina de destino. Não verifiquei se o Powershell pode obter uma senha do Credential Manager de uma máquina Windows local para usar no script ou se é possível armazenar uma senha lá para uso com o script.
A opção de script .vbs é insegura porque a senha é armazenada em texto não criptografado no compartilhamento SYSVOL, disponível para qualquer máquina de domínio na rede. Qualquer pessoa que esteja procurando uma porta dos fundos e com um pouco do Google encontrará essa porta se persistir o suficiente.
A opção GPO também é insegura conforme observado nesta observação do MSDN: http://code.msdn.microsoft.com/Solution-for-management-of-ae44e789
Estou procurando uma solução de terceiros que acho que deveria estar disponível ou capaz de ser desenvolvida internamente com o conhecimento ou orientação corretos.
Respostas:
Vou seguir em frente e levar meu comentário para responder.
Terá que ser de terceiros. Como você já apontou, nenhuma das três opções mencionadas é ideal. A Microsoft não fornece uma maneira perfeita de fazer isso. Simplesmente não há um. Será de terceiros e quase certamente envolverá a instalação de um agente de software em todos os seus clientes.
Desenvolvi uma solução para esse problema exato (exceto que funcionava em várias florestas e domínios simultaneamente) e envolveu o VBscript para compatibilidade máxima com o maior número possível de versões diferentes do Windows, além de alguns bits de C # e um terceiro agente de software de terceiros que felizmente a empresa já estava usando para fins de monitoramento e, portanto, já estava instalado em todas as máquinas, que eu era capaz de aproveitar.
Como alternativa, você pode simplesmente desativar todas as contas de administrador local via GPO, o que é bastante comum. Mas se algo der errado com a sincronização de domínio nesse membro, a recuperação será mais uma PITA do que se você tivesse uma conta de "administrador local" de recuperação.
Edit: Apenas para esclarecer: Estou confuso quando você diz que está "procurando uma solução de terceiros que ... deve poder ser desenvolvida internamente ..." Eu consideraria qualquer coisa que não seja escrita pela Microsoft como um componente interno do Windows neste contexto "de terceiros". Você pode fazer isso com algum código inteligente que usa as comunicações de rede TLS e armazena os segredos em um banco de dados do SQL Server com criptografia de dados transparente com alguma função de hash complexa que gera uma senha exclusiva para cada máquina? SIM. Ele está embutido no Windows sem nenhum esforço necessário de sua parte? NÃO. :)
fonte
Bem, para a opção GPO, o artigo da Microsoft que você apontou ( http://code.msdn.microsoft.com/Solution-for-management-of-ae44e789 ) especifica em sua documentação (faça o download do arquivo Documentation.zip):
Especificações técnicas detalhadas - Gerenciamento da senha da conta local do administrador - página 5
Talvez a definição do artigo não seja atualizada, então eu digo que você dê uma olhada na documentação e talvez faça alguns testes enquanto fareja o tráfego, dessa maneira você pode ter certeza.
fonte