Usuário com melhor resposta
Script desativar contas locais

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
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
- Sugerido como Resposta Fábio JrModerator quinta-feira, 14 de fevereiro de 2013 15:58
- Marcado como Resposta Fábio JrModerator segunda-feira, 25 de fevereiro de 2013 19:48
Todas as Respostas
-
Camarada, boa noite.
Segue o link. Espero que ajude.
-
-
-
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.
-
-
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
- Sugerido como Resposta Fábio JrModerator quinta-feira, 14 de fevereiro de 2013 15:58
- Marcado como Resposta Fábio JrModerator segunda-feira, 25 de fevereiro de 2013 19:48
-