none
Script VBS para verificar a OU de um usuário no Active Directory RRS feed

  • Pergunta

  • Bom dia.

    Poderiam me ajudar, pois, procurei na net mas não consegui achar um script onde eu informe o login de um usuário e ele me retorne a OU onde esta conta de usuário está no AD.
    Alguem pode me ajudar com isso?

    Desde ja agradeço.

    No aguardo.


    Cleonilson Silva
    sexta-feira, 15 de janeiro de 2010 12:52

Respostas

  • Olá,

    Verifique o script abaixo:



    Const ForReading = 1
    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE



    nome =     InputBox("Coloque o nome do usuario" & _
        vbCrLf & "(Ex: Joao)", , "Joao")

    If nome = "" Then WScript.Quit(1)       
       objCommand.CommandText = _
           "SELECT name,distinguishedname,instanceType FROM 'LDAP://dc=contoso,dc=local ' " & _
           "WHERE objectCategory='user' AND Name = '*" & nome & "*'"  

       Set objRecordSet = objCommand.Execute

       objRecordSet.MoveFirst
       Do Until objRecordSet.EOF
          wscript.echo objRecordSet.Fields("distinguishedname").Value
          objRecordSet.MoveNext
       Loop






    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Cleonilson Silva sexta-feira, 15 de janeiro de 2010 15:40
    • Não Marcado como Resposta Cleonilson Silva sexta-feira, 15 de janeiro de 2010 15:59
    • Marcado como Resposta Cleonilson Silva sexta-feira, 15 de janeiro de 2010 18:52
    sexta-feira, 15 de janeiro de 2010 13:32
  • Olá,

    Remova os * da linha "WHERE objectCategory='user' AND Name = '*" & nome & "*'"  


    Porém, se tiver mais que 1 registro, irá gerar um erro.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Cleonilson Silva sexta-feira, 15 de janeiro de 2010 18:52
    sexta-feira, 15 de janeiro de 2010 18:04

Todas as Respostas

  • Olá,

    Verifique o script abaixo:



    Const ForReading = 1
    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE



    nome =     InputBox("Coloque o nome do usuario" & _
        vbCrLf & "(Ex: Joao)", , "Joao")

    If nome = "" Then WScript.Quit(1)       
       objCommand.CommandText = _
           "SELECT name,distinguishedname,instanceType FROM 'LDAP://dc=contoso,dc=local ' " & _
           "WHERE objectCategory='user' AND Name = '*" & nome & "*'"  

       Set objRecordSet = objCommand.Execute

       objRecordSet.MoveFirst
       Do Until objRecordSet.EOF
          wscript.echo objRecordSet.Fields("distinguishedname").Value
          objRecordSet.MoveNext
       Loop






    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Cleonilson Silva sexta-feira, 15 de janeiro de 2010 15:40
    • Não Marcado como Resposta Cleonilson Silva sexta-feira, 15 de janeiro de 2010 15:59
    • Marcado como Resposta Cleonilson Silva sexta-feira, 15 de janeiro de 2010 18:52
    sexta-feira, 15 de janeiro de 2010 13:32
  • Jesiel,

    Muito obrigado mais uma vez, deu certo, porém por exemplo, se eu peço para ele procurar o login a.silva-trc, ele retorna pra mim a OU do login a.silva-trc, mas retorna também a OU de outros logins que contenham a.silva-trc, por exemplo, ka.silva-trc, la.silva-trc, aa.silva-trc e etc. Teria como fazer com que ele retornasse apenas o login solicitado?

    No aguardo.


    Att,


    Cleonilson Silva
    • Editado Cleonilson Silva sexta-feira, 15 de janeiro de 2010 16:02 Testando código
    sexta-feira, 15 de janeiro de 2010 15:41
  • Olá,

    Remova os * da linha "WHERE objectCategory='user' AND Name = '*" & nome & "*'"  


    Porém, se tiver mais que 1 registro, irá gerar um erro.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Cleonilson Silva sexta-feira, 15 de janeiro de 2010 18:52
    sexta-feira, 15 de janeiro de 2010 18:04
  • Agora sim, funcionou!!!

    Obrigado mais uma vez.

    Att,


    Cleonilson Silva
    sexta-feira, 15 de janeiro de 2010 18:53
  • Olá... Eu não consegui, aparece o erro: Erro: BOF ou EOF são verdadeiros,ou registro atual foi excluido,a operação solicitada pelo aplicativo requer um registro atual. codigo:800a0bcd origem: adodb.recordset Só está faltando isso para eu concluir um projeto. Obrigado!
    sábado, 3 de abril de 2010 21:11