Bueno en los últimos meses hemos tenido un usuario que tenía ‘algo’ cacheado en el perfil de una máquina y nos estaba volviendo locos, yo realizaba busquedas en una aplicación especifica de red, otro compañero revisaba los logs de auditoria y no conseguíamos localizar en PC exacto en el que se bloqueaba el usuario, después de mucho buscar y medida ‘drasticas’ hoy compróbe gracias a tutorialesit localizar dicho PC, realicé la comprobacion forzando el bloqueo.
El comandon sería el siguiente.
$Usr = ‘nombre usuario’
$Pdc = (Get-AdDomain).PDCEmulator
$ParamsEvn = @{
‘Computername’ = $Pdc
‘LogName’ = ‘Security’
‘FilterXPath’ = "*[System[EventID=4740] and EventData[Data[@Name='TargetUserName']='$Usr']]"
}
$Evnts = Get-WinEvent @ParamsEvn
$Evnts | foreach {$_.Properties[1].value + ' ' + $_.TimeCreated}
Además cómo bonustrack, a veces algún usuario me preguntó cuanto tiempo le quedaba para cambiar la contraseña y lo hacía así;
Get-AdUser "USER" -Properties *| more
Y en la salida buscaba el PasswordLastSet, pero ahora gracias al tutorialesit, lo veo de la siguiente forma.
Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False -and userPrincipalName -like '*'} –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "Displayname","userPrincipalName",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} |
Sort-Object -Property ExpiryDate
Seguramente, vaya actualizando la entrada con más comandos de PowerShell, pq es algo a lo que me he ido negando a meterme y me gustaría mantenerme muy alejado de él xD.