none
Script p/ desabilitar POP3 dos Usuários. RRS feed

  • Pergunta

  • Olá pessoal,

     

    Estou tentando criar um Script para desabilitar o POP3 de alguns usuários no meu AD.

     

    Esse script funciou quando eu coloquei apenas um usuário:

     

    qstring = "LDAP://CN=Jandyra Costa de Almeida,OU=Usuários,OU=CCA,OU=Sites,DC=educacao,DC=intragov"
    set objUser = GetObject(qstring)
    objUser.PutEx 2, "protocolSettings",ARRAY("POP3§0§1§4§ISO-8859-1§0§§§","IMAP4§0§1§4§ISO-8859-1§0§1§0§0")
    objUser.setinfo

     

    Então puxei um relatorio do AD, joguei em uma planilha do Excel para filtra-la deixando apenas os usuários que eu quero desabilitar o POP3 e então joguei aquela lista de usuários de volta no script:

     

    qstring = "LDAP://CN=User5,OU=Usuários,OU=CCA,OU=Sites,DC=educacao,DC=intragov"
    qstring = "LDAP://CN=User4,OU=Usuários,OU=CCA,OU=Sites,DC=educacao,DC=intragov"
    qstring = "LDAP://CN=User3,OU=Usuários,OU=CCA,OU=Sites,DC=educacao,DC=intragov"
    qstring = "LDAP://CN=User2,OU=Usuários,OU=CCA,OU=Sites,DC=educacao,DC=intragov"
    qstring = "LDAP://CN=User1,OU=Usuários,OU=CCA,OU=Sites,DC=educacao,DC=intragov"
    qstring = "LDAP://CN=Jandyra Costa de Almeida,OU=Usuários,OU=CCA,OU=Sites,DC=educacao,DC=intragov"
    set objUser = GetObject(qstring)
    objUser.PutEx 2, "protocolSettings",ARRAY("POP3§0§1§4§ISO-8859-1§0§§§","IMAP4§0§1§4§ISO-8859-1§0§1§0§0")
    objUser.setinfo

     

    Só que é uma lista de mais de 1000 usuários. Nesse caso... O scritp funcionou apenas para o ultimo usuário nessa lista.

     

    Sou um zero a esquerda em programação... Estou apreendendo agora... Já me falaram que eu deveria fazer com que o script buscasse os dados na tabela do Excel... mas não tenho nem ideia de como fazer isso...

     

    Será que alguem poderia me ajudar?

     

    Vlw!!

     

    Abraços...

    segunda-feira, 24 de setembro de 2007 15:44

Respostas

  • Segue o script que você precisa, ele irá ler todo o seu AD e comparar com um arquivo TXT que você deve criar no mesmo diretório onde o script será executado este TXT deve se chamar usuarios.txt e nele deve estar o login (o login e não o nome) de todos os usuários que serão alterados.

     

    Log_Saida.txt : Arquivo será criado automaticamente com o log da operação, irá dizer quais usuários foram alterados.

     

    Usuarios.txt : Arquivo que você precisa criar com a lista de todos os logins que serão aterados.

    Ex.:

    usuario1

    usuario2

    usuario3

    usuario3

     

    Code Snippet
    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
    Set OutPutFile = FileSystem.CreateTextFile("Log_Saida.txt", True)
    Set oContainer = GetObject("LDAP://DC=educacao,DC=intragov")
    EnumerateUsers oContainer
    Sub EnumerateUsers(oCont)
         Dim oUser, bUser
         For Each oUser In oCont
              bUser = False
              Select Case LCase(oUser.Class)
                   Case "user"
                   bUser = True
                                       
      StrUser_AD = oUser.sAMAccountName
      StrCN = oUser.distinguishedName
      '### Lê o arquivo com os nomes dos usuários ###
      Set objFSO = CreateObject("Scripting.FileSystemObject")
      Set objFile = objFSO.OpenTextFile("usuarios.txt", 1)
      Do Until objFile.AtEndOfStream
       StrUser = objFile.Readline
        
           If StrUser = StrUser_AD Then
         
         qstring = "LDAP://" & StrCN
         set objUser = GetObject(qstring)
         objUser.PutEx 2, "protocolSettings",ARRAY("POP3§0§1§4§ISO-8859-1§0§§§","IMAP4§0§1§4§ISO-8859-1§0§1§0§0")
         objUser.setinfo
         OutPutFile.WriteLine StrUser_AD & " - Modificado com sucesso."
            
               End if
         Loop
     
                   Case "organizationalunit", "container"
                        EnumerateUsers oUser
                   End Select
              If bUser Then
                   OutPutFile.WriteLine
              End If
         Next
    End Sub
    OutPutFile.Close
    Set FileSystem = Nothing
    Set objFSO = Nothing
    Set oContainer = Nothing
    WScript.echo "Finalizado"
    WScript.Quit(0)

     

     

    terça-feira, 25 de setembro de 2007 14:48

Todas as Respostas

  • Segue o script que você precisa, ele irá ler todo o seu AD e comparar com um arquivo TXT que você deve criar no mesmo diretório onde o script será executado este TXT deve se chamar usuarios.txt e nele deve estar o login (o login e não o nome) de todos os usuários que serão alterados.

     

    Log_Saida.txt : Arquivo será criado automaticamente com o log da operação, irá dizer quais usuários foram alterados.

     

    Usuarios.txt : Arquivo que você precisa criar com a lista de todos os logins que serão aterados.

    Ex.:

    usuario1

    usuario2

    usuario3

    usuario3

     

    Code Snippet
    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
    Set OutPutFile = FileSystem.CreateTextFile("Log_Saida.txt", True)
    Set oContainer = GetObject("LDAP://DC=educacao,DC=intragov")
    EnumerateUsers oContainer
    Sub EnumerateUsers(oCont)
         Dim oUser, bUser
         For Each oUser In oCont
              bUser = False
              Select Case LCase(oUser.Class)
                   Case "user"
                   bUser = True
                                       
      StrUser_AD = oUser.sAMAccountName
      StrCN = oUser.distinguishedName
      '### Lê o arquivo com os nomes dos usuários ###
      Set objFSO = CreateObject("Scripting.FileSystemObject")
      Set objFile = objFSO.OpenTextFile("usuarios.txt", 1)
      Do Until objFile.AtEndOfStream
       StrUser = objFile.Readline
        
           If StrUser = StrUser_AD Then
         
         qstring = "LDAP://" & StrCN
         set objUser = GetObject(qstring)
         objUser.PutEx 2, "protocolSettings",ARRAY("POP3§0§1§4§ISO-8859-1§0§§§","IMAP4§0§1§4§ISO-8859-1§0§1§0§0")
         objUser.setinfo
         OutPutFile.WriteLine StrUser_AD & " - Modificado com sucesso."
            
               End if
         Loop
     
                   Case "organizationalunit", "container"
                        EnumerateUsers oUser
                   End Select
              If bUser Then
                   OutPutFile.WriteLine
              End If
         Next
    End Sub
    OutPutFile.Close
    Set FileSystem = Nothing
    Set objFSO = Nothing
    Set oContainer = Nothing
    WScript.echo "Finalizado"
    WScript.Quit(0)

     

     

    terça-feira, 25 de setembro de 2007 14:48
  •  

    OFF: Tu trampa na prodesp?
    quarta-feira, 26 de setembro de 2007 23:28