none
Script para alterar senha de administrador em todos os computadores da rede. RRS feed

  • Pergunta

  • Pessoal, bom dia!

     

    Preciso de um script que me permita definir uma senha, e ao executar esse script ele ira buscar na rede todos os computadores e alterar a senha de administrador das estações locais para a senha que eu defini.

     

    Alguem sabe de algo, obrigado.

     

     

    Até mais.

    Paulo Turati

    paulo@shift.com.br

     

    terça-feira, 22 de julho de 2008 00:54

Respostas

  •  Paulo Turati wrote:

    Pessoal, bom dia!

     

    Preciso de um script que me permita definir uma senha, e ao executar esse script ele ira buscar na rede todos os computadores e alterar a senha de administrador das estações locais para a senha que eu defini.

     

    Alguem sabe de algo, obrigado.

     

     

    Até mais.

    Paulo Turati

    paulo@shift.com.br

     

     

    Amigo, segue abaixo script que altera a senha dos ADM's locais, tanto para WINDOWS EM PORTUGUES (ADMINISTRADOR) quanto para WINDOWS EM INGLES (ADMINISTRATOR).

     

    O problema dos outros scripts citados é que caso o winodows esteja em outro idioma será exebida uma tela de erro para o usuário, sendo assim imagine um ambiente como o meu de 7000 maquinas e a tela de erro aparecendo para o usuario, isso vai gerar um elevado numero de chamados no HELP DESK (usuario qq coisa ta abrindo chamado), o o script abaixo isso nao ocorre, segue:

    ____________________________________________________________

     

    On Error Resume Next
    Set objNetwork = CreateObject("Wscript.Network")
    Const ForWriting = 2
    strComputer = objNetwork.ComputerName
    strUser = objNetwork.UserName
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Set objGroup = GetObject("WinNT://" & strComputer & "/Administradores")

    'Set objFile = objFSO.CreateTextFile(\\SERVIDOR\COMPARTILHAMENTO\ & StrComputer & "_Senha.txt", ForWriting) 'Se essa linha for inclusa no SCRIPT, possibilita que ao ser executada e alterada a senha do ADM ele gere um arquivo TXT e salve em uma pasta COMPARTILHADA NA REDE, com isso voce consegue saber as maquinas que tiveram a senha alterada com SUCESSO! Para desmarcar ela como comentário, retire a ASPA que está no começo da parte em NEGRITO.

    For Each objUser in objGroup.Members
            If objUser.Name = "Administrador" Then
             Set objUser = GetObject("WinNT://" & strComputer &"/"& objUser.Name)
      objUser.SetPassword("P@ssw0rd01") 'COLOQUE AQUI A SENHA DESEJADA
      objFile.WriteLine strComputer &", " &  objUser.ADsPath
        End If

    Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")

    Next

    For Each objUser in objGroup.Members
            If objUser.Name = "Administrator" Then
             Set objUser = GetObject("WinNT://" & strComputer &"/"& objUser.Name)
      objUser.SetPassword("P@ssw0rd02") 'COLOQUE AQUI A SENHA DESEJADA
      objFile.WriteLine strComputer &", " &  objUser.ADsPath
        End If

     

    Next

    objFile.Close

     

    _______________________________________________________________________________

     

    Esse script voce manda ele via GPO na inicializacao da maquina (nao é de LOGON, pois de logon ele usa a conta do usuario logado para alterar, se o usuario logado no momento for USER COMUM nao vai funcionar):

     

    Crie uma GPO:

    CONFIGURACOES DO COMPUTADOR --> CONFIGURACOES DO WINDOWS --> Scripts (inicializacao/encerramento).

     

    De 2 cliques em INICIALIZAR (ou STARTUP);

    Clique no botao MOSTRAR ARQUIVOS (SHOW FILES);

     

    Coloque o script que voce criou DENTRO DESTA PASTA QUE ABRE (ja está por padrao configurada para que os usuarios do dominio possa executa-lo). Nao coloque em uma outra pasta compartilhada pois um usuario mais esperto pode entrar nela e acessar o arquivo VBS e ver a senha que vc setou!

     

    Apos colocar nessa pasta, a mesma pode ser fechada;

    Clique em ADICIONAR (ADD) e em seguida na janelinha que aparece clique em PROCURAR (FIND ou BROWSER em ingles), seu script ja vai estar na pasta PADRAO que vai abrir, clique nele e de OK.

     

    Pronto

     

    Espero ter ajudado, caso seja a reposta a sua pergunta nao esquece de MARCAR COMO RESPOSTA para que o pessoal que tiver com a mesma duvida possa se basear tbm!

     

    Att, Albert A. Santos

    quinta-feira, 24 de julho de 2008 07:29

Todas as Respostas

  • Bom Dia meu caro,

     

    Para alterares a password local basta criar uma GPO e adicionar o script em .BAT ou .VBS e quando os utilizadores se logarem a password é alterada automaticamente.

     

    Aqui segue o exemplo dos scripts:

     

    --------------------------------------------------------------

    .BAT

     

    @echo off

    net user administrator password

    exit

    --------------------------------------------------------------

    .VBS

     

    strComputer = "maquina"
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")

    objUser.SetPassword "paswoord"
    objUser.SetInfo

    -------------------------------------------------------------

     

    Espero ter ajudado.

     

    Abraços

    Miguel

     

     

     

     

    terça-feira, 22 de julho de 2008 09:56
  • Segue o script:

     

    Code Snippet

    '***************************************************************************************************
    'Função: Altera a Senha do Administrador local
    '***************************************************************************************************
    sNewPassword = "senha12345"

    Set oWshNet = CreateObject("WScript.Network")
    sComputer = "."
    sAdminName = GetAdministratorName

    On Error Resume Next
    Set oUser = GetObject("WinNT://" & sComputer & "/" & sAdminName & ",user")
    oUser.SetPassword sNewPassword
    oUser.SetInfo
    wscript.echo "setado: " & sNewPassword
    On Error Goto 0

    'powered by edutrom

    Function GetAdministratorName()
        Dim sUserSID, oWshNetwork, oUserAccount

        Set oWshNetwork = CreateObject("WScript.Network")
        Set oUserAccounts = GetObject("winmgmts://" & oWshNetwork.ComputerName & "/root/cimv2").ExecQuery("Select Name, SID from Win32_UserAccount" & " WHERE Domain = '" & oWshNetwork.ComputerName & "'")

        On Error Resume Next
        For Each oUserAccount In oUserAccounts
          If Left(oUserAccount.SID, 9) = "S-1-5-21-" And Right(oUserAccount.SID, 4) = "-500" Then
            GetAdministratorName = oUserAccount.Name

     wscript.echo oUserAccount.Name & ": " & oUserAccount.SID

            Exit For
          End if
        Next
    End Function

     

     

     


     

     

    terça-feira, 22 de julho de 2008 12:38
  •  Elton Ricardo wrote:

    Segue o script:

     

    Code Snippet

    '***************************************************************************************************
    'Função: Altera a Senha do Administrador local
    '***************************************************************************************************
    sNewPassword = "senha12345"

    Set oWshNet = CreateObject("WScript.Network")
    sComputer = "."
    sAdminName = GetAdministratorName

    On Error Resume Next
    Set oUser = GetObject("WinNT://" & sComputer & "/" & sAdminName & ",user")
    oUser.SetPassword sNewPassword
    oUser.SetInfo
    wscript.echo "setado: " & sNewPassword
    On Error Goto 0

    'powered by edutrom

    Function GetAdministratorName()
        Dim sUserSID, oWshNetwork, oUserAccount

        Set oWshNetwork = CreateObject("WScript.Network")
        Set oUserAccounts = GetObject("winmgmts://" & oWshNetwork.ComputerName & "/root/cimv2").ExecQuery("Select Name, SID from Win32_UserAccount" & " WHERE Domain = '" & oWshNetwork.ComputerName & "'")

        On Error Resume Next
        For Each oUserAccount In oUserAccounts
          If Left(oUserAccount.SID, 9) = "S-1-5-21-" And Right(oUserAccount.SID, 4) = "-500" Then
            GetAdministratorName = oUserAccount.Name

     wscript.echo oUserAccount.Name & ": " & oUserAccount.SID

            Exit For
          End if
        Next
    End Function

     

     

     


     

     




    Este ultimo funcionou muito bem!!!!!
    quinta-feira, 24 de julho de 2008 01:57
  •  Paulo Turati wrote:

    Pessoal, bom dia!

     

    Preciso de um script que me permita definir uma senha, e ao executar esse script ele ira buscar na rede todos os computadores e alterar a senha de administrador das estações locais para a senha que eu defini.

     

    Alguem sabe de algo, obrigado.

     

     

    Até mais.

    Paulo Turati

    paulo@shift.com.br

     

     

    Amigo, segue abaixo script que altera a senha dos ADM's locais, tanto para WINDOWS EM PORTUGUES (ADMINISTRADOR) quanto para WINDOWS EM INGLES (ADMINISTRATOR).

     

    O problema dos outros scripts citados é que caso o winodows esteja em outro idioma será exebida uma tela de erro para o usuário, sendo assim imagine um ambiente como o meu de 7000 maquinas e a tela de erro aparecendo para o usuario, isso vai gerar um elevado numero de chamados no HELP DESK (usuario qq coisa ta abrindo chamado), o o script abaixo isso nao ocorre, segue:

    ____________________________________________________________

     

    On Error Resume Next
    Set objNetwork = CreateObject("Wscript.Network")
    Const ForWriting = 2
    strComputer = objNetwork.ComputerName
    strUser = objNetwork.UserName
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Set objGroup = GetObject("WinNT://" & strComputer & "/Administradores")

    'Set objFile = objFSO.CreateTextFile(\\SERVIDOR\COMPARTILHAMENTO\ & StrComputer & "_Senha.txt", ForWriting) 'Se essa linha for inclusa no SCRIPT, possibilita que ao ser executada e alterada a senha do ADM ele gere um arquivo TXT e salve em uma pasta COMPARTILHADA NA REDE, com isso voce consegue saber as maquinas que tiveram a senha alterada com SUCESSO! Para desmarcar ela como comentário, retire a ASPA que está no começo da parte em NEGRITO.

    For Each objUser in objGroup.Members
            If objUser.Name = "Administrador" Then
             Set objUser = GetObject("WinNT://" & strComputer &"/"& objUser.Name)
      objUser.SetPassword("P@ssw0rd01") 'COLOQUE AQUI A SENHA DESEJADA
      objFile.WriteLine strComputer &", " &  objUser.ADsPath
        End If

    Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")

    Next

    For Each objUser in objGroup.Members
            If objUser.Name = "Administrator" Then
             Set objUser = GetObject("WinNT://" & strComputer &"/"& objUser.Name)
      objUser.SetPassword("P@ssw0rd02") 'COLOQUE AQUI A SENHA DESEJADA
      objFile.WriteLine strComputer &", " &  objUser.ADsPath
        End If

     

    Next

    objFile.Close

     

    _______________________________________________________________________________

     

    Esse script voce manda ele via GPO na inicializacao da maquina (nao é de LOGON, pois de logon ele usa a conta do usuario logado para alterar, se o usuario logado no momento for USER COMUM nao vai funcionar):

     

    Crie uma GPO:

    CONFIGURACOES DO COMPUTADOR --> CONFIGURACOES DO WINDOWS --> Scripts (inicializacao/encerramento).

     

    De 2 cliques em INICIALIZAR (ou STARTUP);

    Clique no botao MOSTRAR ARQUIVOS (SHOW FILES);

     

    Coloque o script que voce criou DENTRO DESTA PASTA QUE ABRE (ja está por padrao configurada para que os usuarios do dominio possa executa-lo). Nao coloque em uma outra pasta compartilhada pois um usuario mais esperto pode entrar nela e acessar o arquivo VBS e ver a senha que vc setou!

     

    Apos colocar nessa pasta, a mesma pode ser fechada;

    Clique em ADICIONAR (ADD) e em seguida na janelinha que aparece clique em PROCURAR (FIND ou BROWSER em ingles), seu script ja vai estar na pasta PADRAO que vai abrir, clique nele e de OK.

     

    Pronto

     

    Espero ter ajudado, caso seja a reposta a sua pergunta nao esquece de MARCAR COMO RESPOSTA para que o pessoal que tiver com a mesma duvida possa se basear tbm!

     

    Att, Albert A. Santos

    quinta-feira, 24 de julho de 2008 07:29
  • Amigo, bom dia!

     

     

    Obrigado

    segunda-feira, 28 de julho de 2008 02:05
  •  

    Amigo, está retornando um erro:

     

    Linha 16

    Caract.: 3

    Erro: Objeto necessário: 'objFile'

    Código: 800A01A8

    Origem: Erro de tempo de execução do Microsoft VBScript

     

    Pode me ajudar?

    terça-feira, 5 de agosto de 2008 18:23
  • Diego,

     

     

    Descomente a linha abaixo ele instacia o objeto objfile, para descomentar apenas retire a aspa da frente do Set

     

    Code Snippet

    'Set objFile = objFSO.CreateTextFile(\\SERVIDOR\COMPARTILHAMENTO\ & StrComputer & "_Senha.txt",

     

     

    att,

     

    Leonardo Couto.

    terça-feira, 5 de agosto de 2008 18:46
  • No meu teste, está esquisito.

    No
    (\\SERVIDOR\PASTA_XPTO\ & StrComputer & "_Senha.txt", ForWriting) está acontecendo o seguinte:

    Do jeito que está nas linhas acima ele dá erro de sintaxe. Então se eu colocar aspas na linha do caminho de rede, vejam:

    ("\\SERVIDOR\PASTA_XPTO\" & StrComputer & "_Senha.txt", ForWriting) Ele não faz nada. Nem dá erro e nem cria o .txt.

    Vamos adiante: Se dentro da pasta compartilhada XPTO eu criar uma subpasta, XYZ, aí fica tudo mais estranho, vejam:

    ("\\SERVIDOR\PASTA_XPTO\XYZ" & StrComputer & "_Senha.txt", ForWriting) Ele processa e cria o arquivo assim:

    XYZNOMEDAMINHAMÁQUINA_Senha.txt

    Só que dentro da pasta XPTO e não dentro da pasta XYZ.

    O que está errado?

    Teste executado sem GPO. Localmente em um pc WinXPPro SP2.

    Valeu.



     
    sábado, 23 de agosto de 2008 21:04
  • Aliás, localmente funcionou normalmente. ("c:\pasta\".....) ao invés de usar o compartilhamento.

    sábado, 23 de agosto de 2008 21:12
  • Pessoal testei também este script e funcionou perfeitamente.

    Minha pergunta: Teria uma forma de executar o mesmo em uma estação que o user não é administrador da mesma.

    OBS: meu DC é LDAP e não AD.

    quinta-feira, 22 de abril de 2010 14:00
  • Bom dia a todos.

    Perfeito o Script, muito bom!

    Agora gostaria de reportar no relatório os computadores que não executaram esse script, ou deu algum erro, tem como?

    Obrigado!

    quinta-feira, 22 de abril de 2010 14:55
  • Excelente script...tem como ele fazer a diferença entre XP, Vista e 2003? pq se for 2003 não deve ser alterada a senha...
    Rombesso
    quinta-feira, 22 de abril de 2010 15:36
  • Boa tarde,

    Ao inves de criar um arquivo txt para cada computador, no mesmo arquivo ele ir adicionando os nomes de quem alterou a senha?

    quinta-feira, 22 de abril de 2010 19:15