Monitorar usuários / grupos modificados do Active Directory

2

Estou tentando configurar um vbscript de monitoramento para o diretório ativo. Eu preciso exportar para um arquivo todos os usuários que foram modificados. Este script será executado a cada 10 minutos e exportará todos os usuários modificados (conta modificada, data de modificação, quem modificou). A mesma coisa para modificações de grupo (arquivo de saída diferente).

Eu não me importo de usar vbscript, csvde ou dget, dsquery ou um lote para obter essas informações. Qualquer coisa que eu possa configurar uma tarefa de agendamento está ok.

    
por name 05.12.2011 / 13:40

4 respostas

4

Você pode fazer a maior parte com o powershell e o LDIF - o snippet abaixo, por exemplo, produzirá um arquivo chamado ad.txt com uma lista de objetos do usuário alterados ou adicionados nos últimos dez minutos

$DateString = (Get-Date).AddMinutes(-10).ToString("u") -Replace "-|:|\s"
$DateString = $DateString -Replace "Z", ".0Z"
$LdapFilter = """" + "(&(|(whenChanged>=" + $DateString + ")(whenCreated>=" + $DateString + "))(objectClass=user))" + """" 
$lCmd = "ldifde -f ad.txt -r " + $LdapFilter + " -l ""dn,whenCreated,whenChanged"""
Invoke-Expression $lCmd
    
por 05.12.2011 / 14:12
3

Ok, achei isso no TechNet:

Monitore os grupos em uma unidade organizacional no AD em busca de alterações na associação do grupo

This script runs on a scheduled task to monitor and alert for changes in Active Directory. Any changes to group membership will cause an alert email to be created with the changes included.

The script saves the current members of the Groups in an XML document and then compares the live directory every X minutes. The script will not detect changes within the time period the scheduled task is run i.e. if a member was added and removed in between the task running no changes will be detected.

I run the script every 15 minutes and find it highly effective.

It detects changes to User, Computer or Groups accounts.

Obrigado Ben Wilkinson!

    
por 20.12.2011 / 12:44
1

Isso soa como uma solicitação simples, mas rapidamente se torna fervente no oceano.

Embora existam produtos comerciais que fazem isso (e as razões se tornarão aparentes), basicamente você precisa executar sua consulta (todos os usuários em que a data de modificação é de < 10 minutos atrás). Infelizmente, isso não vai te dizer o que mudou. Eu não acho que ele vai te dizer quem fez a mudança, (você pode ser capaz de colocá-lo junto com os logs do Event Viewer AD). (Eu não sou positivo, mas isso também pode pegar mudanças de senha). / p>

O que você também precisa fazer para completar essa imagem, basicamente precisa exportar todos os usuários e todas as suas propriedades, e manter registros com registro de data e hora.

Neste ponto, gostaria de salientar que você está criando vários bancos de dados separados que contêm (um subconjunto) do conteúdo do Active Directory.

Depois de alterar sua lista de usuários, você terá que fazer um diff no estado atual e anterior do objeto e apresentar os dados a quem quer que seja.

Então, em algum momento, você terá que limpar as coisas, porque manter várias cópias de seus objetos do AD por aí vai começar a ocupar espaço ... Uma vez que o relatório das mudanças está fora, você só realmente precisa manter o registro atual e imediatamente anterior.

Dependendo do número de usuários em seu ambiente, do número de pessoas que podem fazer alterações (admins, helpdesk, etc) e da frequência dessas alterações, isso pode facilmente ficar incontrolável rapidamente.

Honestamente, a menos que você esteja tentando descobrir rapidamente erros, 10 minutos provavelmente são exagerados; Eu não faria mais do que uma hora e, provavelmente, um registro diário.

Mas, aqui estão alguns lugares para você começar:

por 05.12.2011 / 13:48
0

Eu posso estar atrasado para a festa, mas escrevi um script para monitorar alterações de usuário / grupo Monitorar alterações de grupo e usuário com o shell de energia . A abordagem usual da maioria dos scripts que consegui encontrar foi monitorar as alterações que acontecem no nível do AD, comparando as alterações antes e depois. Minha abordagem faz isso indo através de eventos armazenados em controladores AD. O grande benefício disso é que ele diz exatamente quem faz a mudança e quando.

Este script do PowerShell pode gerar relatórios de acordo com os parâmetros definidos e monitorar alterações que ocorrem em usuários e grupos no Active Directory. Pode dizer-lhe:

  • Quando e quem alterou a associação do grupo de qualquer grupo dentro do seu Domínio do Active Directory
  • Quando e quem alterou os dados do usuário, incluindo Senha, UserPrincipalName, SamAccountName e assim por diante…
  • Quando e quem alterou as senhas Quando e quem bloqueou a conta e onde isso aconteceu

Sinto muito que não estou colando o código aqui, mas há muitas partes móveis e ainda está em andamento. Espero que o link seja suficiente e ajude alguém.

Exemplo de relatório que você recebe diariamente, mensalmente ou trimestralmente.

    
por 23.03.2018 / 19:52