script limpieza de directorio activo

Hay muchas aplicaciones que limpian el directorio activo que da gusto, como puede ser Solarwind, pero es de pago y no siempre podemos permitirlo. He encontrado, en la página de system-admin.es un par de script que yo he fusionado en uno, que nos recoge los usuarios y maquinas que hace 180 días que no tiene actividad.

Como bien explica en su post, no es recomendable hacer un borrado masivo, si no que moverlos a una OU correspondiente. Yo voy un poco más allá, también los deshabilito. Estos pasos los ha añadido al script por si alguien quiere hacerlo. Y, por último, también he añadido totalmente aparte si alguien quiere borrarlos

# Script para listar maquinas y usuarios inactivos 
#Modificar $dominio con el nombre de tu dominio
#$diasinactivo con el numero de dias para considerar la cuenta inactiva
import-module activedirectory  
$dominio = "dominio.local"  
$diasinactivo = 180  
$tiempo = (Get-Date).Adddays(-($diasinactivo)) 

####MAQUINAS####  
# recoge el lastlongon y lo contrasta con la fecha
$maquinas = Get-ADComputer -Filter {LastLogonTimeStamp -lt $tiempo} -Properties LastLogonTimeStamp | select-object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}}
  
# pone los nombres de las maquinas en un csv.

$maquinas | export-csv C:\TEMP\Maquinas_inactivas.csv -notypeinformation

####USUARIOS####
# lista los usuarios despues de comparar el lastlogon timestamp
$usuarios = Get-ADUser -Filter {LastLogonTimeStamp -lt $tiempo -and enabled -eq $true} -Properties LastLogonTimeStamp | select-object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp).ToString('yyyy-MM-dd_hh:mm:ss')}}
  
# los mete en una lista csv CSV  
$usuarios | export-csv C:\TEMP\Usuarios_Inactivos.csv -notypeinformation

####PASOS ADICIONALES DESCOMENTAR SI SE NECESITA####

####MAQUINAS####
#deshabilitamos las maquinas
#$maquinas | Set-ADComputer -Enabled $false

#las movemos a una ou llamada maquinas deshabilitadas
#$maquinas | Move-ADObject -TargetPath "OU=maquinas deshabilitadas,DC=my,DC=domain,DC=local" 

####USUARIOS####
#deshabilitamos las maquinas
#$usuarios | Disable-ADAccount

#las movemos a una ou llamada maquinas deshabilitadas
#$usuarios | Move-ADObject -TargetPath "OU=maquinas deshabilitadas,DC=my,DC=domain,DC=local" 



##################NO RECOMENDADO#################

####LINEA PARA BORRAR LOS OBJETOS MASIVAMENTE####

##################NO RECOMENDADO#################

#$maquinas | Remove-ADComputer
#$usuarios | Remove-aduser 

 

***Mucho ojo*** porque podéis tener el usuario administrador en el listado y podéis liarla al eliminarlo o moverlo de OU

Espero que os sirva

Deja un comentario