sexta-feira, 1 de abril de 2016

Adicionando Usuários de uma OU automaticamente à um grupo do AD via PowerShell

Olá galera,

       Depois de mais de 3 anos, estamos de volta !!

       Aqui na empresa onde trabalho, utilizamos os grupos do AD para muitas coisas, por exemplo, o GLPI é utilizado como ferramenta de Help Desk, mas não só pela TI, alguns departamentos como Jurídico, Compras, RH, DP também utilizam, e como há uma integração com o AD, gerencio as permissões dos usuários pelos grupos do AD. Também é pelos grupos do AD que damos as permissões de navegação na WEB, e por fim, utilizamos os grupos do AD como listas de distribuição dos e-mails.

        Até aqui tudo são flores, agora imagina que solicitem a criação de 10 usuários, e cada um deles tenham que ter 4 a 5 grupos associados, você vai acabar esquecendo um. Para facilitar isso, podemos fazer um script no PowerShell que adiciona automaticamente os usuários nos seus devidos grupos.

         Veja o código abaixo:

1:  $OU="OU=SUB-OU,OU=SUA-OU,DC=SEU-DOMINIO,DC=com,DC=br"  
2:  $ShadowGroup="CN=SEU-GRUPO,OU=SUB-OU,OU=SUA-OU,DC=SEU-DOMINIO,DC=com,DC=br"  
3:  Get-ADGroupMember –Identity $ShadowGroup | Where-Object {$_.distinguishedName –NotMatch $OU} | ForEach-Object {   
4:      Remove-ADPrincipalGroupMembership –Identity $_ –MemberOf $ShadowGroup –Confirm:$false  
5:    }  
6:  Get-ADUser –SearchBase $OU –SearchScope Subtree –LDAPFilter "(&(!userAccountControl:1.2.840.113556.1.4.803:=2)(!memberOf=$ShadowGroup)(mail=*))" | ForEach-Object {$user = $_  
7:      Add-ADPrincipalGroupMembership –Identity $_ –MemberOf $ShadowGroup  
8:    }  


   Linhas que você deverá alterar

Linha 1- Definimos a OU, começando sempre do menor nível até a raiz do domínio, se o grupo for com todos os usuários do domínio, basta colocar a raiz do domínio.
Linha 2 - Define seu grupo, da mesma forma, sempre partindo do menor nível para a raiz.
Linha 6 - Aqui é onde temos os filtros:


  1. (!userAccountControl:1.2.840.113556.1.4.803:=2) = Usuário está Habilitado. (Não queremos incluir os que estão desabilitados no grupo, pois como também pode ser um grupo de e-mail, é melhor que as pessoas quando listarem os componentes do grupo, não veja o nome de usuários inativos).
  2. (!memberOf=$ShadowGroup) - Ainda não faz parte do grupo em questão.
  3. (mail=*) - Possui e-mail, no meu caso, utilizo isso para grupos que também são grupos de e-mail
Rode no PowerShell com permissão de Administrador e seja feliz, você pode também agendar o acionamento do Script para organização automática do AD no Task Manager. 


Qualquer dúvida, estamos aí! 


facebook

Postagens populares