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