Como encontro novas contas do Active Directory que foram criadas nos últimos 90 dias?

13

Como encontro novas contas do Active Directory que foram criadas nos últimos 90 dias?

alguém sabe quem fazer isso? Eu não consigo entender.

Desde já, obrigado.

Roubar
fonte

Respostas:

17

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.

sysadmin1138
fonte
8
O +1 pode ser usado "(&(objectClass=user)(whenCreated>=20101022083730.0Z))"para filtrar computadores e outros objetos.
Jscott #
Isso é extremamente lento para um diretório ativo com grande quantidade de contas. Parece fazer uma passagem linear pelos dados.
Nicholas DiPiazza
8

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}
user227969
fonte
4
Embora essa resposta funcione tecnicamente, ela não é muito eficiente, especialmente em grandes ambientes AD com milhares de usuários. Você está basicamente consultando o AD para todos os usuários e, em seguida, na memória da sua máquina local, filtrando os que atendem aos critérios "onde". Em vez disso, você deve realmente usar o argumento Filter (ou LDAPFilter) para filtrar os resultados antes que eles retornem à sua máquina e evitar completamente o canal Where.
Ryan Bolger
5

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}
Matthieu
fonte
3

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.

Christopher
fonte
0

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

PMGoldstein
fonte
0

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.

Nicholas DiPiazza
fonte