none
Saber quem adicionou os micros no AD, na OU computers RRS feed

  • Pergunta

  • Pessoal boa noite. Eu tinha esse script, mas perdi. Gostaria de saber quem está adicionando os micros na OU computers, baseado em um arquivo txt. por exemplo.

    1 exportar todos os micros da OU para um arquivo txt

    2 Realizar a consulta no AD baseado nesse arquivo e gerar outro com o resultado com a informações, nome do micro, versao do windows e quem adicionou...

    Obrigado


    Bruno Prata
    terça-feira, 4 de outubro de 2011 01:50

Respostas

  • Se não me engano a pessoa que coloca o computador no dominio torna-se proprietário da conta do computador (não tenho certeza), e vc corre o risco de este proprietário ser alterado.

    O script abaixo retorna o atual proprietário da conta.

     

    Set objUser = GetObject("LDAP://" & "CN=computador01,OU=Computadores,DC=seu,DC=dominio,DC=com,DC=br")
    Set objSecurityDescriptor = objUser.Get("ntSecurityDescriptor")
    strOwner = objSecurityDescriptor.Owner
    
    wscript.echo strOwner
    

    Outra forma seria ler os logs de segurança dos DCs em busca de informação, mas esta informação se perde com o tempo dependendo de como está configurada a rotatividade dos seus logs. Veja este link: http://www.windowsecurity.com/articles/event-ids-windows-server-2008-vista-revealed.html

     

     


    Fábio de Paula Junior
    quarta-feira, 5 de outubro de 2011 15:06
    Moderador
  • B.prata,

     

    Aqui um pedaço de um script que fiz uma vez, que checa alterações do AD em grupos adm... Substitua os grupos pelos que vc quer monitorar, ele salva a data da última modificação em um .txt

     

    Espero ter ajudado,

     

    Att

    Wilde

    'Option Explicit
     
     Dim group01, group02, group03
     Dim strWhenChanged, strLastChanged
     Dim strChanged01, strChanged02, strChanged03, strChangedGroup
     Dim strLastDateFile, objFSO, objDateFile
     Dim strGroup01, strGroup02, strGroup03
     Dim objGroup01, objGroup02, objGroup03
     Dim strDomainAdmsDN, strAdminsDN, objDomainAdms, objAdmins
     Dim objEmail
     Const ForReading = 1
     Const ForWriting = 2
     Const OpenAsASCII = 0
     Const CreateIfNotExist = True
     
     email = 0 'Validador para envio do email
     
     'Grupos do AD com monitoração de alteração
     
     group01 = 0 'Administrators
     group02 = 0 'Domain Admins
     group03 = 0 'Enterprise Admins
    
     
     ' Distinguished Name dos Grupos Administrativos que estão sendo monitorados
     
     strGroup01 = "cn=Administrators,cn=Builtin,dc=dominio,dc=com"
     strGroup02 = "cn=Domain Admins,cn=Users,dc=dominio,dc=com"
     strGroup03 = "cn=Enterprise Admins,cn=Users,dc=dominio,dc=com"
    
      
     ' O arquivo abaixo salva a data da última modificação dos grupos administrativos.
     ' É por este arquivo que o Script compara a data de modificação para mandar o email.
     strLastDateFile = "C:\Program Files\AD_Groups\LastDate.txt"
      
     ' Obtendo do arquivo a última data alterada
     Set objFSO = CreateObject("Scripting.FileSystemObject")
     On Error Resume Next
     Set objDateFile = objFSO.OpenTextFile(strLastDateFile, ForReading)
     If (Err.Number <> 0) Then
     
     On Error GoTo 0
     
     ' Definindo uma data padrão, caso o arquivo lastdate esteja ilegível. 
     strLastChanged = "1/1/2011 12:00:00 AM"
     Else
     On Error GoTo 0
     strLastChanged = objDateFile.ReadLine
     objDateFile.Close
     End If
      
     ' Acessando o Grupo administrativo
    
     Set objGroup01 = GetObject("LDAP://" & strGroup01)
     Set objGroup02 = GetObject("LDAP://" & strGroup02)
     Set objGroup03 = GetObject("LDAP://" & strGroup03)
    
      
     ' Comparando data de alteração do grupo com o arquivo lastdate.txt
    
     
     If (CDate(objGroup01.whenChanged) > CDate(strLastChanged)) Then 
     
     group01 = 1
     email = 1
     strChangedGroup = objGroup01.whenChanged
     strChangedGroupName = strGroup01
     
     End If
     
     If (CDate(objGroup02.whenChanged) > CDate(strLastChanged)) Then 
     
     group02 = 1
     email = 1
     strChangedGroup = objGroup02.whenChanged
     strChangedGroupName = strGroup02
     
     End If
    
     If (CDate(objGroup03.whenChanged) > CDate(strLastChanged)) Then 
     
     group03 = 1
     email = 1
     strChangedGroup = objGroup03.whenChanged
     strChangedGroupName = strGroup03
     
     End If
    
     If (CDate(objGroup04.whenChanged) > CDate(strLastChanged)) Then 
     
     ' Salvar
     Set objDateFile = objFSO.OpenTextFile(strLastDateFile, _
     ForWriting, CreateIfNotExist, OpenAsASCII)
     objDateFile.WriteLine strLastChanged
      
    
     objDateFile.Close 


     

    • Marcado como Resposta Richard Juhasz segunda-feira, 10 de outubro de 2011 17:41
    quarta-feira, 5 de outubro de 2011 19:54

Todas as Respostas

  • Se não me engano a pessoa que coloca o computador no dominio torna-se proprietário da conta do computador (não tenho certeza), e vc corre o risco de este proprietário ser alterado.

    O script abaixo retorna o atual proprietário da conta.

     

    Set objUser = GetObject("LDAP://" & "CN=computador01,OU=Computadores,DC=seu,DC=dominio,DC=com,DC=br")
    Set objSecurityDescriptor = objUser.Get("ntSecurityDescriptor")
    strOwner = objSecurityDescriptor.Owner
    
    wscript.echo strOwner
    

    Outra forma seria ler os logs de segurança dos DCs em busca de informação, mas esta informação se perde com o tempo dependendo de como está configurada a rotatividade dos seus logs. Veja este link: http://www.windowsecurity.com/articles/event-ids-windows-server-2008-vista-revealed.html

     

     


    Fábio de Paula Junior
    quarta-feira, 5 de outubro de 2011 15:06
    Moderador
  • B.prata,

     

    Aqui um pedaço de um script que fiz uma vez, que checa alterações do AD em grupos adm... Substitua os grupos pelos que vc quer monitorar, ele salva a data da última modificação em um .txt

     

    Espero ter ajudado,

     

    Att

    Wilde

    'Option Explicit
     
     Dim group01, group02, group03
     Dim strWhenChanged, strLastChanged
     Dim strChanged01, strChanged02, strChanged03, strChangedGroup
     Dim strLastDateFile, objFSO, objDateFile
     Dim strGroup01, strGroup02, strGroup03
     Dim objGroup01, objGroup02, objGroup03
     Dim strDomainAdmsDN, strAdminsDN, objDomainAdms, objAdmins
     Dim objEmail
     Const ForReading = 1
     Const ForWriting = 2
     Const OpenAsASCII = 0
     Const CreateIfNotExist = True
     
     email = 0 'Validador para envio do email
     
     'Grupos do AD com monitoração de alteração
     
     group01 = 0 'Administrators
     group02 = 0 'Domain Admins
     group03 = 0 'Enterprise Admins
    
     
     ' Distinguished Name dos Grupos Administrativos que estão sendo monitorados
     
     strGroup01 = "cn=Administrators,cn=Builtin,dc=dominio,dc=com"
     strGroup02 = "cn=Domain Admins,cn=Users,dc=dominio,dc=com"
     strGroup03 = "cn=Enterprise Admins,cn=Users,dc=dominio,dc=com"
    
      
     ' O arquivo abaixo salva a data da última modificação dos grupos administrativos.
     ' É por este arquivo que o Script compara a data de modificação para mandar o email.
     strLastDateFile = "C:\Program Files\AD_Groups\LastDate.txt"
      
     ' Obtendo do arquivo a última data alterada
     Set objFSO = CreateObject("Scripting.FileSystemObject")
     On Error Resume Next
     Set objDateFile = objFSO.OpenTextFile(strLastDateFile, ForReading)
     If (Err.Number <> 0) Then
     
     On Error GoTo 0
     
     ' Definindo uma data padrão, caso o arquivo lastdate esteja ilegível. 
     strLastChanged = "1/1/2011 12:00:00 AM"
     Else
     On Error GoTo 0
     strLastChanged = objDateFile.ReadLine
     objDateFile.Close
     End If
      
     ' Acessando o Grupo administrativo
    
     Set objGroup01 = GetObject("LDAP://" & strGroup01)
     Set objGroup02 = GetObject("LDAP://" & strGroup02)
     Set objGroup03 = GetObject("LDAP://" & strGroup03)
    
      
     ' Comparando data de alteração do grupo com o arquivo lastdate.txt
    
     
     If (CDate(objGroup01.whenChanged) > CDate(strLastChanged)) Then 
     
     group01 = 1
     email = 1
     strChangedGroup = objGroup01.whenChanged
     strChangedGroupName = strGroup01
     
     End If
     
     If (CDate(objGroup02.whenChanged) > CDate(strLastChanged)) Then 
     
     group02 = 1
     email = 1
     strChangedGroup = objGroup02.whenChanged
     strChangedGroupName = strGroup02
     
     End If
    
     If (CDate(objGroup03.whenChanged) > CDate(strLastChanged)) Then 
     
     group03 = 1
     email = 1
     strChangedGroup = objGroup03.whenChanged
     strChangedGroupName = strGroup03
     
     End If
    
     If (CDate(objGroup04.whenChanged) > CDate(strLastChanged)) Then 
     
     ' Salvar
     Set objDateFile = objFSO.OpenTextFile(strLastDateFile, _
     ForWriting, CreateIfNotExist, OpenAsASCII)
     objDateFile.WriteLine strLastChanged
      
    
     objDateFile.Close 


     

    • Marcado como Resposta Richard Juhasz segunda-feira, 10 de outubro de 2011 17:41
    quarta-feira, 5 de outubro de 2011 19:54