Gerenciando o Active Directory com o Powershell
por Roberto Mascarenhas Braga
Microsoft Student Partner
Microsoft Certified Professional
Desde o lançamento do Powershell muito se tem falado sobre as facilidades de gerenciamento permitidas pela nova linguagem de scripts/prompt da Microsoft. Realmente as possibilidade são infinitas. Recentemente tive a necessidade de automatizar uma tarefa no Active Directory de onde trabalho, o que motivou este artigo.
Ao pesquisar sobre as alternativas, deparei com o conector ADSI do Powershell (artigo da Technet Magazine - Windows Powershell Working with Active Directory).
Exemplos interessantes de como usar o ADSI com o Powershell:
Operando com contas de usuário
$usuario= [ADSI]LDAP://CN=Roberto,CN=Users,DC=robertobraga,DC=net
Para conferir se o comando teve sucesso, digitar no prompt do Powershell o nome da variável e teclar enter.
Para recuperar um campo da conta como o “Description”, por exemplo, utilizar a sintaxe:
[PS] C:> $usuario.Description
Combinando os “get” e “set” do Powershell com estruturas de controle e repetição, estes comandos permitem ir fundo no Active Directory. Apesar disso, o ADSI ainda exige certo esforço operacional e suas queries ainda estão um pouco longe da linguagem natural. Continuando minhas pesquisas, encontrei uma boa alternativa (gratuita!) que seria bem útil à resolução do meu caso.
Antes de falar sobre a solução, falemos sobre o problema. A estrutura de Active Directory do cenário em questão é relativamente complexa, com cerca de 3 mil estações de usuários (distribuídas em vários sites com links de longa distância MPLS convergindo para um site principal). Atualmente, os deploys de software são feitos via GPO. Visando otimizar os tempos de login e separar estações que estão em fase de deploy inicial de estações que estão em produção e com os softwares requeridos instalados, elaboramos a seguinte sequência de passos:
1) Computador ingressa no domínio no container padrão (Computers);
2) Computador é movido do container padrão para OU de deploy;
3) Computador é movido para a OU definitiva.
Desta forma, a carga de scripts e GPOs poderia ser distribuída entre operação normal e operações de deploy. Para automatizar as tarefas do passo 2, resolvemos optar por uma soluição baseada no Powershell.


