¿Cómo encuentro nuevas cuentas de Active Directory que se hayan creado en los últimos 90 días?

13

¿Cómo encuentro nuevas cuentas de Active Directory que se hayan creado en los últimos 90 días?

¿Alguien sabe a quién hacer esto? No puedo resolverlo.

Gracias por adelantado.

Robar
fuente

Respuestas:

17

Para la posteridad, dsquery está diseñado para este tipo de búsqueda. AD mantiene un campo 'whenCreated', lo que facilita la búsqueda con su herramienta de elección.

dsquery * -filter "(whenCreated> = 20101022083730.0Z)"

Como ejemplo. Puede crear programáticamente la cadena de tiempo basándose en ahora: 90 días.

sysadmin1138
fuente
8
Es posible que +1 quiera usar "(&(objectClass=user)(whenCreated>=20101022083730.0Z))"para filtrar computadoras y otros objetos.
jscott
Esto es extremadamente lento para un directorio activo con una gran cantidad de cuentas. Parece hacer un pase lineal a través de los datos.
Nicholas DiPiazza
8

Pruebe lo siguiente para atraer usuarios creados en los últimos 30 días.

Get-ADUser -Filter * -Properties whenCreated | Where-Object {$_.whenCreated -ge ((Get-Date).AddDays(-30)).Date}
usuario227969
fuente
44
Si bien esta respuesta técnicamente funciona, no es muy eficiente, especialmente en entornos de AD grandes con miles de usuarios. Básicamente, está consultando AD para todos los usuarios y luego en la memoria de su máquina local filtrando los que cumplen con los criterios de "dónde". En su lugar, debería usar el argumento Filtro (o LDAPFilter) para filtrar los resultados antes de que vuelvan a su máquina y evitar la tubería Where por completo.
Ryan Bolger
5

Una alternativa a la versión Powershell que se muestra arriba, que es mucho más eficiente porque no carga a todos los usuarios en la memoria antes de filtrarlos (debe hacer el filtro en el cmdlet Get-ADUser directamente y no usar un Where-Object):

$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}
Matthieu
fuente
3

Usando PowerShell y las herramientas Quest ActiveRoles para AD (que se encuentra aquí: http://www.quest.com/powershell/activeroles-server.aspx ),

Get-QADUser -CreatedAfter (Get-Date).AddDays(-90)

le dará salida a la consola o donde sea que redirija a todos los usuarios creados en los últimos 90 días.

Christopher
fuente
0

Aquí hay un ejemplo de otro sitio de alguien que recupera todas las cuentas de AD ordenadas por fecha de creación:

http://www.experts-exchange.com/Security/Operating_Systems_Security/Windows/Q_21117191.html

Puede obtener la fecha de creación de cada cuenta desde Active Directory. Cada objeto AD tiene un atributo WhenCreated y WhenChanged. Puede volcar estos atributos en un archivo plano usando la utilidad LDIFDE, o puede volcarlos en un archivo delimitado por comas usando CSVDE (ambas utilidades vienen con Windows 2000).

Aquí está la sintaxis para volcar los dos atributos para los objetos de usuario en una unidad organizativa llamada Phoenix en un dominio llamado Company.com a la consola para su visualización (toda la entrada debe escribirse como una sola línea):

ldifde -d ou = phoenix, dc = empresa, dc = com -l cuando se crea, cuando se cambia -p onelevel -r "(ObjectCategory = user)" -f con

Si desea guardar el volcado en un archivo, cambie el modificador -f de con a un nombre de archivo.

La última marca de tiempo de inicio de sesión utiliza este formato: AAAAMMDDHHMMSS, con la hora mostrada en Hora Universal Coordinada. Una marca de tiempo de 20040115182937.0Z corresponde al 15 de enero de 2004 18:29:37 UCT.

USRSTAT es lento y el informe que obtiene debe fusionarse con el volcado de LDIFDE. Entonces, armé un script que busca objetos de usuario en cada controlador de dominio, luego enumera la hora de inicio de sesión local y la hora de creación. La marca de tiempo de inicio de sesión del usuario requiere la conversión de un entero largo. Tomé prestado el código de conversión que proviene de Richard L. Mueller (www.rlmueller.net/Programs). El guión completo de Richard también toma la zona horaria local del Registro y convierte la hora de UCT a hora local. Hábil

PMGoldstein
fuente
0

En realidad, todas estas respuestas no van a funcionar para entornos de AD de gran producción.

La respuesta es usar DirSync: https://support.microsoft.com/en-us/help/891995/how-to-poll-for-object-attribute-changes-in-active-directory-on-window

Aquí hay una implementación de Java de esto: https://docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/experimental/ActiveDirectoryDirSyncControl.html

Básicamente, solicita continuamente a AD los cambios basados ​​en un token incremental.

Nicholas DiPiazza
fuente