Cómo exportar los correos de las colas en Exchange 2010
Hola a tod@s!
Para todos los que alguna vez habéis intentado exportar los correos de alguna cola en Exchange y no habéis podido localizar los pasos correctos aquí podéis ver cómo poder hacer dicha exportación:
- Lo primero es suspender la cola ejecutando el comando Suspend-Queue –Identity <QueueName> . Podéis ver el valor de Identity de cada cola ejecutando el comando Get-Queue. Para la cola Posion no es necesario suspenderla, ya se encuentra en ese estado).
- Posteriormente suspenderemos los mensajes también. En caso de que justo tengamos un problema de encolamiento de correos y tengamos más de 1000 correos es importante conocer que ya que el comando a utilizar sólo nos devuelve los 1000 primeros mensajes, por eso podemos enlazar varios comandos para asegurar que todos los correos quedan suspendidos ejecutando el siguiente comando: Get-Queue –Identity <QueueName> |Get-Message -ResultSize Unlimited |Suspend-Message.
- Una vez suspendidos los correos los volcaremos en un array: $array = @(Get-Message -Queue <QueueName> -ResultSize unlimited)
- Finalmente exportaremos los correos del array y generaremos los ficheros EML con este comando: $array | ForEach-Object {$i++;Export-Message $_.Identity | AssembleMessage -Path ("c:\exportfolder\"+ $i +".eml")}
Es necesario ejecutarlo de esta forma ya que Exchange 2010 utiliza Remote PowerShell y no tenemos acceso directo al sistema de ficheros. De esta forma tendremos todos los correos de la cola en la carpeta exportfolder y con un nombre igual a un número y la extensión .eml
Espero que os sea de ayuda!
Saludos,
Pablo