none
Alterar senha de Admin Local

    Question

  • Bom dia a todos,

     

    Eu fiz um script para alterar senha de admin local nas estacoes, porem ele so esta funcionando no windows xp, no 2000 nao, alguem sabe me falar se este objeto nao funciona no windows 2000? Segue abaixo o codigo:

    strComputer = GetComputer()
        strAdmin = "administrador"
        strPassAdmin = GetPassword()
        Set objUser = GetObject("WinNT://" & strComputer & "/" & strAdmin & ", user")
        objUser.SetPassword strPassAdmin
        objUser.SetInfo

     

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

    Essas funcoes eu ja fiz ele da erro na linha 4, mas no xp funciona.

     

    Valeu

    Wednesday, August 23, 2006 1:39 PM

Answers

  • Jaime,

    Não sei se tem a necessidade de utilizar o GetComputer() talvez vc utilizando strComputer = "." já resolva (o "." faz referência ao nome do micro onde está sendo rodado o script, sendo um script de logon ele pega a da estação que está fazendo o logon).

     

    você pode utilizar também a troca remota, onde você inicia o processo de um único ponto. Aqui mesmo no fórmum isso já foi discutido:

    http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=629394&SiteID=29 

    Friday, September 01, 2006 3:09 PM
  • Se for script de Logon (roda após o usuário digitar sua senha), sim, ele precisa ter permissões administrativas.

    Você pode colocar o script para rodar na inicilização do micro (vai rodar antes do usuário fazer logon) assim o script roda se não me engano com a conta local system, esta consegue alterar a senha.

    Monday, September 04, 2006 12:02 PM

All replies

  • Ola Jaime.

    Creio que o problema neste script esta nas chamadas para as funçòes getcomputer() e getpassword()

    O meu computador utiliza Windows XP e pra mim deu erro logo na 1a. linha.

    Voce pode criar um arquivo com a listagem dos computadores que vc quer alterar a senha do administrador e colocar em um arquivo. Depois basta executar o script da sua maquina.

    '******* inicio do script ***********

    Set ofs = CreateObject("scripting.FileSystemObject")
    Set ofile = opentextfile("c:\lista.txt",1,true )
    Do Until ofile.atendofstream
     strComputer = ofile.readline
        strAdmin = "administrador"
        strPassAdmin = "senha"
        Set objUser = GetObject("WinNT://" & strComputer & "/" & strAdmin & ", user")
        objUser.SetPassword strPassAdmin
        objUser.SetInfo
    loop
    ofile.close
    Set ofs.nothing

    '********** fim do script **************

    []'s

    Wednesday, August 23, 2006 4:35 PM
  • Wilson,

    Eh exatamente isso que eu estou fazendo, mas, o problema esta no comando

    < GetObject("WinNT://" & strComputer & "/" & strAdmin & ", user") >

    No windows XP, isso funciona normalmente, mas no 2000, retorna um erro de objeto.

    O que eh "WinNT://" & strComputer & "/" & strAdmin & ", user" ? sera que isso eh diferente do XP para o Win2000?


     

     

     

    Wednesday, August 23, 2006 4:45 PM
  • Oi Jaime,

    Qual é exatamente o erro que o script está retornando pra vc

    []'s

     

    Wednesday, August 23, 2006 4:52 PM
  •  

    Runtime error -2147463168 (80005000)

    Automation error.

    O script que vocë passou gerou erro na linha 12.

    Wednesday, August 23, 2006 5:03 PM
  • Ops.

    Falha nossa.

    Utilize Set ofs=nothing

    []'s

     

    Wednesday, August 23, 2006 5:08 PM
  • Mesmo assim nao deu certo agora ele da um erro na linha 2 caractere:1 typemismatch:opentextfile

     

    Voce consegui verificar o meu codigo, aquelas funcoes de getcomputer eu que fiz aqui, por isso que ele deve ter dado problema. Se vc quiser segue elas abaixo:

     

    ption Explicit

    Dim strComputer, _
        strAdmin, _
        strPassAdmin As String
       
    Dim objUser, colAccounts As Object

    Private Sub Form_Load()

        strComputer = GetComputer()
        strAdmin = "administrador"
        strPassAdmin = GetPassword()
        Set objUser = GetObject("WinNT://" & strComputer & "/" & strAdmin & ", user")
        objUser.SetPassword strPassAdmin
        objUser.SetInfo

    End

    End Sub

    Public Function GetComputer() As String
     
    Dim Buffer As String
    Dim Size As Long
    Dim dl As Long
     
        Size = 199
     
        Buffer = String$(200, 0)
     
        dl = GetComputerName(Buffer, Size)
     
        If dl <> 0 Then
            GetComputer = Left$(Buffer, Size)
        Else
            GetComputer = ""
        End If
     
    End Function

    Public Function GetPassword() As String

    Dim v_HostName, v_Variavel, x

    Let v_HostName = Right(strComputer, 4)

    If (IsNumeric(Mid(v_HostName, 4, 1))) = True Then
        Let x = 4
    Else
        If (IsNumeric(Mid(v_HostName, 3, 1))) = True Then
            Let x = 3
        Else
            If (IsNumeric(Mid(v_HostName, 2, 1))) = True Then
                Let x = 2
            Else
                Let x = 1
            End If
        End If
    End If

    Select Case Mid(v_HostName, x, 1)

        Case 0, 2, 4, 6, 8
            Let v_Variavel = "4"

        Case 1, 3, 5, 7, 9
            Let v_Variavel = "5"

    End Select

    Let v_HostName = Mid(v_HostName, 4, 1) & _
                     Mid(v_HostName, 3, 1) & _
                     Mid(v_HostName, 2, 1) & _
                     Mid(v_HostName, 1, 1)

    Let GetPassword = v_HostName & v_Variavel

    End Function

     

     

    Wednesday, August 23, 2006 5:27 PM
  • outra falha. :(

    utilize ofs.opentextfile

    enquanto isso deixa dar uma olhada nesse script que vc passou.

    []'s

    Wednesday, August 23, 2006 5:33 PM
  • Jaime,

    Não sei se tem a necessidade de utilizar o GetComputer() talvez vc utilizando strComputer = "." já resolva (o "." faz referência ao nome do micro onde está sendo rodado o script, sendo um script de logon ele pega a da estação que está fazendo o logon).

     

    você pode utilizar também a troca remota, onde você inicia o processo de um único ponto. Aqui mesmo no fórmum isso já foi discutido:

    http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=629394&SiteID=29 

    Friday, September 01, 2006 3:09 PM
  • Para que esse script de certo o usuário que se estiver logado na máquina na hora de rodar o script precisa ser ADM do pc?

    []'s

    Sunday, September 03, 2006 3:56 PM
  • Se for script de Logon (roda após o usuário digitar sua senha), sim, ele precisa ter permissões administrativas.

    Você pode colocar o script para rodar na inicilização do micro (vai rodar antes do usuário fazer logon) assim o script roda se não me engano com a conta local system, esta consegue alterar a senha.

    Monday, September 04, 2006 12:02 PM