none
Monitorar Grupos no Active Directory RRS feed

  • Pergunta

  • Pessoal é o seguinte:

    Cada estação que é reinstalada ou estação nova que entra no domínio, o objeto computador para o grupo  Unassigned Computers.
    Preciso de uma solução que mova estes objetos para a sua OU correta, caso esta solução não exista, gostaria de um script que me informasse sempre que uma estação saiu de uma OU e sempre que uma estação entrar no grupo Unassigned.

    Penso em deixar este script rodando em algum servidor de modo que me mande um e-mail sempre que uma dessas alterações ocorrer.

    Desde já agradeço a atenção.

    segunda-feira, 17 de agosto de 2009 17:52

Respostas

  • Olá,

    Você já utiliza o Redircmp ???? Para alterar o Container default para um especifico???  Segue link sobre:

    http://support.microsoft.com/kb/324949

    Abaixo, segue um script que verifica se o computador faz parte de um grupo.. se fizer ele move para a OU que precisa:



    Option Explicit
    On error resume next

    Dim objDSE, strDefaultDN, strDN, objContainer, objChild,Userobj,List,GroupObj,FileSystem,OutPutFile
    Dim strGrupo,ComputerObj,objNewOU,objMoveComputer


    Set objDSE = GetObject("LDAP://rootDSE")
    strDefaultDN = "CN=Users," & objDSE.Get("defaultNamingContext")

    'alterar essas variaveis abaixo"
    strGrupo = "Unassigned"
    Set objNewOU = GetObject("LDAP://OU=COMPUTERS,OU=EMPRESA,DC=CONTOSO,DC=LOCAL")
    strDN = "ou=computers,dc=contoso,dc=local"


    If strDN = "" Then WScript.Quit(1)        '

    Set objContainer = GetObject("LDAP://" & strDN)
     

    objContainer.Filter = Array("computer")
     

    For Each objChild In objContainer

        set ComputerObj = GetObject("LDAP://" & objChild.Name & "," & strDN)

        if err.number<>0 then

             if ChkEngine = "cscript.exe" then

              wscript.echo "Erro conectando ao " & strDN & " ou computador não encontrado."

              wscript.quit

           else

              wscript.quit

           end if

        end if

        For Each GroupObj In ComputerObj.Groups
          if instr(GroupObj.Name,strGrupo) > 0 Then
          Set objMoveComputer = objNewOU.MoveHere ("LDAP://" & ComputerObj.name & "," & strDN , ComputerObj.name)
          End if

        Next
    Next


    wscript.quit



    Function ChkEngine()
    ON ERROR RESUME NEXT

    strEngine=Wscript.FullName

    if Err.Number <>0 then
    wscript.echo "Error!"
    wscript.echo "Erro (" & Err.Number & ") Descrição: " & Err.Description
    wscript.quit
    end if

    PosX=InStrRev(strEngine,"\",-1,vbTextCompare)
    ChkEngine=Mid(strEngine,PosX+1)

    End Function


    Verifique se é isso que precisa e nos retorne.



    Até mais,

    Jesiel

    Obs.: Se útil, classifique





    quinta-feira, 27 de agosto de 2009 13:07

Todas as Respostas

  • Ninguém tem uma dica ae?
    quarta-feira, 26 de agosto de 2009 23:06
  • Olá,

    Você já utiliza o Redircmp ???? Para alterar o Container default para um especifico???  Segue link sobre:

    http://support.microsoft.com/kb/324949

    Abaixo, segue um script que verifica se o computador faz parte de um grupo.. se fizer ele move para a OU que precisa:



    Option Explicit
    On error resume next

    Dim objDSE, strDefaultDN, strDN, objContainer, objChild,Userobj,List,GroupObj,FileSystem,OutPutFile
    Dim strGrupo,ComputerObj,objNewOU,objMoveComputer


    Set objDSE = GetObject("LDAP://rootDSE")
    strDefaultDN = "CN=Users," & objDSE.Get("defaultNamingContext")

    'alterar essas variaveis abaixo"
    strGrupo = "Unassigned"
    Set objNewOU = GetObject("LDAP://OU=COMPUTERS,OU=EMPRESA,DC=CONTOSO,DC=LOCAL")
    strDN = "ou=computers,dc=contoso,dc=local"


    If strDN = "" Then WScript.Quit(1)        '

    Set objContainer = GetObject("LDAP://" & strDN)
     

    objContainer.Filter = Array("computer")
     

    For Each objChild In objContainer

        set ComputerObj = GetObject("LDAP://" & objChild.Name & "," & strDN)

        if err.number<>0 then

             if ChkEngine = "cscript.exe" then

              wscript.echo "Erro conectando ao " & strDN & " ou computador não encontrado."

              wscript.quit

           else

              wscript.quit

           end if

        end if

        For Each GroupObj In ComputerObj.Groups
          if instr(GroupObj.Name,strGrupo) > 0 Then
          Set objMoveComputer = objNewOU.MoveHere ("LDAP://" & ComputerObj.name & "," & strDN , ComputerObj.name)
          End if

        Next
    Next


    wscript.quit



    Function ChkEngine()
    ON ERROR RESUME NEXT

    strEngine=Wscript.FullName

    if Err.Number <>0 then
    wscript.echo "Error!"
    wscript.echo "Erro (" & Err.Number & ") Descrição: " & Err.Description
    wscript.quit
    end if

    PosX=InStrRev(strEngine,"\",-1,vbTextCompare)
    ChkEngine=Mid(strEngine,PosX+1)

    End Function


    Verifique se é isso que precisa e nos retorne.



    Até mais,

    Jesiel

    Obs.: Se útil, classifique





    quinta-feira, 27 de agosto de 2009 13:07