none
Script desativar contas locais RRS feed

  • Pergunta

  • olá pessoal, mais uma vez venho lhes pedir ajuda, seguinte,

    estou usando um script vbs para desativar todas as contas locais existentes nas minhas estações, nesse script eu coloquei exceção de computadores onde coloquei meus DCs e exceção de usuários como administrador, sendo assim ele irá vasculhar toda a rede desativando todas as contas locais exceto a conta administrador e exceto no meu DC por exemplo servidor01:

    usuarios = Array("Administrador")
    servidores = Array("servidor01")
    
    Dim objFSO, objCompFile, objDCFile, objDomain, objComp, objNTComp 
    
    strGroup = "Administradores"
    strDomain = "MEUDOMINIO"
    
    Set objDomain = GetObject("WinNT://" & strDomain) 
    objDomain.Filter = Array("Computer") 
    
    For each objComputer in objDomain 
    sComputerName = objComputer.name
    
    If InStr(UCase(Join(servidores)), UCase(sComputerName)) = 0  Then
    'Wscript.Echo("Computador " & sComputerName)
    objComputer.Filter = Array("User")
    For Each objUser in objComputer
        'Wscript.Echo("Conta: "& objUser.Name)
    If InStr(UCase(Join(usuarios)), UCase(objUser.Name)) = 0  Then
    If objUser.AccountDisabled = False Then
      objUser.AccountDisabled = True
      objUser.SetInfo
    Wscript.Echo("["& sComputerName &"] Desativando conta " & objUser.Name)
    End If
    End If
    Next
    
    End If
    
    
    Next


    O problema é que quado estou executando este script usando o cscript ele me reporta o erro access is denied ao executar a linha 23 do script, porém estou executando como administrador, alguém poderia me ajudar por favor?


    • Editado Fábio JrModerator terça-feira, 22 de janeiro de 2013 14:43 Formatação do código
    segunda-feira, 21 de janeiro de 2013 17:35

Respostas

  • Luiz Eduardo,

    Tente utilizar este script, eu peguei ele na Galeria do Technet.

    '************************************************* 
    ' File:        Disable Local User Accounts.vbs 
    ' Author:    Andrew Barnes 
    ' version:     1.0 Date: 07 September 2009 By : Andrew D Barnes 
    ' Lists local accounts and disables all except local admin and ASPNET 
    '************************************************* 
     
    Set objShell = CreateObject("Wscript.Shell") 
    Set objNetwork = CreateObject("Wscript.Network") 
     
    strComputer = objNetwork.ComputerName 
    
    'Exceção seu DC
    if strComputer="servidor01" then wscript.quit
     
    Set colAccounts = GetObject("WinNT://" & strComputer & "") 
     
    colAccounts.Filter = Array("user") 
        
     
    For Each objUser In colAccounts 
     
        If objUser.Name <> "Administrator" AND objUser.Name <> "Administrador" Then 
                If objUser.AccountDisabled = TRUE then 
                     Message = Message & " is currently disabled" & vbCrLf 
                Else 
                    objUser.AccountDisabled = True 
                    objUser.SetInfo 
                End if 
        End If 
     
    Next 

    Já inclui a exceção do seu DC e os usuários administrador e administrator.

    Ref.:

    Disable Local User Accounts

    http://gallery.technet.microsoft.com/scriptcenter/47ad1824-5af7-451e-a9f5-f6dd90421394


    Fábio de Paula Junior

    quinta-feira, 7 de fevereiro de 2013 10:02
    Moderador

Todas as Respostas

  • segunda-feira, 21 de janeiro de 2013 22:21
  • Obrigado por tentar me ajudar amigo, o post que me enviou também é meu estou exatamente tentando fazer com que funcione, mas preciso saber o que esta dando errado em minha aplicação.
    terça-feira, 22 de janeiro de 2013 13:21
  • Se vc executar de um prompt elevado (run as administrator) acontece o mesmo erro?

    Pode ser problema com o UAC.


    Fábio de Paula Junior

    terça-feira, 22 de janeiro de 2013 14:44
    Moderador
  • Sim, ocorre o mesmo problema, mas estou executando o script pelo servidor e estou logado como administrador, mesmo assim fiz o teste que você pediu e ocorreu o mesmo erro.

    A unica coisa que preciso é desativar todas as contas locais das estações exceto administrador, mas preciso que seja gerado a relação das contas que foram desativadas para que eu posa ter um controle, se alguém tornar a reativa-las eu terei como saber.

    terça-feira, 22 de janeiro de 2013 16:12
  • Subindo

    Fábio de Paula Junior

    sexta-feira, 1 de fevereiro de 2013 11:59
    Moderador
  • Luiz Eduardo,

    Tente utilizar este script, eu peguei ele na Galeria do Technet.

    '************************************************* 
    ' File:        Disable Local User Accounts.vbs 
    ' Author:    Andrew Barnes 
    ' version:     1.0 Date: 07 September 2009 By : Andrew D Barnes 
    ' Lists local accounts and disables all except local admin and ASPNET 
    '************************************************* 
     
    Set objShell = CreateObject("Wscript.Shell") 
    Set objNetwork = CreateObject("Wscript.Network") 
     
    strComputer = objNetwork.ComputerName 
    
    'Exceção seu DC
    if strComputer="servidor01" then wscript.quit
     
    Set colAccounts = GetObject("WinNT://" & strComputer & "") 
     
    colAccounts.Filter = Array("user") 
        
     
    For Each objUser In colAccounts 
     
        If objUser.Name <> "Administrator" AND objUser.Name <> "Administrador" Then 
                If objUser.AccountDisabled = TRUE then 
                     Message = Message & " is currently disabled" & vbCrLf 
                Else 
                    objUser.AccountDisabled = True 
                    objUser.SetInfo 
                End if 
        End If 
     
    Next 

    Já inclui a exceção do seu DC e os usuários administrador e administrator.

    Ref.:

    Disable Local User Accounts

    http://gallery.technet.microsoft.com/scriptcenter/47ad1824-5af7-451e-a9f5-f6dd90421394


    Fábio de Paula Junior

    quinta-feira, 7 de fevereiro de 2013 10:02
    Moderador
  • Luis Eduardo,

    Chegou a testar este último script?


    Fábio de Paula Junior

    terça-feira, 19 de fevereiro de 2013 12:41
    Moderador