Active Directory: Auditar eventos bloqueo de usuarios con Powershell (Parte II)

Si has aplicado el script de Auditar eventos de bloqueo de usuarios (Parte I), puedes atacar los logs resultantes con este segundo script que te indica rapidamente cuantos bloqueos han sufrido los usuarios y desde que maquinas.


$raya= "-" * 50
do{
$array=@()
$count=0
$rutalogs="\\SERVERDC03\c$\trabajosprogramados"
$logfile=gci("$rutalogs\*.txt")|sort lastwritetime -desc
$logfile|%{write-host "$count $($_.name)" -fore cyan;$count++}
write-host $raya -fore yellow
$lognum=read-host "Num log a revisar? (vacio=todos)"
if ($lognum -ne "exit")
{
if($lognum -eq ""){$logfileselected=$logfile}
else{$logfileselected=$logfile[$lognum]}
 $contenido=get-content($logfileselected)
 $contenido|%{
 $campo=$_.split(" ")
 $array+= New-Object -TypeName PSObject -Property @{ 
        fecha= $campo[0] 
        usuario= $campo[1]
  maquina=$campo[2]
  }#fin objeto
 }#fin foreach
    do{
 write-host $raya -fore yellow
    $usuario=read-host "Usuario a revisar? (vacio=todos)"
 $usrexist=$array|?{$_.usuario -eq $usuario}
 if ($usrexist -eq $null){$usrlist=$array|group usuario|?{$_.name -match $usuario}|sort name|ft count,name -auto}
 else{$usrlist=$array|group usuario|?{$_.name -eq $usuario}|sort name|ft count,name -auto}
    $usrlist
        if ($usrlist.count -eq 5)
        {
        #resultado 1 usuario
        $array|?{$_.usuario -match $usuario}|sort fecha -desc|ft fecha, maquina -auto
        }
    }while ($usuario -ne "exit")
 }#fin if lognum exit   
 }while($lognum -ne "exit") 
    

Comentarios