none
Script Bloquear Contas de usuarios apartir de uma Lista RRS feed

  • Pergunta

  • Pessoal preciso de uma ajuda para criar um script para bloquear contas de usuario apartir de uma lista usuarios.txt, esta lista contém 100 funcionarios e estes estão divididos em varias OUS no AD,  onde devo bloquear todos que estão nesta lista,  A lista foi gerada pelo Departamento pessoal da minha empresa, daria muito trabalho ficar procurando usuario por usuario e bloqueando um a um no AD. Servidor Windows 2000 Server.

    Atenciosamente,

    Cristiano França

     

     

     

     

    terça-feira, 6 de março de 2007 18:34

Respostas

  • Cara, já que é específico, você vai ter que botar a mão nele também e adaptar um pouco. Ninguém conhece a estrutura do domínio da tua rede...

    Dicas que eu te dou:

    1) Combine os scripts. O primeiro que foi postado precisa do caminho LDAP do usuário. Sendo assim, você consegue desabilitar um usuário se tiver o DistinguishedName dele.

    2) Pra pegar o DN de um usuário, tem script pronto
    http://www.microsoft.com/technet/scriptcenter/csc/scripts/ad/users/cscad085.mspx

    3) Depois de combinar os dois, é só iterar pela lista. Com o Windows Powershell, o trabalho pode ser feito com uma linha:

    cat lista.txt | cscript <nomedoscript.vbs> nome_do_usuario


    Espero ter dado uma luz...

    []s,

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

    quarta-feira, 7 de março de 2007 23:46
    Moderador

Todas as Respostas

  • Olá Cristiano,

    Veja http://support.microsoft.com/kb/305144/en-us

    ou

    Disable a User Account

    Description

    Disables a user account.

    Supported Platforms

    Windows Server 2003

    Yes

    Windows XP

    Yes

    Windows 2000

    Yes

    Windows NT 4.0

    Yes

    Windows 98

    Yes

    Script Code

    Const ADS_UF_ACCOUNTDISABLE = 2
     
    Set objUser = GetObject _
    ("LDAP://cn=myerken,ou=management,dc=fabrikam,dc=com")
    intUAC = objUser.Get("userAccountControl")
     
    objUser.Put "userAccountControl", intUAC OR ADS_UF_ACCOUNTDISABLE
    objUser.SetInfo
    

    For online peer support, join the microsoft.public.windows.server.scripting community on the msnews.microsoft.com news server. To provide feedback or report bugs in sample scripts or the Scripting Guide, please contact Microsoft TechNet.

    Disclaimer

    The sample scripts are not supported under any Microsoft standard support program or service. The sample scripts are provided AS IS without warranty of any kind. Microsoft further disclaims all implied warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages.

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

    ou

    Unlock a User Account

    Description

    Unlocks the MyerKen Active Directory user account.

    Supported Platforms

    Windows Server 2003

    Yes

    Windows XP

    Yes

    Windows 2000

    Yes

    Windows NT 4.0

    Yes

    Windows 98

    Yes

    Script Code

    Set objUser = GetObject _
        ("LDAP://cn=MyerKen,ou=Management,dc=NA,dc=fabrikam,dc=com")
    
    objUser.IsAccountLocked = False
    objUser.SetInfo
    

    For online peer support, join the microsoft.public.windows.server.scripting community on the msnews.microsoft.com news server. To provide feedback or report bugs in sample scripts or the Scripting Guide, please contact Microsoft TechNet.

    Disclaimer

    The sample scripts are not supported under any Microsoft standard support program or service. The sample scripts are provided AS IS without warranty of any kind. Microsoft further disclaims all implied warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages.

    Fonte: http://www.microsoft.com/technet/scriptcenter/scripts/ad/users/default.mspx?mfr=true

    Outra coisa que verifiquei com alguns amigos aki da emprea foi que você pode fazer uma query no seu AD com alguma particularida que estes usuario tenham em suas listas.

    Agora é com vc verificar um outro script que pegue sua lista de users OK!

     

    espero ter ajuda e lembre-se de classificar este post

     

    terça-feira, 6 de março de 2007 22:23
  • Ola Fabio obrigado pelo post.

    Estes scripts que me passou não iram funcionar para o meu caso, examine só, preciso de um script que varre toda estrutura do meu AD, incluindo varias OUs separadas na organização ex: Administrativo, Comercial, Financeiro, etc... preciso bloquear usuários que estão distribuídos entre elas, este scripts somente vão bloquear usuários em uma determinada OU, sei que é um pouco complexo a criação deste script e levaria um bom tempo para tentar achar a solução, a lista dos usuários que tenho em arquivo .txt corresponde exatamente ao login do usuário no AD assim já facilita bastante meu trabalho. Em relação ao script que leia a lista users.txt este seria a chave do que estou precisando realmente, se tiver alguma informação sobre agradeceria.

    att.

    Cristiano Franca

     

    quarta-feira, 7 de março de 2007 00:47
  • Cara, já que é específico, você vai ter que botar a mão nele também e adaptar um pouco. Ninguém conhece a estrutura do domínio da tua rede...

    Dicas que eu te dou:

    1) Combine os scripts. O primeiro que foi postado precisa do caminho LDAP do usuário. Sendo assim, você consegue desabilitar um usuário se tiver o DistinguishedName dele.

    2) Pra pegar o DN de um usuário, tem script pronto
    http://www.microsoft.com/technet/scriptcenter/csc/scripts/ad/users/cscad085.mspx

    3) Depois de combinar os dois, é só iterar pela lista. Com o Windows Powershell, o trabalho pode ser feito com uma linha:

    cat lista.txt | cscript <nomedoscript.vbs> nome_do_usuario


    Espero ter dado uma luz...

    []s,

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

    quarta-feira, 7 de março de 2007 23:46
    Moderador
  • Olá Cristiano e Vinicius,

    Não sei se é possivel mas com algumas mudanças neste script ele pode colocar um looping que leia o arquivo dele...
    Const ADS_UF_ACCOUNTDISABLE = 2
     
    Set objUser = GetObject _
    ("LDAP://cn=myerken,ou=management,dc=fabrikam,dc=com")
    intUAC = objUser.Get("userAccountControl") // colocaria aki algum looping que leia o seu arquivo ... 
    tentei achar alguma coisa que faça isso mas minha limitação como desenvolvedor de scripts me impede de faze-lo ....rs //
    objUser.Put "userAccountControl", intUAC OR ADS_UF_ACCOUNTDISABLE objUser.SetInfo
     
    tente achar alguma coisa no script center pois eu não consegui nada ....
     
    fui
    quinta-feira, 8 de março de 2007 19:59
  • Desbloquear.vbs
    -------------------------------------------------------------desde aqui------------------------
    Option Explicit
    Dim oFSO, sFile, oFile, sText, strUsername, strDomain, objUser
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    sFile = "listau.txt"
    If oFSO.FileExists(sFile) Then
    Set oFile = oFSO.OpenTextFile(sFile, 1)
     Do While Not oFile.AtEndOfStream
      sText = oFile.ReadLine
       If Trim(sText) <> "" Then 
         strUsername= sText 
     strDomain = "CAMBIA EL DOMINIO ESCRIBE EL TUYO"
     set objUser = GetObject("WinNT://" & strDomain & "/" & strUsername)
      if objUser.IsAccountLocked = TRUE then
         objUser.IsAccountLocked = FALSE
         objUser.SetInfo
         WScript.Echo "Cuenta Bloqueada, ya se desbloqueo"
      
      end if
       End If
     Loop
    oFile.Close

    End If
    -------------------hasta aqui-------------------------------
    en un txt escribir la lista de usuario te sirve para bloquear y desbloquear solo cambia el true o false en

    objUser.IsAccountLocked = FALSE desbloquea

    objUser.IsAccountLocked = true bloquea
     
    listau.txt
    -----------------desde aqui---------------
    usuario1
    usuario2
    -----------------desde aqui---------------
    sexta-feira, 24 de abril de 2009 22:15