DSQUERY
O comando DSQUERY é usando principalmente para fazer pesquisas avançadas de usuários, grupos, computadores, OU, sites, e outros no domínio com o critério que você especifica.
Vamos começar com alguns exemplos simples
- Para achar todos os computer inativos nos últimos 4 semanas:
dsquery computer -inactive 4
- Para achar todos os usuários em um certo OU no dominio Microsoft.com:
dsquery user OU=Marketing,DC=Microsoft,DC=Com
- Para ler todos os atributos de um objeto cujo CN é conhecido como OU=teste,DC=tekniblog,DC=Com por exemplo
dsquery * OU=teste,DC=tekniblog,DC=Com -scope base -attr *
Exemplos combinados e mais avançados:
Usar o comando DSQUERY USER simples ( sem pipes) para mostrar um certo usuário cujo nome é parcialmente desconhecido.
1- Mostrar todos os usuários cujo nome começa com joao em uma certo ouo o no Domínio inteiro.
este comando procura todos os nomes no dominio que tem natalino como primeiro nome
dsquery user domainroot -name natalino*
“CN=Natalino Joao da Silva,OU=Users,OU=ADMIN,DC=MEUDOMINIO,DC=LOCAL”
este comando procura o natalino no OU users
dsquery user ou=users,ou=admin,dc=MEUDOMINIO,DC=LOCAL -name natalino*
2- Para procurar todas as pessoas cujo nome termina com silva fazemos as mesmas pesquisas e só mudamos a posição do asterisco pondo o em frente do nome, exemplo
dsquery user domainroot -name *silva
e
dsquery user ou=users,ou=admin,dc=MEUDOMINIO,DC=LOCAL -name *silva
3- Usar DSQUERY com DSGET para mostrar os GRUPOS de um usuário
Com um usuário em mente podemos fazer uma query para mostrar que grupos que esse user pertence. Primeiro usamos o comando dsquery só para pesquisar se existe no domínio:
dsquery user dc=MEUDOMINIO,dc=LOCAL -name nassim*
o resultado irá listar todos os nomes no domínio que coeçam com nassim em formato CN, exemplo:
cn=nassim dhaher,ou=usuario,ou=suporte,dc=meudominio,dc=local
agora vamos ver em que grupos o usuário pertence
dsquery user dc=MEUDOMINIO,dc=LOCAL -name nassim* | dsget user -memberof
o resultado irá listar todos os grupos em formato CN também.
“CN=Domain Users,CN=Users,DC=meudominio,DC=local”
“CN=Domain Admins,CN=Users,DC=meudominio,DC=local”
“CN=Enterprise Admins,CN=Users,DC=meudominio,DC=local”
4- Listar as contas de usuários em um certo OU, mostrando o SAMID
o comando usa uma dsquery com uma dsget utilizando um pipe | (shift+z) para listar os SIDs (usados para efetuar os logins)
dsquery user ou=users,ou=MEUOU,dc=MICROSOFT,dc=COM |dsget user -samid
para uma lista com mais de 100 objetos basta acrescentar -limit 300(o número dependo do número dos objetos).
* para ver os usuarios com conta bloqueiada acrescente -disabled do comando, este vai dar duas colunas uma com o samid e uma com o status, disabled -yes ou no.
dsquery user ou=users,ou=MEUOU,dc=MICROSOFT,dc=COM |dsget user -samid -disabled
5- Usando dsquery e dsmod para settar o HomeDrive e HomeDirectory
este comando usa dsquery para fazer uma pesquisa dos nomes em um certo OU (Unidade Organizacional – Organizational Unit). Usamos o Pipe ” | ” (shift+\) para mandar o resultado para o comando dsmod que fará algumas alterações nos dados .
dsquery user ou=users,ou=MEUOU,dc=MICROSOFT,dc=COM | dsmod user -hmdir \\meu servidor\arquivos -hmdrv z:
neste exemplo todos os usuários no MEUOU terão um novo homedrive (z:) e uma nova past(a \\meuservidor\meusarquivos) de mapeamento para o drive.
se tiver mais de 100 usuários no OU basta acrescentar -limit 200 (200 é um exemplo ) antes do comando pipe | (shift + \).
e aí fica
dsquery user ou=users,ou=MEUOU,dc=MICROSOFT,dc=com -limit 200 |dsmod user -hmdir \\meu servidor\arquivos -hmdrv z:
para saber mais sobre dsquery use o comand de ajudo
dsquery /?
7- Usar o dsquery com o dsmod para não permitir que os usuários alterarem as suas senhas
dsquery user ou=users,ou=MEUOU,dc=MICROSOFT,dc=com -limit 200 |dsmod user -canchpwd no
observação: o uso de de canchpwd com a opção não (canchpwd no) conflita com o uso de mustchpwd com a opção sim (mustchpwd yes). Quem está com a opção de um não pode ter o outro ao mesmo tempo porque um usuário que tem que alterar a sua senha no próximo login não pode ser negado de alterar a sua senha.
Em seguida ao tentar o seguinte comando com o acima citado vamos receber um erro.
dsquery user ou=users,ou=MEUOU,dc=MICROSOFT,dc=com -limit 200 |dsmod user -mustchpwd yes
—————————
Última atualização 28/07/2011





Olá!
Gostaria de saber se tem alguma maneira de via comando dsquery estar pegando os computadores inativos com suas respectivas datas de modificação. Por exemplo:
DSQUERY COMPUTER -INACTIVE 4 -LIMIT 0 | DSQUERY COMPUTER -ATTR WHENCHANGED > C:\relatorio.txt
Tentei via dsget e ele não pega por atributo, eu queria que ele exibisse os computadores inativos e suas datas de modificação.
Sabe algum jeito?
Att.,
Priscila
Olá Priscila
acredito que sem usar um script VBS ou powershell não tem como fazer isso.
vê esse link com uma solução usando um script powershell
http://gallery.technet.microsoft.com/scriptcenter/6b8163d1-5fae-43b5-a664-a2d1f6e1e2da (leia as discussões sobre o script)
vê também essa ferramenta de terceiro
http://www.manageengine.com/products/ad-manager/cleanup-your-active-directory.html