Respostas:
Para a posteridade, o dsquery foi projetado para esse tipo de pesquisa. O AD mantém um campo 'whenCreated', o que facilita a pesquisa com sua ferramenta preferida.
dsquery * -filter "(whenCreated> = 20101022083730.0Z)"
Como um exemplo. Você pode criar programaticamente a timesting com base agora - 90 dias.
Tente o seguinte para atrair usuários criados nos últimos 30 dias.
Get-ADUser -Filter * -Properties whenCreated | Where-Object {$_.whenCreated -ge ((Get-Date).AddDays(-30)).Date}
Uma alternativa à versão do Powershell mostrada acima, que é muito mais eficiente porque não carrega todos os usuários na memória antes de filtrá-los (você deve fazer o filtro no cmdlet Get-ADUser diretamente e não usar um Objeto-Onde):
$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}
Usando o PowerShell e o Quest ActiveRoles Tools for AD (encontrado aqui - http://www.quest.com/powershell/activeroles-server.aspx ),
Get-QADUser -CreatedAfter (Get-Date).AddDays(-90)
fornecerá a saída para o console ou para onde você redirecionar todos os usuários criados nos últimos 90 dias.
Aqui está um exemplo de outro site de alguém que recupera todas as contas do AD classificadas por data de criação:
http://www.experts-exchange.com/Security/Operating_Systems_Security/Windows/Q_21117191.html
Você pode obter a data de criação de cada conta no Active Directory. Todo objeto do AD possui os atributos WhenCreated e WhenChanged. Você pode despejar esses atributos em um arquivo simples usando o utilitário LDIFDE ou despejá-los em um arquivo delimitado por vírgula usando CSVDE (os dois utilitários vêm com o Windows 2000).
Aqui está a sintaxe para despejar os dois atributos dos objetos de usuário em uma UO chamada Phoenix em um domínio chamado Company.com para o console para visualização (a entrada inteira deve ser digitada como uma única linha):
ldifde -d ou = phoenix, dc = empresa, dc = com -l whencreated, whenchanged -p onelevel -r "(ObjectCategory = user)" -f con
Se você deseja salvar o dump em um arquivo, altere a opção -f de con para um nome de arquivo.
O último registro de data e hora do logon usa este formato: AAAAMMDDHHMMSS, com a hora mostrada no Horário Universal Coordenado. Um registro de data e hora de 20040115182937.0Z corresponde a 15 de janeiro de 2004 18:29:37 UCT.
USRSTAT é lento e o relatório que você obtém deve ser mesclado com o dump LDIFDE. Então, montei um script que procura objetos de usuário em cada controlador de domínio e, em seguida, lista a hora local do logon e a hora da criação. O registro de data e hora do logon do usuário requer conversão de um número inteiro longo. Peguei emprestado o código de conversão vem de Richard L. Mueller (www.rlmueller.net/Programs). O script completo de Richard também pega o fuso horário local do Registro e converte o horário do UCT para o horário local. Nifty
Na verdade, todas essas respostas não funcionarão para ambientes enormes de produção AD.
A resposta é usar o DirSync: https://support.microsoft.com/en-us/help/891995/how-to-poll-for-object-attribute-changes-in-active-directory-on-window
Aqui está uma implementação java disso: https://docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/experimental/ActiveDirectoryDirSyncControl.html
Basicamente, você solicita continuamente alterações ao AD com base em um token incremental.
Você pode fazer isso facilmente com dsquery
"(&(objectClass=user)(whenCreated>=20101022083730.0Z))"
para filtrar computadores e outros objetos.