segunda-feira, 31 de janeiro de 2011

Utilizando dsquery e dsget para geração de relatórios de Active Directory

Andei precisando nos últimos tempos, gerar uns pequenos “relatórios” de objetos do Active Directory para várias finalidades, e o dsquery/dsget me ajudaram muito a manter meu querido emprego :-D

Acredito que muita gente não utilize esse tipo de procedimento, mais pela “dificuldade” de colocar o endereço completo das OUs (distinguished name, ou DN), do que a dificuldade de utilização dos comandos em si. Portanto, seguem algumas dicas:

Requisitos para utilização:

Os dois comandos estão disponíveis desde o Windows 2003 Server, ficando disponíveis na instalação das ferramentas administrativas de Active Directory.
Estes comandos podem ser utilizados também no Windows 2000 (copiando os executáveis para o sistema operacional…) porém necessitam ao menos o Service pack 3 instalado para que todos os parâmetros sejam correspondentes. O parâmetro -inactive, por exemplo, não pode ser utilizado em Service Packs anteriores.
Tendo cumprido com estes requisitos, em um Controlador de Domínio, abra o prompt de comando e rode quaisquer dos comandos.

Utilizando dsquery e dsget juntos:

Ambos os comandos se utilizam do tipo de objeto, para colher os dados, portanto temos a sintaxe:

dsquery ou dsget -parâmetros

O dsquery é utilizado para trazer a lista de objetos aos quais se quer colher informações, em um formato que pode ser utilizado pelo dsget, para que as informações sejam mostradas.
Por exemplo:

Se rodarmos o comando:

dsquery computer “ou=Domain Controllers,dc=portaltecnologia,dc=net”

A saída no prompt de comando, será a lista de computadores dentro da OU “Domain Controllers”, mostrada em Distinguished Names conforme abaixo:

“CN=DC01,OU=Domain Controllers, dc=portaltecnologia,dc=net”
“CN=DC02,OU=Domain Controllers, dc=portaltecnologia,dc=net”
“CN=DC03,OU=Domain Controllers, dc=portaltecnologia,dc=net”

O dsget, concatenado ao dsquery “aproveita” cada linha saída e a utiliza para pegar informações do objeto representado. Portanto, se rodarmos:

dsquery computer “ou=Domain Controllers,dc=portaltecnologia,dc=net” | dsget computer –samid -disabled

Temos a saída correspondente a cada objeto, apresentando seu sAMAccountId e se este objeto está desabilitado ou não:

samid disabled
DC01$ no
DC02$ no
DC03$ no

Portanto, as possibilidades são muito grandes.

Exemplos de Utilização:

* Relatórios de usuários e máquinas desabilitadas.
* Relatório de usuários que necessitam trocar senha.
* Report de SID de objetos.
* Relatórios com múltiplos parâmetros.
* Relatório de máquinas inativas na rede, em semanas, utilizando o parâmetro “-inactive”.

Estes são exemplos simples e de utilização muito prática com o dsquery/dsget, porém existem outros parâmetros e objetos que podem ser pesquisados e listados.

A melhor fonte de informações sobre estes comandos é justamente o “manual” do Technet, com todos os parâmetros e funções fornecidas:
http://technet.microsoft.com/en-us/library/cc755162%28WS.10%29.aspx
http://technet.microsoft.com/en-us/library/cc732952%28WS.10%29.aspx

Façam bom proveito, e assim que tiver mais comandos úteis, compartilho por aqui!!!

Abraços!

Antonio Mauricio

0 comentários:

Postar um comentário

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Hostgator Coupon Code