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

3Usar 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

9 comentários em “DSQUERY

  1. 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

  2. Amigo desculpa ressuscitar o post…
    Mas tem como eu fazer por linha de comando pegar todos os computadores que estão inativos por mais de 4 semanas e jogar em outra OU??

    dsquery computer -inactive 4 -limit 1000 |dsmove -newparent “OU=Computadores Bloqueados,DC=domain,dc=com”

    Tou fazendo assim mais não tá indo…pode ajudar?

    1. Olá Bryan, desculpa a demora, teste este comando
      dsget computer ou=computadores,ou=ondeesta,dc=dominio,dc=com -inactive 4 -limit 1000 |dsmove computer -newparent “OU=Computadores Bloqueados,DC=domain,dc=com”
      estou sem acesso no momento a um dos AD’s para testar más acho que vai dar certo.

    1. Olá Ranieri, acredito que já deva ter conseguido obter sua informação. Bom, recentemente, tive a mesma necessidade e a resolvi com o seguinte comando:
      dsquery user -limit 10000 | dsget user -samid -upn -fn -ln -desc > lista.txt (coloquei o limit 10.000 pq tenho muitos usuários ativos e inativos na rede). Abraço.

  3. Amigo, Precisava fazer a seguinte coisas, 1 criar usuarios em massa porém conta temporária com uma data derminada ex 90 dias ou configurar no proprio AD que todos usuarios temporario criado ele seja criado com tempo de 90 dias.

    Entendeu

  4. Boa Tarde Amigo, conseguir pelo comando dsquery buscar todos usuarios que esta na ou, agora preciso remover todo os grupos deles, tem como fazer isso?

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s