none
Script para alterar senha local RRS feed

  • Pergunta

  • Olá senhores,

      Poderiam me mostrar como é o script para que eu possa alterar a senha de administrador e renomear a conta de 2300 desktops, na minha rede que estão no dominio, sendo que os usuários não são adm local, logo o script teria que ser rodado como adm. Ou teria que colocar um analista do servicedesk logando nas máquinas.

     

    Desde já agradeço o tempo dispensado e a ajuda dos senhores.

    Abraços,

     

    sexta-feira, 11 de agosto de 2006 20:02

Respostas

  • Ola Romero!!!

    peguei este script no technet veja se ele te ajuda

     

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

    Script 1
    --------
    (1 Computador remoto chamado computador)
    ----------------------------------------

    strComputer = "computador"
    Set colAccounts = GetObject("WinNT://" & strComputer & ",computer")
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
    objUser.SetPassword "teste"
    objUser.SetInfo


    Script 2
    --------
    (n computadores remotos que possuem uma logica no nome com incremento. No exemplo, 20 computadores chamados pc1, pc2, pc3,....)
    ------------------------------------------

    Dim i

    for i= 1 to 20

    strComputer = "pc" & i
    Set colAccounts = GetObject("WinNT://" & strComputer & ",computer")
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
    objUser.SetPassword "teste"
    objUser.SetInfo
    next

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

     

    ____________________
    Fábio Oliveira

    sexta-feira, 11 de agosto de 2006 22:34
  •  

    Para renomear você pode usar GPO (Configurações do Computador -> configurações do windows -> configurações de segurança - > diretivas locais -> opções de segurança -> Contas: renomear conta do administrador.

     

    E para a senha eu não acho legal utilizar script de startup ou logon, porque a senha fica em texto limpo no arquivo, você pode usar a ferramenta pspasswd ( http://www.sysinternals.com/Utilities/PsPasswd.html) , ela tem uma opção em que vc indica um arquivo com o nome de todas as máquinas e ele vai mudando uma  a uma.

    segunda-feira, 14 de agosto de 2006 18:29
    Moderador
  • Vou tentar responder com uma mensagem várias dúvidas que estão aqui.


    1) Pessoal, mesmo que a dúvida seja parecida com a que já está lá, crie outro post. Evitem discussões longas sobre assuntos diferentes na mesma thread.

    2) Procurem no forum antes de perguntar. Essa pergunta já foi respondida centenas de vezes desde que eu entrei no forum.

    3) Senhas em script não são uma boa prática. Nunca. Qualquer usuário um pouco mais esperto consegue ver o script e ganha a senha de admin dele novamente. Tarefas administrativas devem ser feitas pelo administrador, usando a máquina dele. O Admin pode muito bem resetar a senha à distância, sem nem ter que levantar da cadeira. Não use scripts de logon para esse tipo de coisa, ele não foi feito para isso. Vocês podem argumentar que é possível criptografar script, compilar, esconder do usuário... bobeira. Todos esses truques são facilmente contornáveis.

    4) Não adianta nada alterar a senha do usuário administrador local se os usuários da sua rede estiverem no grupo Administradores ou Power Users. Retire todos de lá, não é nada seguro.

    @Thiago: Caminho de rede não encontrado => problemas de conectividade de rede (roteamento, ip, firewall... tá tudo certinho por aí? resolva isso antes)



    Bom, é isso...

    Abraço pessoal,


    Vinicius Canto
    MVP Admin Frameworks
    http://viniciuscanto.blogspot.com
    Vinicius Canto MVP Admin Frameworks Blog: http://viniciuscanto.blogspot.com
    sexta-feira, 10 de abril de 2009 13:12
    Moderador

Todas as Respostas

  • Ola Romero!!!

    peguei este script no technet veja se ele te ajuda

     

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

    Script 1
    --------
    (1 Computador remoto chamado computador)
    ----------------------------------------

    strComputer = "computador"
    Set colAccounts = GetObject("WinNT://" & strComputer & ",computer")
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
    objUser.SetPassword "teste"
    objUser.SetInfo


    Script 2
    --------
    (n computadores remotos que possuem uma logica no nome com incremento. No exemplo, 20 computadores chamados pc1, pc2, pc3,....)
    ------------------------------------------

    Dim i

    for i= 1 to 20

    strComputer = "pc" & i
    Set colAccounts = GetObject("WinNT://" & strComputer & ",computer")
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
    objUser.SetPassword "teste"
    objUser.SetInfo
    next

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

     

    ____________________
    Fábio Oliveira

    sexta-feira, 11 de agosto de 2006 22:34
  •  

    Para renomear você pode usar GPO (Configurações do Computador -> configurações do windows -> configurações de segurança - > diretivas locais -> opções de segurança -> Contas: renomear conta do administrador.

     

    E para a senha eu não acho legal utilizar script de startup ou logon, porque a senha fica em texto limpo no arquivo, você pode usar a ferramenta pspasswd ( http://www.sysinternals.com/Utilities/PsPasswd.html) , ela tem uma opção em que vc indica um arquivo com o nome de todas as máquinas e ele vai mudando uma  a uma.

    segunda-feira, 14 de agosto de 2006 18:29
    Moderador
  • Obrigado!!

     

    Funcionou sim, efetuei so um teste em aglumas máquinas.

     

    Mais depois vou fazer na rede toda.

    segunda-feira, 14 de agosto de 2006 20:21
  • Obrigado!!

     

       Funcionou mesmo... o programinha é show de bola... valeu mesmo!!

     

    abraços,

     

    segunda-feira, 14 de agosto de 2006 20:23
  •  

    Ja eu fiz algo mais facil pois era questão emergencial... pois várias maquinas estavam com as senhas em branco e os usuarios estavam se aproveitando disso. Criem um .bat no logon script.

    =============

    @echo off

    net user administrador senhanova

    net user administrator senhanova

    exit

    =============

    e pronto.

    não precisei mencionar as maquinas como disse anteriormente... pois especifiquei cada logon para OU´s diferentes...

    Sds,

    Eduardo Trombini

    edutrom@gmail.com

    quinta-feira, 17 de agosto de 2006 14:35
  • Fabio,

    Boa Tarde,

    Sou novo aqui, e se você puder me dizer como funciona esse script agradeço, sou novo na parte de redes e sei muito pouco de programação.

    Aguardo retorno e desde já agradeço

    quarta-feira, 23 de agosto de 2006 19:18
  • Olá Joaquim,

    Segue como funciona o script

    onde vc ver " // "  considere como comentario OK

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

    Script 1
    --------
    (1 Computador remoto chamado computador)
    ----------------------------------------

    strComputer = "computador"  // aki entre aspas você coloca o nome do PC remoto que deseja alterar a senha //
    Set colAccounts = GetObject("WinNT://" & strComputer & ",computer")
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
    objUser.SetPassword "teste" // aki é onde você coloca a nova senha do ADM Local OK //
    objUser.SetInfo


    Script 2
    --------
    (n computadores remotos que possuem uma logica no nome com incremento. No exemplo, 20 computadores chamados pc1, pc2, pc3,....)
    ------------------------------------------

    Dim i

    for i= 1 to 20

    strComputer = "pc" & i // aki somente se o seu parque de maquinas tiverem nomes parecido ex. aki coloco sbc-ti-xx entao todas as maquinas começam com sbc certo //
    Set colAccounts = GetObject("WinNT://" & strComputer & ",computer")
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
    objUser.SetPassword "teste" // aki é onde você coloca a nova senha do ADM Local OK //
    objUser.SetInfo
    next

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

    Agorta veja tbem as outras opções que deixaram aki mesmo no forum .... existem 1000 maneiras de preparar neston invente uma .....rs

     

    _________________
    Fábio Oliveira

    quinta-feira, 24 de agosto de 2006 13:03
  • Fabio,

     

    Valeu pela dica, voou testar amanhã na empresa e te mando uma resposta do que deu, mas agradeço muito pela atenção

    quinta-feira, 24 de agosto de 2006 20:32
  • Olá Romero

    No Script que você colocou, para colocarmos a mesma senha para diversas máquinas, como inserimos os nomes dos equipamentos?

     

    strComputer = "computador" => Como eu insiro aqui o nome dos equipamentos???
    Set colAccounts = GetObject("WinNT://" & strComputer & ",computer")
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
    objUser.SetPassword "teste"
    objUser.SetInfo

    quarta-feira, 27 de setembro de 2006 12:52
  • Bom Dia!

    Você saberia me dizer se através da BAT eu consigo colocar determinado usuário como administrador local do equipamento? Pois para alterar a senha de administrador, precisa ser admlocal, correto?

    Obrigado.

    Cleber

    quarta-feira, 27 de setembro de 2006 12:58
  • Cleber,

    Você está querendo colocar o usuário como administrador somente para alterar a senha?Não é necessário.

    É melhor colocar o script como script de start up, isto é, vai rodar quando a máquina for ligada antes do logon do usuário , desta maneira a conta system é quem vai alterar a senha.

    quarta-feira, 27 de setembro de 2006 13:35
    Moderador
  •  Fábio Jr wrote:

    Cleber,

    Você está querendo colocar o usuário como administrador somente para alterar a senha?Não é necessário.

    É melhor colocar o script como script de start up, isto é, vai rodar quando a máquina for ligada antes do logon do usuário , desta maneira a conta system é quem vai alterar a senha.

    Desculpa, mas como eu faço isso?

     

    terça-feira, 3 de outubro de 2006 20:06
  • Cara eu até explico como se faz, mas antes vc vai ter que ensinar como colocar o post anterior dentro do post - este Fábio Jr wrote: - . Brincadeira...

     

    1- Crie/Edite uma GPO para ser aplicada em computadores (isto é, deve ser linkada em OUs que contenham contas de máquinas).

    2- Vá  até a seguinte diretiva: Configuração do Computador -> Configurações do windows -> Scripts (Inicialização/Encerramento)

    3- No painel da direita abra o Inicializar e adicione o script que vc quer que rode quando a máquina for ligada.

    quinta-feira, 5 de outubro de 2006 15:51
    Moderador
  •  Fábio Jr wrote:

    Cara eu até explico como se faz, mas antes vc vai ter que ensinar como colocar o post anterior dentro do post - este Fábio Jr wrote: - . Brincadeira...

     

    1- Crie/Edite uma GPO para ser aplicada em computadores (isto é, deve ser linkada em OUs que contenham contas de máquinas).

    2- Vá  até a seguinte diretiva: Configuração do Computador -> Configurações do windows -> Scripts (Inicialização/Encerramento)

    3- No painel da direita abra o Inicializar e adicione o script que vc quer que rode quando a máquina for ligada.

    Eu esqueci de falar o SO e NT4. Se poderem me ajudar eu agradeço muito.

    Quanto a citaro post e so clicar na opção QUOTE ao lado da opçãp RESPONDER .

    quinta-feira, 5 de outubro de 2006 17:37
  • Caro Sr Fabio,

    Efetuei esses procedimentos só que eu gostaria de colocar esse script na rede e não local nos micros, e na rede não funciona pois ele ativa a rede depois de executar o script, olhei nos logs e mostra erro ao executar o script, teria como fazer isso?

    quinta-feira, 19 de outubro de 2006 18:51
  • Joaquim,

    O seu sistema operacional é Windows XP? O XP não espera a rede subir mesmo, as vezes nem script de logon funciona direito.

    Para que o XP espere a conexão de rede subir você deve configurar a seguinte diretiva:

    Configuração do Computador -> Modelos Administrativos -> sistema -> Logon -> Sempre esperar pela rede ao iniciar o computador e fazer logon.

    Eu configuro esta diretiva via GPO e distribuo para as OUs que contém computadores.

     

    quinta-feira, 19 de outubro de 2006 20:07
    Moderador
  • Na rede tem 2k, xp, e algumas 9x

    Valeu mesmo Fabio amanha vou chegar no serviço e efetuar esse procedimento e mando uma resposta do que deu, primeiro vou testar em duas maquinas que tenho la com xp e 2k

    quinta-feira, 19 de outubro de 2006 20:54
  • Só uma dica:

    o script que foi mandado anteriormente, que usava ADSI se não me engano, e que você perguntou como fazer para executar em várias máquinas, pode funcionar via rede, de forma remota. Isso significa que você pode alterar senhas na rede a qualquer momento, sem ter nem mesmo que levantar da cadeira...

    Basta trocar o nome do computador, ou alterar o script para que ele pegue os dados de um Inputbox.


    []s,

    --
    Vinicius Canto <scripterbratgmaildotcom>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com



    quinta-feira, 19 de outubro de 2006 23:22
    Moderador
  • Só completando... troca o que tá em vermelho

    "computador"

    por

    Inputbox("Digite o nome ou IP do computador")


    Só isso... daí é só salvar com extensão .vbs


    []s,


    --
    Vinicius Canto <scripterbratgmaildotcom>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    quinta-feira, 19 de outubro de 2006 23:43
    Moderador
  • Olá pessoal do fórum.

    Lendo esta conversa sobre troca de senha de administradores, gostaria de dizer a vocês como eu fiz na rede da minha empresa. Minha necessidade era a de alterar a senha da conta administrador de todas as estações, pois a senha utilizada havia vazado e os usuários estavam se aproveitando. O parque é de cerca de 2000 micros e é muito difícil encontrar boa parte deles on-line, já que muitos são notebooks. Ainda, muitos usuários têm sua conta de domínio colocada como administrador de sua estação, e estes costumam usar seus micros como se fossem particulares, mexendo até nos usuários locais. Parti então pra busca da solução via script buscando normalizar o problema. O resultado é um script semelhante aos que foram postados aqui, mas com uma diferença. Na GPO tem uma opção de passagem de parâmetro para o script, que pelos meus testes não ficam visíveis aos usuários de domínio comuns. Assim a senha não fica visível no script. Como quero a mesma senha para todas as estações, estou passando ela por parâmetro para o script. Na mesma GPO eu altero o nome da conta de administrador. O script segue abaixo.

    On Error Resume Next

    If WScript.Arguments.Count <> 1 Then
     WScript.Quit
    End If

    Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000

    Set objNetwork = CreateObject("Wscript.Network")
    strComputer = objNetwork.ComputerName

    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

    Set colAccounts = objWMIService.ExecQuery _
        ("Select * From Win32_UserAccount Where Domain = '" & strComputer & "'")
      
    For Each objAccount in colAccounts
        If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then 'Achou conta administrativa padrão
          Set objUser = GetObject("WinNT://" & strComputer & "/" & objAccount.Name & "")
          objUser.SetPassword WScript.Arguments(0) 'Altera senha
          objUser.FullName = "Escreva aqui o FULLNAME desejado" 'Altera Full Name
          objUser.Description = "Escreva aqui a descrição desejada"
          objUserFlags = objUser.Get("UserFlags")
          objPasswordExpirationFlag = objUserFlags OR ADS_UF_DONT_EXPIRE_PASSWD
          objUser.Put "userFlags", objPasswordExpirationFlag 'Altera conta para não expirar
          objUser.SetInfo 'Grava alteração
        End If
    Next

    WScript.Quit

    Espero ter contribuído.

    Abraços

    Sílvio Massaro Neto

    quinta-feira, 30 de novembro de 2006 11:30
  • Srs. Ok... Sou meio leigo nessa parte de scripts.

    Qual aplicativo uso para criar um script?

     

    Joguei no VB mas não funcionou... bat tb.. não...

    sexta-feira, 30 de março de 2007 15:50
  • Ja fiz o script na mesma forma que vc especificou mas ele nao aceita caracter especial na senha, tem alguma sugestão?

     

    Grato.

     

    segunda-feira, 23 de julho de 2007 18:54
  • Pessoal, tentei usar o pspasswd para alterar a senhas dos computadores remotos mas o comando nao vai. sera que alguem poderia dar um exemplo da linha de comando?
    terça-feira, 24 de julho de 2007 19:11
  • Olá Silvio,

     

    Esse script que vc fez ele remove os usuarios com permissão administrador nas máquinas ???´

    Além da alteração de senha do admin, tbém preciso remover os user administradores das estações da rede.

     

    Eleduardo.

    quarta-feira, 15 de agosto de 2007 19:04
  • Para remover usuários do Grupo Administradores você pode se utilizar de dois recursos. Scripts ou Grupos Restritos na GPO.

     

    Por script, um código como o abaixo resolve seu problema:

     

    On Error Resume Next

    Dim objWMIService, objSetGroups, objGroups, strGroup, objGroup, DNPath
    Dim objNetwork, strComputer

    Set objNetwork = CreateObject("Wscript.Network")
    strComputer = objNetwork.ComputerName

    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set objSetGroups = objWMIService.ExecQuery("Select * From Win32_Group Where Domain = '" & strComputer & "' AND SID = 'S-1-5-32-544'")
    For Each objGroups in objSetGroups
        strGroup = objGroups.Name
    Next

    Set objGroup = GetObject("WinNT://" & strComputer & "/" & strGroup & ",group")

    DNPath = "WinNT://" & strComputer & "/Joao"
    objGroup.Add(DNPath) 'Adiciona o usuário local Joao no grupo Administradores

    DNPath = "WinNT://" & strComputer & "/Joao"
    objGroup.Remove(DNPath) ' Remove um usuário local do grupo Administradores

    DNPath = "WinNT://seudominio.com.br/GRUPO_SUPORTE"
    objGroup.Add(DNPath) 'Adiciona um grupo ou usuário de domínio no grupo Administradores

    Wscript.Quit

     

    Agora, por Grupos Restritos, vá na GPO -> Configurações do Computador -> Configurações do Windows -> Configurações de Segurança -> Grupos Restritos.

    Adicione um grupo chamado Administradores e inclua os grupos e usuários que deverão fazer parte do mesmo. Qualquer grupo ou usuário que não for explicitado nesta lista será removido assim que a GPO for aplicada na estação de trabalho. Tome cuidade porque após a aplicação da GPO e possível remoção de usuários do grupo Administrador não é possível desfazer estas remoções.

     

    Atenciosamente,

     

    Sílvio Massaro Neto

    quarta-feira, 15 de agosto de 2007 20:28
  •  Silvio Massaro wrote:

    Para remover usuários do Grupo Administradores você pode se utilizar de dois recursos. Scripts ou Grupos Restritos na GPO.

     

    Por script, um código como o abaixo resolve seu problema:

     

    On Error Resume Next

    Dim objWMIService, objSetGroups, objGroups, strGroup, objGroup, DNPath
    Dim objNetwork, strComputer

    Set objNetwork = CreateObject("Wscript.Network")
    strComputer = objNetwork.ComputerName

    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set objSetGroups = objWMIService.ExecQuery("Select * From Win32_Group Where Domain = '" & strComputer & "' AND SID = 'S-1-5-32-544'")
    For Each objGroups in objSetGroups
        strGroup = objGroups.Name
    Next

    Set objGroup = GetObject("WinNT://" & strComputer & "/" & strGroup & ",group")

    DNPath = "WinNT://" & strComputer & "/Joao"
    objGroup.Add(DNPath) 'Adiciona o usuário local Joao no grupo Administradores

    DNPath = "WinNT://" & strComputer & "/Joao"
    objGroup.Remove(DNPath) ' Remove um usuário local do grupo Administradores

    DNPath = "WinNT://seudominio.com.br/GRUPO_SUPORTE"
    objGroup.Add(DNPath) 'Adiciona um grupo ou usuário de domínio no grupo Administradores

    Wscript.Quit

     

    Agora, por Grupos Restritos, vá na GPO -> Configurações do Computador -> Configurações do Windows -> Configurações de Segurança -> Grupos Restritos.

    Adicione um grupo chamado Administradores e inclua os grupos e usuários que deverão fazer parte do mesmo. Qualquer grupo ou usuário que não for explicitado nesta lista será removido assim que a GPO for aplicada na estação de trabalho. Tome cuidade porque após a aplicação da GPO e possível remoção de usuários do grupo Administrador não é possível desfazer estas remoções.

     

    Atenciosamente,

     

    Sílvio Massaro Neto

    quinta-feira, 16 de agosto de 2007 13:07
  • Amigos!

     

    O script abaixo está me retornando a seguinte erro: O caminho da rede não foi encontrado.

     

    O que pode esta acontecendo?

     

    Dim i

    for i= 1 to 20

    strComputer = "pc" & i
    Set colAccounts = GetObject("WinNT://" & strComputer & ",computer")
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
    objUser.SetPassword "teste"
    objUser.SetInfo
    next

    segunda-feira, 20 de agosto de 2007 17:54
  •  

    Silvio. Esse script era o que eu precisava!!! SHOW!

     

    Valeuuuzzz

    terça-feira, 28 de agosto de 2007 19:15
  • ja que esse script logon passar a senha em branco poderiamos fazer o seguinte
    nao permitir que o script seja visualizado
    aguardar pela rede antes de ser executado
    e pelo que eu sei esse script apenas roda remoto e nao fica armazenado no micro cliente
    sendo assim nao teriamos um problema de furo de segurança durante a execução do mesmo

    ja em relacao ao usuario poder ler o caminho \\DC\SYSVOL\comtoso\Policies 
    ate que ele encontrasse o scrtipt seria dificil, correto?

    abracos,

    Thiago Beier
    terça-feira, 7 de abril de 2009 11:35
  • Vou tentar responder com uma mensagem várias dúvidas que estão aqui.


    1) Pessoal, mesmo que a dúvida seja parecida com a que já está lá, crie outro post. Evitem discussões longas sobre assuntos diferentes na mesma thread.

    2) Procurem no forum antes de perguntar. Essa pergunta já foi respondida centenas de vezes desde que eu entrei no forum.

    3) Senhas em script não são uma boa prática. Nunca. Qualquer usuário um pouco mais esperto consegue ver o script e ganha a senha de admin dele novamente. Tarefas administrativas devem ser feitas pelo administrador, usando a máquina dele. O Admin pode muito bem resetar a senha à distância, sem nem ter que levantar da cadeira. Não use scripts de logon para esse tipo de coisa, ele não foi feito para isso. Vocês podem argumentar que é possível criptografar script, compilar, esconder do usuário... bobeira. Todos esses truques são facilmente contornáveis.

    4) Não adianta nada alterar a senha do usuário administrador local se os usuários da sua rede estiverem no grupo Administradores ou Power Users. Retire todos de lá, não é nada seguro.

    @Thiago: Caminho de rede não encontrado => problemas de conectividade de rede (roteamento, ip, firewall... tá tudo certinho por aí? resolva isso antes)



    Bom, é isso...

    Abraço pessoal,


    Vinicius Canto
    MVP Admin Frameworks
    http://viniciuscanto.blogspot.com
    Vinicius Canto MVP Admin Frameworks Blog: http://viniciuscanto.blogspot.com
    sexta-feira, 10 de abril de 2009 13:12
    Moderador
  • Muito boa a solução .. testei também e deu certo ..

    Minha pergunta: se o usuario não for admin no momento que eu disparar o script ?

    quinta-feira, 22 de abril de 2010 14:23