none
listar e alterar senha no AD RRS feed

  • Pergunta

  • Pessoal

    Bom dia

     

    Vejam se podem me ajudar.

     

    1 - Preciso de um script que gera um arquivo (TXT, XLS ou CSV) com uma lista de usuários de uma OU específica.

    2 - Preciso de script pra gerar senhas aleatórias de 12 caracteres, apontando para um arquivo TXT tambem.

     

    Vou juntar os dois arquivos em um só (CSV ou XLS)

     

    3 - Preciso alterar a senhas dos usuários listados via script com base nas senhas criadas para os usuários listados.

     

    Alguem poderia me ajudar ?

     

     

    Obrigado

    terça-feira, 8 de julho de 2008 14:27

Respostas

  • Sucrilhos,

     

     

    Apartir de um script que lista usuários do dominio criei esse abaixo que gera um filelog com as novas senhas, testei e tá funfando legal. Qualquer duvida é só mandar:

     

     

    Code Snippet

    'Redefinir senha de usuários em uma OU e gerar logfile

    'Por Leonardo Couto Conrado

    'Em 08.07.2008

     

    Const ADS_SCOPE_SUBTREE = 2

    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    FileLog = "usuarios.txt" 'Nome do filelog
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")
    Set ObjFileRead = ObjFSO.opentextfile(FileLog, ForReading, True)
    Set ObjFileAppending = ObjFSO.opentextfile(FileLog, ForAppending, True)

    ConcRdn = "firm" ' Nome que vai concatenar ao numero randomico

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

    Set objCOmmand.ActiveConnection = objConnection
    objCommand.CommandText = _
        "Select Name, Location, distinguishedName from 'LDAP://OU=admins,OU=Bahia,DC=leoelo,DC=br' " _ 'Nessa linha deve estar a OU e o seu dominio 
            & "Where objectClass='user'" 
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
    Nome = ConcRdn
    Do Until objRecordSet.EOF
        GenarateNumber Nome
     ObjDN = objRecordSet.Fields("distinguishedName").Value
     ObjName = objRecordSet.Fields("Name").Value
     Set objUser = GetObject _
        ("LDAP://" & ObjDN)
     userPrincipalName = objUser.userPrincipalName
        SAMAccountName = objUser.sAMAccountName
     objUser.SetPassword Nome
     if Err.number <> 0 then
       WriteLog Err.Description &". !!! Erro tentando defenir a senha - " & Nome & " para o usuario - " & SAMAccountName
       Err.Clear
       else

     WriteLog "* NOME - "& Ucase(ObjName) & VbCrLf &"DN - "& ObjDN & VbCrLf &"Nome Principal - "& userPrincipalName &  VbCrLf &"Conta SAM - "& SAMAccountName &  VbCrLf &"Nova senha - "& Nome
     
     end if
     
     Nome = ConcRdn
        objRecordSet.MoveNext
    Loop
    WriteLog "-------------------------------------------Fim em " & now() &"-----------------------"
    Function GenarateNumber(Concatena)
    Randomize
       MyValue = Int((4194304 * Rnd) + 2048) ' Valores entre 2048 à 4194304
       Concatena = Concatena & MyValue
      
    End Function

    Function WriteLog (Text)
     ObjFileAppending.WriteLine Text
    End Function

     

     

    terça-feira, 8 de julho de 2008 17:58
  • rapaz... que isso !!!... show de bola...!!!!

    Funcionou mermo... alterei apenas os dados apontando pra OU que eu queria no dominio e na mesma hora gerou um TXT com os usuários e as senhas novas... perfeitim..!!! Exatamente isso que eu queria.

    Parabéns cara...!!! 

    Obrigado mesmo.
    terça-feira, 8 de julho de 2008 18:44

Todas as Respostas

  • Sucrilhos,

     

     

    Apartir de um script que lista usuários do dominio criei esse abaixo que gera um filelog com as novas senhas, testei e tá funfando legal. Qualquer duvida é só mandar:

     

     

    Code Snippet

    'Redefinir senha de usuários em uma OU e gerar logfile

    'Por Leonardo Couto Conrado

    'Em 08.07.2008

     

    Const ADS_SCOPE_SUBTREE = 2

    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    FileLog = "usuarios.txt" 'Nome do filelog
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")
    Set ObjFileRead = ObjFSO.opentextfile(FileLog, ForReading, True)
    Set ObjFileAppending = ObjFSO.opentextfile(FileLog, ForAppending, True)

    ConcRdn = "firm" ' Nome que vai concatenar ao numero randomico

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

    Set objCOmmand.ActiveConnection = objConnection
    objCommand.CommandText = _
        "Select Name, Location, distinguishedName from 'LDAP://OU=admins,OU=Bahia,DC=leoelo,DC=br' " _ 'Nessa linha deve estar a OU e o seu dominio 
            & "Where objectClass='user'" 
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
    Nome = ConcRdn
    Do Until objRecordSet.EOF
        GenarateNumber Nome
     ObjDN = objRecordSet.Fields("distinguishedName").Value
     ObjName = objRecordSet.Fields("Name").Value
     Set objUser = GetObject _
        ("LDAP://" & ObjDN)
     userPrincipalName = objUser.userPrincipalName
        SAMAccountName = objUser.sAMAccountName
     objUser.SetPassword Nome
     if Err.number <> 0 then
       WriteLog Err.Description &". !!! Erro tentando defenir a senha - " & Nome & " para o usuario - " & SAMAccountName
       Err.Clear
       else

     WriteLog "* NOME - "& Ucase(ObjName) & VbCrLf &"DN - "& ObjDN & VbCrLf &"Nome Principal - "& userPrincipalName &  VbCrLf &"Conta SAM - "& SAMAccountName &  VbCrLf &"Nova senha - "& Nome
     
     end if
     
     Nome = ConcRdn
        objRecordSet.MoveNext
    Loop
    WriteLog "-------------------------------------------Fim em " & now() &"-----------------------"
    Function GenarateNumber(Concatena)
    Randomize
       MyValue = Int((4194304 * Rnd) + 2048) ' Valores entre 2048 à 4194304
       Concatena = Concatena & MyValue
      
    End Function

    Function WriteLog (Text)
     ObjFileAppending.WriteLine Text
    End Function

     

     

    terça-feira, 8 de julho de 2008 17:58
  • rapaz... que isso !!!... show de bola...!!!!

    Funcionou mermo... alterei apenas os dados apontando pra OU que eu queria no dominio e na mesma hora gerou um TXT com os usuários e as senhas novas... perfeitim..!!! Exatamente isso que eu queria.

    Parabéns cara...!!! 

    Obrigado mesmo.
    terça-feira, 8 de julho de 2008 18:44
  • É isso aí Sucrilhos ainda bem que conseguiu resolver seu problema man, satisfação em ajuda-lo.

     

    att,

     

    Leonardo Couto Conrado. 

    terça-feira, 8 de julho de 2008 18:50
  • como eu fasso pra   trokar a senha  do orkut  da vitima?

     

    quinta-feira, 16 de setembro de 2010 21:53
  • Camarda,

    Eu estou precisando trocar a senha de alguns usuarios somente, tem como incremetar isso em seu script??

    Eu tenho 1000 usuarios e precisava trocar somente 700.

    Tem com fazer isso nesse script??

     

    Obrigado pela ajuda!!

    sexta-feira, 16 de setembro de 2011 20:00