none
Trocar senha periodicamente e de forma aleatória, enviando apenas para um e-mail RRS feed

  • Pergunta

  • Olá companheiros,
    Tenho uma rede ponto-a-ponto com 10 máquinas rodando o Windows XP Pro. Todas elas possuem 2 usuários configurados, o Administrador e um Usuário Limitado. As senhas são todas iguais.
    Gostaria de saber se posso, através de um script - o que me pareceu mais lógico - ou outra forma qualquer, definir que as senhas de todas as máquinas sejam alteradas simultâneamente em um determinado período de tempo, e a nova senha seja enviada para alguns e-mails?

    Desde já agradeço a atenção por todos dispensada...
    Abraços!

    sábado, 7 de julho de 2007 05:14

Respostas

  •  

    Salve como .vbs, e execute em um pc somente, cada vez que vc executar ele vai criar uma senha  DIFERENTE para cada pc.

     

    Code Snippet

    ' - - - AQUI, LOCALIZAMOS OS PCS DO SEU DOMÍNIO., ALTERE A LINHA DO LDAP, PARA O SEU DOMÍNIO.
    ' - - - EX.:  MEUTESTE.COM . . . .
    LDAP://DC=MEUTESTE,DC=COM

     

    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.CommandText = _
        "Select Name,Location from 'LDAP://DC=saude,DC=to,DC=gov,DC=br' " _
            & "Where objectClass='computer'" 
    objCommand.Properties("Page Size") = 100
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

     

     

    ' - - - AQUI VAMOS COMEÇAR A ALTERAR A SENHA DE TODOS OS PCS.

    Do Until objRecordSet.EOF

    strComputer = objRecordSet.Fields("Name").Value

    on error resume next
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

     

     

    if err.number=0 then

      

     

    ' - - - AQUI VAMOS GERAR UMA SENHA RANDOMICA, COM NÚMEROS E LETRAS.
    ' - - - A EXTENÇÃO É DEFINIDO PELA VARIÁVEL CONTADOR.
    ' - - - NO CASO ESTAMOS CRIANDO UMA SENHA DE 8 CARACTERES.

    function PwdGenerate()
    contador = 0
    Do until contador = 8
    Randomize
    if rnd < (5/10) then
    strtexto = strtexto & Chr((((57 - 48) * rnd) + 48) )
    else
    strtexto = strtexto & Chr((((122 - 97) * rnd) + 97))
    end if
    contador = contador +1
    loop
    For i = 1 to Len(strtexto)
    j = Mid(strtexto, i, 1)
    Randomize
    If rnd < 0.5 Then
    j = UCase(j)
    Else
    j = LCase(j)
    End If
    strmixed = strmixed & j
    Next
    strfinal = strmixed
    end function

     

    Set objUser = GetObject("WinNT://" & strComputer & "/usuário, user")
      objUser.SetPassword strfinal
      objUser.SetInfo

     wscript.echo "PC:" & strComputer & ", SENHA:" & strfinal

     

    ' - - - "DESCOMENTE" hauhasudh, essa área se quiser enviar o e-mail

    'Enviar email
    'Set objEmail = CreateObject("CDO.Message")

    'objEmail.From = "helpdesk@fabrikam.com"
    'objEmail.To = "administrator@fabrikam.com"
    'objEmail.Subject = "PasswordChanger"
    'objEmail.Textbody = "PC:" & strComputer & ", SENHA:" & strfinal

    'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtpmailer"
    'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    'objEmail.Configuration.Fields.Update

    'objEmail.Send


    objRecordset.MoveNext

    else
    objRecordset.MoveNext
    end if


    LOOP

    wscript.quit

     

     o.0 testa ae e posta, eu não pude testar aki.....

     

     

    o.0 Se ajudar, não esqueça de classificar.....

    sexta-feira, 13 de julho de 2007 19:10
    Moderador

Todas as Respostas

  • Acho que estes dois scripts podem lhe ajudar.

    Code Snippet

    'Trocar a  senha local
    strComputer = "."
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
    objUser.SetPassword "testpassword"
    objUser.SetInfo

    '------------------------------------------------------------------------------------------------
    'Enviar email
    Set objEmail = CreateObject("CDO.Message")

    objEmail.From = "helpdesk@fabrikam.com"
    objEmail.To = "administrator@fabrikam.com"
    objEmail.Subject = "Server down"
    objEmail.Textbody = "Server1 is no longer accessible over the network."
    'objEmail.AddAttachment "C:\Scripts\Output.txt"

    objEmail.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    objEmail.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
            "smtpmailer"
    objEmail.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    objEmail.Configuration.Fields.Update

    objEmail.Send




    Agora é só começar a usar a imaginação

    Fonte de pesquisa:
    http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/usersgroups/localusers/
    e o próprio forum.
    sábado, 7 de julho de 2007 13:11
  • vc pode ainda procurar por um script que executa isso remotametne nas maquinas, e ai disparar de apenas uma estação.

    PS.: Mas num teria como vc implementar um dominio não? Com o AD vc teria condições de fazer muito mais com polices.
    abraço.
    boa sorte.
    sábado, 7 de julho de 2007 13:15
  • Olá Romeu !
    Esse script que troca a senha, ele troca a senha por outra aleatória ou preciso ficar alterando o script com a senh ?

    Necessito de um scrip que troca a senha todos os dias por outra aleatória, esse script vai me atender ?

    Grato,

    Fábio
    quinta-feira, 12 de julho de 2007 19:34
  • Se tem que ser aleatória não vai te atender não....procura na net algum objeto que gera seguencias aleatórias e altera o meu script, jogando numa varial de depois enviando por email.

    boa sorte

    quinta-feira, 12 de julho de 2007 19:38
  • Olá Romeu,

     

    Não sou um expert em scripts, aliás é a primeira vez que estou vendo até pela necessidade !

    Você poderia me dar uma ajuda ?

     

    Muit Grato,

     

    Fábio

    sexta-feira, 13 de julho de 2007 11:00
  • Olá Romeu, desculpe abusar da sua boa vontade rsss

    Mas olha os erros que dá quando executo os scripts (TrocaSenha.vbs e EnviaSenha.vbs)


    TrocaSenha.vbs

    strComputer = "host"
      Set objUser = GetObject("WinNT://" & strComputer & "/usuário, user")
      objUser.SetPassword "teste"
      objUser.SetInfo

     

    Erro:

      Line: 2

      Char: 1

      Error: Invalid syntax

      Code: 800401E4

      Source: (null)


    EnviaSenha.vbs

    Set objEmail = CreateObject("CDO.Message")
      objEmail.From = "email"
      objEmail.To = "email"
      objEmail.Subject = "Server down"
      objEmail.Textbody = "Server1 is no longer accessible over the network."
      'objEmail.AddAttachment "C:\Scripts\Output.txt"
      objEmail.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
      objEmail.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
            "smtpmailer"
      objEmail.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
      objEmail.Configuration.Fields.Update
      objEmail.Send

     

    Erro:

       Line: 1

       Char: 1

       Error: Activex component can´t create object: 'CDO.Message'

       Source: Microsoft VBScript runtime error


     

    Estou executando esse script em um NT4.

     

    Se você puder ao menos me dar o caminho das pedras rsss

     

    Abraços

     

    Fábio

    sexta-feira, 13 de julho de 2007 11:15
  • O nome do seu compuatdor é host mesmo?
    sexta-feira, 13 de julho de 2007 13:18
  • Não, o nome host é ficticio !

     

    [ ]s

     

    Fábio 

    sexta-feira, 13 de julho de 2007 13:48
  •  

    Salve como .vbs, e execute em um pc somente, cada vez que vc executar ele vai criar uma senha  DIFERENTE para cada pc.

     

    Code Snippet

    ' - - - AQUI, LOCALIZAMOS OS PCS DO SEU DOMÍNIO., ALTERE A LINHA DO LDAP, PARA O SEU DOMÍNIO.
    ' - - - EX.:  MEUTESTE.COM . . . .
    LDAP://DC=MEUTESTE,DC=COM

     

    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.CommandText = _
        "Select Name,Location from 'LDAP://DC=saude,DC=to,DC=gov,DC=br' " _
            & "Where objectClass='computer'" 
    objCommand.Properties("Page Size") = 100
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

     

     

    ' - - - AQUI VAMOS COMEÇAR A ALTERAR A SENHA DE TODOS OS PCS.

    Do Until objRecordSet.EOF

    strComputer = objRecordSet.Fields("Name").Value

    on error resume next
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

     

     

    if err.number=0 then

      

     

    ' - - - AQUI VAMOS GERAR UMA SENHA RANDOMICA, COM NÚMEROS E LETRAS.
    ' - - - A EXTENÇÃO É DEFINIDO PELA VARIÁVEL CONTADOR.
    ' - - - NO CASO ESTAMOS CRIANDO UMA SENHA DE 8 CARACTERES.

    function PwdGenerate()
    contador = 0
    Do until contador = 8
    Randomize
    if rnd < (5/10) then
    strtexto = strtexto & Chr((((57 - 48) * rnd) + 48) )
    else
    strtexto = strtexto & Chr((((122 - 97) * rnd) + 97))
    end if
    contador = contador +1
    loop
    For i = 1 to Len(strtexto)
    j = Mid(strtexto, i, 1)
    Randomize
    If rnd < 0.5 Then
    j = UCase(j)
    Else
    j = LCase(j)
    End If
    strmixed = strmixed & j
    Next
    strfinal = strmixed
    end function

     

    Set objUser = GetObject("WinNT://" & strComputer & "/usuário, user")
      objUser.SetPassword strfinal
      objUser.SetInfo

     wscript.echo "PC:" & strComputer & ", SENHA:" & strfinal

     

    ' - - - "DESCOMENTE" hauhasudh, essa área se quiser enviar o e-mail

    'Enviar email
    'Set objEmail = CreateObject("CDO.Message")

    'objEmail.From = "helpdesk@fabrikam.com"
    'objEmail.To = "administrator@fabrikam.com"
    'objEmail.Subject = "PasswordChanger"
    'objEmail.Textbody = "PC:" & strComputer & ", SENHA:" & strfinal

    'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtpmailer"
    'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    'objEmail.Configuration.Fields.Update

    'objEmail.Send


    objRecordset.MoveNext

    else
    objRecordset.MoveNext
    end if


    LOOP

    wscript.quit

     

     o.0 testa ae e posta, eu não pude testar aki.....

     

     

    o.0 Se ajudar, não esqueça de classificar.....

    sexta-feira, 13 de julho de 2007 19:10
    Moderador
  • boa .... vou até guardar na coleção.
    sábado, 14 de julho de 2007 22:04
  •  

    =D

     

    Scripts Vão dominar o mundo junto com o Googleess hauhshaushuahusdh

    segunda-feira, 16 de julho de 2007 16:46
    Moderador
  • huahuaaahuahuahauhauahuaau
    segunda-feira, 16 de julho de 2007 21:47
  • Olá Filipe,

     

    Executei o script desta forma

     

    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.CommandText = _
        "Select Name,Location from 'LDAP://DC=Meu Domínio NT4' " _
            & "Where objectClass='computer'" 
    objCommand.Properties("Page Size") = 100
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
    Do Until objRecordSet.EOF
    strComputer = objRecordSet.Fields("Name").Value
    on error resume next
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    if err.number=0 then
    function PwdGenerate()
    contador = 0
    Do until contador = 8
    Randomize
    if rnd < (5/10) then
    strtexto = strtexto & Chr((((57 - 48) * rnd) + 48) )
    else
    strtexto = strtexto & Chr((((122 - 97) * rnd) + 97))
    end if
    contador = contador +1
    loop
    For i = 1 to Len(strtexto)
    j = Mid(strtexto, i, 1)
    Randomize
    If rnd < 0.5 Then
    j = UCase(j)
    Else
    j = LCase(j)
    End If
    strmixed = strmixed & j
    Next
    strfinal = strmixed
    end function
    Set objUser = GetObject("WinNT://" & strComputer & "/usuário, user")
      objUser.SetPassword strfinal
      objUser.SetInfo
    wscript.echo "PC:" & strComputer & ", SENHA:" & strfinal
    Set objEmail = CreateObject("CDO.Message")
    objEmail.From = "email"
    objEmail.To = "email"
    objEmail.Subject = "PasswordChanger"
    objEmail.Textbody = "PC:" & strComputer & ", SENHA:" & strfinal
    objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtpmailer"
    objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    objEmail.Configuration.Fields.Update
    objEmail.Send
    objRecordset.MoveNext
    else
    objRecordset.MoveNext
    end if
    LOOP
    wscript.quit

     

    E ocorreu o seguinte erro:

    Line: 20

    Char: 1

    Error: Syntax Error

    Code: 800A03EA

    Source: Microsoft VBScript compilation error

     

    Lembrando que estou executando o script em um NT4

     

    Desde já agradeço a ajuda

     

    Fábio

     

     

    sexta-feira, 20 de julho de 2007 16:39
  • Fabio...

    Altere as seguintes linhas no código que ele vai funcionar, foi uma falha no momento do post....

    Code Snippet

    Next
    PwdGenerate = strmixed
    end function
    Set objUser = GetObject("WinNT://" & strComputer & "/usuário, user")
    objUser.SetPassword PwdGenerate()

    objUser.SetInfo

    o.0 teste e poste....

    segunda-feira, 23 de julho de 2007 17:47
    Moderador
  • Olá Filipe,

     

    Mesmo alterando as linhas que você postou, ocorre o mesmo erro na mesma linha "function PwdGenerate()"

     

    Help rss

     

    [ ]'s

     

    quarta-feira, 25 de julho de 2007 16:45