Buscar y eliminar mensajes en Exchange Online
Hace poco recibí una consulta que se salia un poco de lo habitual y era el como eliminar mensajes comprendidos entre dos fechas dentro de un buzón de Exchange Online independientemente de cual fuese la carpeta sin necesidad de asignar ninguna politica de retención.
Por supuesto esto no puede hacerse desde ninguna consola de administrador pero si desde PowerShell pero para ello debemos tener en cuenta los siguientes requisitos:
- Tener nuestro entorno correctamente configurado para conectarnos a nuestra suscripción de Office365 mediante PowerShell.
- Hacer que el usuario que usaremos para la operación (el nuestro), pertenezca al Rol de seguridad «Discovery Management».
- Crear un Rol de seguridad en Exchange Online (si no lo tenemos ya) que incluya el rol «Mailbox Import Export»
- Hacer que nuestro usuario pertenezca a este ultimo rol creado.
Una vez hecho esto procederemos a conectarnos a nuestra suscripción mediante los siguientes comandos:
$LIveCred = Get-Credential $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LIveCred -Authentication Basic -AllowRedirection Import-PSSession $Session
Ya dentro de nuestra suscripción ejecutamos el siguiente comando:
Search-Mailbox usuario@dominio.com -SearchQuery «Received: $(‘mm/dd/yyyy’) and Received:< $(‘mm/dd/yyyy’)» -DeleteContent
Esto hará que el contenido comprendido entre esas dos fechas se elimine a la papelera de reciclaje.
Espero que les sirva de utilidad.