none
Adicionar Usuário verificando se o mesmo já existe RRS feed

  • Pergunta

  • Senhores,

    Preciso criar um usuário em todas as máquinas da rede e que este usuário tem a senha padrão em todas e seja do mesmo grupo em todas as máquinas (utilizarei para o deploy de um pacote nas máquinas). Na gestão antiga criaram um usuario especifico nas máquinas e agora que existe o AD estou querendo remover este usuario tambem.

    Estou usando o script abaixo. Funcionou bem, porém na segunda vez que ele executa fica falando que o usuario já existe e outros erros.

    Sou leigo em VBS, mas entendo que deve ser somente um comando IF faltando.

    Enfim, qualquer ajuda será bem vinda.

    PS: estou executando o script abaixo num arquivo só. Será que teria que dividir tudo em vários arquivos .vbs???

     

    'Cria o usuário

    Set wshNetwork = WScript.CreateObject("WScript.Network")
    strComputer = WshNetwork.ComputerName
    Set colAccounts = GetObject("WinNT://" & strComputer & "")
    Set objUser = colAccounts.Create("user", "Suporte")
    objUser.SetPassword "TESTE"
    objUser.SetInfo

    'Adiciona o usuário ao grupo

    Set objGroup = GetObject("WinNT://" & strComputer & "/Administradores,group")
    Set objUser = GetObject("WinNT://" & strComputer & "/Suporte,user")
    objGroup.Add(objUser.ADsPath)


    'Remover usuário local

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

    strUser = "Usuario"
    Set objComputer = GetObject("WinNT://" & strComputer & "")
    objComputer.Delete "user", strUser


    'Trocando a senha padrão
    strComputer = objNetwork.ComputerName
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrador, user")

    objUser.SetPassword "TESTE"
    objUser.SetInfo

    terça-feira, 3 de agosto de 2010 15:21

Respostas

  • Adicione a função User_Exist, veja que a primeira linha do script agora testa se o usuário existe, se existir sai do script.

    if User_Exist("Suporte") then wscript.quit
    
    
    'Cria o usuário
    
    Set wshNetwork = WScript.CreateObject("WScript.Network")
    strComputer = WshNetwork.ComputerName
    Set colAccounts = GetObject("WinNT://" & strComputer & "")
    Set objUser = colAccounts.Create("user", "Suporte")
    objUser.SetPassword "TESTE"
    objUser.SetInfo
    'Adiciona o usuário ao grupo
    
    Set objGroup = GetObject("WinNT://" & strComputer & "/Administradores,group")
    Set objUser = GetObject("WinNT://" & strComputer & "/Suporte,user")
    objGroup.Add(objUser.ADsPath)
    
    
    'Remover usuário local
    
    Set objNetwork = CreateObject("WScript.Network")
    strComputer = objNetwork.ComputerName
    
    strUser = "Usuario"
    Set objComputer = GetObject("WinNT://" & strComputer & "")
    objComputer.Delete "user", strUser
    
    
    'Trocando a senha padrão
    strComputer = objNetwork.ComputerName
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrador, user")
    
    objUser.SetPassword "TESTE"
    objUser.SetInfo
    
    
    '---------- FUNÇÕES ----------------
    
    function User_Exist(strUser)
    	User_Exist=false
    	Set objNetwork = CreateObject("Wscript.Network")
    	strComputer = objNetwork.ComputerName
    	Set colAccounts = GetObject("WinNT://" & strComputer & "")
    	colAccounts.Filter = Array("user")
    	For Each objUser In colAccounts
    		if objUser.Name  = strUser then
    			User_Exist = true
    			exit function
    		end if
    	Next
    end function

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

    Mutirão de Respostas

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


    Fábio de Paula Junior

    quarta-feira, 21 de novembro de 2012 21:30
    Moderador