Hay ocasiones en donde es necesario conocer en que momento un usuario fué agregado a un grupo, en estos casos, esta información puede extraerse de Active Directory gracias a ciertos atributos existentes en los metadatos de replicación.
Por último vale mencionar que ademas de funcionar con cuentas de usuario, puede utilizarse con cuentas de equipos, sustituyendo Get-ADUser por Get-ADComputer
PS C:\Users\Administrador> PS C:\Users\Administrador> $username = "juan" PS C:\Users\Administrador> $userobj = Get-ADUser $username PS C:\Users\Administrador> PS C:\Users\Administrador> Get-ADUser $userobj.DistinguishedName -Properties memberOf | >> Select-Object -ExpandProperty memberOf | >> ForEach-Object { >> Get-ADReplicationAttributeMetadata $_ -Server localhost -ShowAllLinkedValues | >> Where-Object {$_.AttributeName -eq 'member' -and >> $_.AttributeValue -eq $userobj.DistinguishedName} | >> Select-Object FirstOriginatingCreateTime, Object, AttributeValue >> } | Sort-Object FirstOriginatingCreateTime -Descending FirstOriginatingCreateTime Object AttributeValue -------------------------- ------ -------------- 6/7/2019 17:48:59 CN=Administradores clave,CN=Users,DC=seclab,DC=local CN=juan,CN=Users,DC=seclab,DC=local PS C:\Users\Administrador>Como se ve en la salida del script anterior, con esto puede determinarse en que fecha un usuario fué agregado a uno o mas grupos. Podría ser que necesitamos esa información con fines forenses, o bien para determinar que membresias de grupo podrían ser reducidas en caso de que algún usuario experimente problemas de "token bloat". El script es una colaboración de Ashley McGlone, ex Premier Field Engineer de Microsoft, aquí puede verse el articulo original.
Por último vale mencionar que ademas de funcionar con cuentas de usuario, puede utilizarse con cuentas de equipos, sustituyendo Get-ADUser por Get-ADComputer
