En este artículo veremos cómo averiguar la fecha en que se creó un usuario en Active Directory; cómo usar PowerShell para obtener información de los registros de eventos del controlador de dominio sobre quién creó la cuenta de usuario y cuándo el usuario inició sesión por última vez en el dominio. Estas tareas a menudo ocurren cuando se auditan cuentas de usuario en Active Directory, se encuentran y se eliminan objetos de AD inactivos o se recopilan estadísticas.
Fecha de creación de cuentas de usuario de AD
Puede obtener la fecha de creación de cualquier objeto de Active Directory (usuario, computadora o grupo) a través de ADUC (dsa.msc) complemento gráfico (asegúrese de habilitar la opción Funciones avanzadas en el menú Ver).
- Encuentre el usuario requerido en el árbol ADUC manualmente o usando la función de búsqueda AD;
- Abra las propiedades del usuario y seleccione el Objeto pestaña;
- La fecha en que se creó el objeto en Active Directory se especifica en el Creado campo.
El mismo valor se puede obtener con el editor de atributos AD integrado (whenCreated atributo).
Además, puede usar el cmdlet Get-ADUser del módulo AD PowerShell para obtener la fecha de creación de una cuenta de usuario:
Get-ADUser a.brion –properties name,whencreated|select name,whencreated

Encontrar cuentas de Active Directory creadas recientemente con PowerShell
Con un simple script de PowerShell, puede enumerar las cuentas de usuario creadas recientemente en Active Directory. Para hacer esto, use el cmdlet Get-ADUser para seleccionar todos los usuarios y filtrarlos por el valor del cuando fue creado atributo de usuario. Por ejemplo, el siguiente script de PowerShell enumerará los usuarios creados en Active Directory en las últimas 24 horas:
$lastday = ((Get-Date).AddDays(-1))
$filename = Get-Date -Format yyyy.MM.dd
$exportcsv=”c:psnew_ad_users_” + $filename + “.csv”
Get-ADUser -filter {(whencreated -ge $lastday)} –properties whencreated | Select-Object Name, UserPrincipalName, SamAccountName, whencreated | Export-csv -path $exportcsv
En este ejemplo, la lista de cuentas de AD se guarda en un archivo con la fecha actual como nombre. Puede hacer que este script se ejecute diariamente a través del Programador de tareas de Windows. Como resultado, los archivos que contienen la información sobre la fecha de creación de nuevas cuentas se guardarán en el directorio que especificó. Puede agregar cualquier otro atributo de los usuarios de Active Directory a su informe (consulte el artículo sobre el uso del cmdlet Get-ADUser).

¿Cómo saber quién creó una cuenta de usuario en Active Directory?
Si hay varios administradores en su dominio de Active Directory, o si ha delegado los permisos para crear y editar cuentas de usuario a otros usuarios que no son administradores (por ejemplo, al personal de recursos humanos), es posible que le interese la información sobre el nombre del usuario. quién creó la cuenta específica en Active Directory. Esta información se puede encontrar en los registros de seguridad de los controladores de dominio de Active Directory.
Cuando crea un nuevo usuario en el dominio, un evento con EventID 4720 de la fuente de Administración de cuentas de usuario aparece en el registro de seguridad del controlador de dominio (solo en el DC, en el que se ha creado la cuenta). La Auditoría de la gestión de cuentas de usuario La directiva debe estar habilitada en el GPO del controlador de dominio predeterminado.
La descripción de este evento contiene la cadena: A user account was created. La Sujeto El campo contiene la cuenta con la que se creó la nueva cuenta de usuario de AD (resaltada en la captura de pantalla siguiente). El nuevo nombre de usuario se especifica en el Nueva cuenta campo.

Debe recopilar 4720 eventos de todos los controladores de dominio. Puede obtener una lista de controladores de dominio mediante el cmdlet Get-ADDomainController. Entonces queda comprobar el evento 4720 en cada uno de ellos y crear un informe resultante. La secuencia de comandos para obtener todos los eventos de creación de cuentas de los registros del controlador de dominio durante las últimas 24 horas puede tener este aspecto:
$Report = @()
$time = (get-date) - (new-timespan -hour 24)
$AllDCs = Get-ADDomainController -Filter *
ForEach($DC in $AllDCs)
{
Get-WinEvent -ComputerName $dc.Name -FilterHashtable @{LogName="Security";ID=4720;StartTime=$Time}| Foreach {
$event = [xml]$_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
$CreatorUser = $event.Event.EventData.Data[4]."#text"
$NewUser = $event.Event.EventData.Data[0]."#text"
$objReport = [PSCustomObject]@{
User = $NewUser
Creator = $CreatorUser
DC = $event.Event.System.computer
CreationDate = $Time
}
}
$Report += $objReport
}
}
$Report

Como resultado, tienes una $Report objeto que contiene información sobre quién creó el usuario de AD, cuándo y en qué controlador de dominio.
Puede exportar el informe a un archivo CSV:
$filename = Get-Date -Format yyyy.MM.dd
$exportcsv=”c:psad_users_creators” + $filename + “.csv”
$Report | Export-Csv $exportcsv -append -NoTypeInformation -Delimiter ","





