Start


Conforme comentamos no último artigo hoje vamos conhecer o atributo UserAccountControl, presente em todas as contas de usuário no Active Directory. Esse atributo pode ser manipulado de várias formas, seja por LDP, ADSIEDIT, mas hoje vamos fazer de forma diferente, pense em um cénario que tenha mais de 10 mil usuários em um dominio e que precisa tirar um relatório de todas as contas habilitadas, todas contas desativadas, todas contas que tem a opção de Não Expirar Senha marcada, enfim, esse trabalho seria muito complicado se não conseguirmos fazer via script, imagine fazer tudo isso de forma manual? :-)

O comando utilizado é bem parecido com o do outro artigo, podemos até utiliza-ló, mas preferi simpleficar o comando.

 

dsquery * -filter “(&(objectCategory=person)(objectClass=user))” -limit 0 -attr CN, UserAccountControl

OBS: Cuidado com o –limit 0, para testes iniciais recomendo que utilize um valor de 20 ou até 30 para vocês terem a noção do que está acontecendo. O valor = 0 vai trazer todos usuários.

 

Execute o comando acima dentro do powershell, o resultado será igual da janela abaixo, porém com valores diferente:

image

Notem que para cada usuário aparece um valor diferente, seja 512, 514, 66048, vamos entender o significado de cada número:

Num Descrição
512 Conta habilitada
514 Conta desabilitada
544 Conta habilitada, senha não requerida
546 Conta desabilitada, senha não requerida
66048 Conta habilitada, senha não expira
66050 Conta desabilitada, senha não expira
66080 Conta habilitada, Senha não expira e não é requerida
66082 Conta desabilitada, Senha não expira e não é requerida

 

Agora a coisa começa a ficar mais interessante, através desses IDs, conseguimos identificar qual o status desse objeto dentro da nossa infraestrutura de Active Directory. Vamos pegar como exemplo o usuário Erick Albuquerque, notem que o UserAccountControl é 66048, conforme a tabela acima esse usuário tem a conta habilitada, porém a senha não expira. Para tirar a prova real, vamos abrir o Active Directory Users and Computers e abrir as propriedades dessa conta.

 

image

Veja que interessante a opção “Password never expires” está marcada. Agora vamos fazer outro teste, desabilitei o usuário Erick Albuquerque, matendo a opção de Password Never Expires, vamos rodar o mesmo comando no powershell.

image

Notem que agora o status é de 66050, ou seja, a conta está desabilitada e a senha não expira.

Veja que ao tratarmos essa informação com muitos usuários é simples, você exporta tudo para um CSV e depois importa para o Excel e faz alguns filtros, rapidamente você vai ter toda informação que precisa.

Para exportar para um CSV basta acrescentar no comando o parametro > C:\usuários.csv.

 

Até o próxima!

Erick Albuquerque

  • Rodrigo

    Olá,
    Muito bom o post, parabéns.