none
Saber o login de um usuario RRS feed

  • Pergunta

  • Bom dia pra geral

    Bem, preciso de um script pra saber qual é o login do AD de uma lista de usuários por meio do nome deles. Exemplo: Eu preciso saber o login da usuária Fabíola Costa Souza. Dela e de mais uns 700 usuários aqui do meu domínio. Seja via powershell, seja via bat ou vbs mesmo.Obrigado

    quarta-feira, 14 de maio de 2014 13:46

Respostas

  • Pra ler a planilha Excel é um pouco mais complicado, mas só um pouco.

    Se quiser adiantar copie a coluna com os nomes e cole em um txt, o script abaixo gera Nome;Login.

    Import-module ActiveDirectory
    
    $ArquivoEntrada = "C:\temp\teste.txt"
    $ArquivoSaida = "C:\temp\teste2.txt"
    
    "Nome;Login" | Set-Content $ArquivoSaida
    
    foreach($Nome in Get-Content($ArquivoEntrada)){
        #Localiza usuário pelo Nome
        $Usuario = Get-ADUser -Filter {displayName -eq $Nome}
        if ($Usuario -ne $Null){
            #Encontrou
            "$Nome;$($Usuario.SamAccountName)" | Add-Content $ArquivoSaida
        }else{
            #Não encontrou
            "$Nome;Não encontrado" | Add-Content $ArquivoSaida
        }
    }
    Veja que a procura é feita pelo DisplayName.

    Você só precisa setar as duas váriaveis do início do script.


    Fábio de Paula Junior


    quarta-feira, 14 de maio de 2014 16:05
    Moderador

Todas as Respostas

  • Use o módulo ActiveDirectory do Powershell.

    Com o Get-Content pegue o contéudo do arquivo com os nomes.

    Use um foreach para ler cada nome.

    Dentro do loop use o Get-AdUser para procurar o login passando como parametro o nome.

    Tente fazer, se não conseguir poste o script que eu tento ajudar.


    Fábio de Paula Junior

    quarta-feira, 14 de maio de 2014 13:55
    Moderador
  • Olá,

    Acho que foi o mesmo problema/solução deste tutorial:

    http://webcache.googleusercontent.com/search?q=cache:q03PtoM_oXgJ:rotinadeti.wordpress.com/2012/08/23/obter-lista-de-usuarios-de-um-determinado-grupo-do-ad/+&cd=1&hl=pt-BR&ct=clnk&gl=br

    Acho que o comando net group seria simples para o que você quer, de qualquer forma, segue tutorial:

    http://grvalle.com/2011/04/27/listar-membros-de-um-grupo-no-ad/

    Atenciosamente,


    Edinaldo Oliveira

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    ** Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. **

    quarta-feira, 14 de maio de 2014 14:02
  • Então, acho que me expliquei mal. Eu tenho uma planilha no Excel de usuários com uns 800 nomes. Tipo abaixo tem um exemplo de nomes:

    Carlos Eduardo Pereira

    Luiz Rodrigo Castro

    Fabiola Costa Souza

    Eu preciso saber qual é o login de rede de todos esses nomes. Eu sei que se eu digitar o comando dsquery user -name "Carlos Eduardo Pereira" | dsget user -samid, ele vai me trazer o resultado, porém ele traz em 3 linhas umas informações, e fica estranho. Eu preciso que o script rode e salve as informações em uma linha.

    Valeu


    quarta-feira, 14 de maio de 2014 14:22
  • Bom dia,

    Tenho um script em .vbs. Este cara, mostra o Nome do Usuário, Logon, Departamento etc, e fará uma saida via cvs, basta entrar no excel que será importado para colunas organizadas e com isso, terá o controle que queres.

    Dim oContainer
    Dim OutPutFile
    Dim FileSystem
    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
    Set OutPutFile = FileSystem.CreateTextFile("Saida.cvs", True) # aqui é a saida
    OutPutFile.WriteLine "Nome ," & "Logon ," & "Descrição ," & "Office ," & "Cargo ," & "Member ," & "Departamento ," & "Empresa"
    Set oContainer = GetObject("LDAP://DC=seudominio,DC=local") #aqui você coloca seu dominio
     
    EnumerateUsers oContainer
     
    OutPutFile.Close
    Set FileSystem = Nothing
    Set oContainer = Nothing
    WScript.echo "Fim!!!"
    WScript.Quit(0)
     
    Sub EnumerateUsers(oCont)
         Dim oUser, bUser
         For Each oUser In oCont
              bUser = False
              Select Case LCase(oUser.Class)
                   Case "user"
                   bUser = True
                                        
           OutPutFile.Write oUser.displayName & "," 
           OutPutFile.Write oUser.sAMAccountName & "," 
           OutPutFile.Write oUser.description & "," 
           OutPutFile.Write oUser.physicalDeliveryOfficeName &  ","
    	   OutPutFile.Write oUser.title & ","	
    		OutPutFile.Write oUser.member & ","		   
           OutPutFile.Write oUser.department &  ","
           OutPutFile.Write oUser.company 
        Case "organizationalunit", "container"
            EnumerateUsers oUser
        End Select
        If bUser Then
            OutPutFile.WriteLine 
        End If
    Next
     
    End Sub


    Douglas Urbano

    quarta-feira, 14 de maio de 2014 15:01
  • Pra ler a planilha Excel é um pouco mais complicado, mas só um pouco.

    Se quiser adiantar copie a coluna com os nomes e cole em um txt, o script abaixo gera Nome;Login.

    Import-module ActiveDirectory
    
    $ArquivoEntrada = "C:\temp\teste.txt"
    $ArquivoSaida = "C:\temp\teste2.txt"
    
    "Nome;Login" | Set-Content $ArquivoSaida
    
    foreach($Nome in Get-Content($ArquivoEntrada)){
        #Localiza usuário pelo Nome
        $Usuario = Get-ADUser -Filter {displayName -eq $Nome}
        if ($Usuario -ne $Null){
            #Encontrou
            "$Nome;$($Usuario.SamAccountName)" | Add-Content $ArquivoSaida
        }else{
            #Não encontrou
            "$Nome;Não encontrado" | Add-Content $ArquivoSaida
        }
    }
    Veja que a procura é feita pelo DisplayName.

    Você só precisa setar as duas váriaveis do início do script.


    Fábio de Paula Junior


    quarta-feira, 14 de maio de 2014 16:05
    Moderador
  • Opa amigo era disso que eu precisava mesmo. Eu só joguei os nomes para arquivo de texto teste.txt e rodou maravilhosamente bem!

    Valeu pela ajuda!

    quarta-feira, 14 de maio de 2014 17:05