Uma tarefa que estou fazendo muito ultimamente, é auditoria de servidores, para ter um controle maior do que está configurado e como está configurado, e o que vem me dando mais dor de cabeça é o Active Directory.

Mas porque está me dando tanto trabalho assim? Porque muitos servidores o AD está extremamente bagunçado, com OUs fora de contexto, usuários que não existem mais ainda ativos, e permissões sem escalonamento, mas isso é só uma pequena parte dos problemas.

Então para arrumar essa bagunça, foi preciso gerar um relatório de todos os usuários do AD, com algumas informações à mais, para que assim eu pudesse verificar quais ainda estão ativos na empresa, seus respectivos grupos e OUs.

Ver um por um seria muito trabalho, além de ter que apresentar de uma maneira visualmente organizada, para o representante da empresa, explicando quais melhorias poderiam ser aplicadas e como podem ser feitas.

Script

Deixando de conversa, porque a introdução já ficou muito grande, vamos a oque interessa, CODE!!, bom o script você pode baixar do meu github.

Sempre que faço algum scritp eu tento deixa-lo o mais dinâmico possivel, para que as alterações de empresa-para-empresa, sejam poucas, então antes de executar o script no seu AD, é necessário fazer pequenas mudanças.

# Caso tenha interesse em mudar o nome do arquivo final, defina na variável à baixo.
$arquivo = "user-ad-list.html"
# A vaiável analista, será o nome do representate que vai aparece no final do relatório.
$analista = "Andrey Glauzer" 
# A Variável empresa, é o nome da empresa que vai aparecer no final do relatório.
$empresa = "NOME EMPRESA" 

Com essas alterações realizadas, o script está pronto para ser executado, elas não são obrigatórias o script vai funcionar sem realiza-las, mas para o relatório ficar caprichado eu recomendo faze-las.

Resultado

No final da execução do script, vai ser gerado dois arquivos no mesmo diretório um em HTML e um outro em CSV, conteúdo dos dois será o mesmo a diferença é que em HTML a visualizaçao é melhor e em CSV os itens são separados por virgula, ideal para executar outros scripts com base nesse arquivo CSV.

HTML

01

CSV

Já no excel, ele vem separado por virgula, mas se você fazer a formatação deve ficar igual a imagem à baixo.

01

Nesse relatório eu estou puxando apenas coisas básicas, como Company, SamAccountName, Name, Mail, Department, Title, PasswordNeverExpires, Enabled e Created, mas é possível buscar mais informações, como por exemplo o tempo que o usuário tem permissão de login, entre outras coisas, consulte o Help do Get-ADuser, acredito que você vai encontrar a sua necessidade.

\ :wink:

Caso você queria ver, o arquivo HTML e o CSV.