viernes, 2 de septiembre de 2016

PS. Windows. Eventos 4740 y 4767. Lockout and UnLockout Users

La finalidad de este post es estar informado de los bloqueos y desbloqueos de usuario que podemos tener en nuestro AD.

El script que se propone nos informará de quien esta bloqueado, desde que máquina, quien lo desbloquea, cuando....

Hay que hacer dos tareas y dos scripts, uno para el bloqueo y otro para el desbloqueo



Script:
*****************************************************************
# ---------------------------------------------------
# Original Script: C:\scripts\accountLockout.ps1
# Version: 0.1
# Author: 
# Date: 
# Description: Using PowerShell to locate las lockout account and send mail to Admins.
# Comments: Conditions: Script is launched when Event ID 4740 is registered.
# ---------------------------------------------------

$SmtpServer = "11.11.11.1"
$To = "sistemas@miermpresa.com"
$From = "ActiveDirectoryLockOut@midominio.es"
$Event = Get-EventLog -LogName Security -InstanceId 4740 -Newest 1 
#Store the newest log into email body 
$EmailBody= "** Script generado en MI_SERVIDOR cada vez que se bloquea un usuario **" + "`r`n`t" + " " + "`r`n`t" + $Event.Message + "`r`n`t" + $Event.TimeGenerated
#Email subject 
$EmailSubj= "AD - MI_SERVIDOR - User Account locked out" 
#Create SMTP client 
$SMTPClient = New-Object Net.Mail.SMTPClient($SmtpServer)   
#$SMTPClient.EnableSSL = $true  
#Get the credetials 
#$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($UserName, $PassWord);  
#Create mailmessage object  
$emailMessage = New-Object System.Net.Mail.MailMessage 
$emailMessage.From = "$From" 
Foreach($EmailTo in $To) 

 $emailMessage.To.Add($EmailTo) 

$emailMessage.Subject = $EmailSubj 
$emailMessage.Body = $EmailBody 
#Send email 
$SMTPClient.Send($emailMessage)

*****************************************************************

El resultado debería ser algo parecido a lo siguiente



El mismo script es para los dos eventos 4740 y 4767 con las modificaciones evidentes. La gracia es darlo de alta bien en el planificador de tareas.


Un caso curioso que suele pasar a la gente y nos puede ser útil este post, es para los que que nos conectados a muchos servidores de vez en cuando y cerramos la conexión sin cerrar la sesión, con lo que esa sesión puede estar abierta mucho tiempo.  El problema pasa cuando durante ese periodo de tiempo nos cambiamos la contraseña y cada poco rato vemos que se nos bloquea el usuario misteriosamente. La causa es que al no haber cerrado esa sesión nuestro usuario permanece conectado y de vez en cuando el AD va haciendo comprobaciones. El AD al darse cuenta que no tiene la nueva contraseña lo bloquea. La locura es ver en cuantos ordenadores nos hemos dejado el usuario abierto y cerrar nuestra sesión y con este email una de las cosas que nos dice es en que ordenador se nos está bloqueando nuestro usuario.

GoN. Septiembre 2016