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:

 

  1. 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).
  2. 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.
  3. Una vez suspendidos los correos los volcaremos en un array: $array = @(Get-Message -Queue <QueueName> -ResultSize unlimited)
  4. 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