miércoles, 13 de junio de 2012

Como migrar carpetas públicas de Exchange 2007 a 2010


Para migrar las carpetas públicas de un servidor Exchange 2007 a otro con la versión 2010, usaremos la función de replicación de las carpetas para que sea el propio Exchange que copie los datos.


1. Creamos una carpeta pública en Exchange 2010 mediante la consola de Exchange. 

2.  Montamos la Base de Datos de carpetas públicas (en mi caso tuve que esperar un rato a que se propagara la información por los Domain Controllers)

3. Desde una consola PowerShell en el servidor de Exchange 2010 configuramos que las replicas de las carpetas públicas del antiguo servidor 2007 se hagan en el nuevo servidor mediante los siguientes comandos:
> AddReplicaToPFRecursive.ps1 -server OldServer -TopPublicFolder "\" -ServerToAdd NewServer
> AddReplicaToPFRecursive.ps1 -server OldServer -TopPublicFolder "\NON_IPM_SUBTREE" -ServerToAdd NewServer

5. Después comprobamos que se ha configurado correctamente la replica con el comando:
> Get-PublicFolder -server OldServer -recurse | ft Name, Replicas

(EN ESTE PUNTO NOS ENCONTRAMOS CON EL 1er PROBLEMA)

6. Programar la replica de las carpetas públicas:
> Get-PublicFolder -server OldServer -recurse | Set-PublicFolder -ReplicationSchedule Always

7. Comprobar que se ha aplicado correctamente revisando la configuración de 
> Get-PublicFolder -server NewServer -recurse | ft Name, Replicas, ReplicationSchedule

8. Forzamos la actualización de la estructura de carpetas públicas, primero en el servidor antiguo y al cabo de unos minutos en el nuevo. 
OLDSERVER > Update-PublicFolderHierarchy -server OldServer
NEWSERVER >Update-PublicFolderHierarchy -server NewServer

9. A partir de aquí se ira haciendo la replicación de las carpetas de un servidor a otro, si queremos acelerar el proceso para alguna carpeta en concreto lo podemos hacer desde el servidor Exchange 2010 mediante el comando. 
> update-publicfolder -Server NewServer "\<nombre de la carpeta>"

Podremos ir revisando el proceso de replicación mediante el comando Get-PublicFolderStatistics -server <nombre del servidor>, que nos mostrara las carpetas que hay en cada uno de los servidores. Al finalizar el proceso de replica la información recogida por Get-PublicFolderStatistics tiene que ser la misma en ambos servidores.




1er Problema: 
Aunque la replica esta correctamente configurada, la PublicFolder del servidor Exchange2010 no contienen información.

La transferencia de datos entre servidores Exchange se hace a través del Concentrador de Transporte (Hub Transport), esto incluye a la replica de carpetas públicas. Al revisar el visor de sucesos del Hub Transport nos encontramos con el siguiente error:

Log Name:      Application
Source:        MSExchange Store Driver
Date:          12/06/2012 16:36:45
Event ID:      1020
Task Category: MSExchangeStoreDriver
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      hubtransport.lasendadeladmin.com
Description:
The store driver couldn't deliver the public folder replication message "Status Request (publicfolder@lasendadelaadmin.com)" because the following error occurred: The Active Directory user wasn't found..
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="MSExchange Store Driver" />
    <EventID Qualifiers="49156">1020</EventID>
    <Level>2</Level>
    <Task>1</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2012-06-12T14:36:45.000000000Z" />
    <EventRecordID>61206</EventRecordID>
    <Channel>Application</Channel>
    <Computer>hubtransport.lasendadeladmin.com
    <Security />
  </System>
  <EventData>
    <Data>"Status Request (publicfolder@lasendadelaadmin.com)"</Data>
    <Data>The Active Directory user wasn't found.</Data>
  </EventData>
</Event>

Según Microsoft este error es causado si anteriormente a Exchange 2007 o 2010 han existido versiones 2000 o 2003 y, aunque se halla desinstalado correctamente estas versiones, hay información que queda residente en el Active Directory (ADSI).

Aplicamos las modificaciones en el ADSI que indica Microsoft en la siguiente KB para eliminar la información antigua del Active Directory:




Links usados:

Documentación de Scripts de Public Folders

No hay comentarios:

Publicar un comentario