InformáticaMicrosoft

PowerShell eliminar usuarios anteriores a una fecha

Estamos haciendo limpieza en el DC y se bloquearon usuarios en una OU concreta

ahora quieren eliminar los usuarios que se bloquearon hace 3 semanas de esa OU

hacemos la siguiente consulta y pasamos el resultado por un foreach

(Get-ADUser -Filter * -Properties * -SearchBase "OU=Deshabilitats,OU=usuarios,DC=XXXX,DC=int" | Where-Object{$_.whenchanged -lt ((Get-Date).Adddays(-21))} | select name, whenChanged, samaccountname)

Campos clave:

-SearchBase «OU=Deshabilitats,OU=usuarios,DC=XXXX,DC=int» #flitramos la consulta en la OU donde tenemos almacenados los usuarios («distinguishedName») así no tenemos riesgo de eliminar cuentas de servicio etc..

Where-Object{$_.whenchanged -lt ((Get-Date).Adddays(-21))} #Con esto indicamos -LT (Fechas anteriores a), (Get-Date).Adddays(-21) 21 dias anteriores al dia actual (3 semanas)

remove-aduser $usu.samaccountname -confirm:$false # elimina los usuarios de la variable por el samaccountname

Código completo:

$usuarios=(Get-ADUser -Filter * -Properties * -SearchBase "OU=Deshabilitats,OU=usuarios,DC=XXXX,DC=int" | Where-Object{$_.whenchanged -lt ((Get-Date).Adddays(-21))} | select name, whenChanged, samaccountname)

foreach($usu in $usuarios){

remove-aduser $usu.samaccountname -confirm:$false

}

saludos

Deja una respuesta