Solved

Public folders not replicated to Exchange 2010 after migration from Exchange 2007

Posted on 2014-01-21
18
627 Views
Last Modified: 2014-02-21
I thought the migration from 2007 to 2010 was complete, but received errors when trying to uninstall the 2007 mailbox role regarding the public folders.

I realised then that the public folder data hadn't replicated to the 2010 server even though replication was setup a number of days ago.  The amount of data to replicate is very small, it's just a shared calendar.

Only event of note in the logs is "Cannot find route to Mailbox Server CN=Exch2007"

At present, the 2007 server only has the mailbox role on it - presumably it will need the hub transport role on there for the public folders to replicate?

But even if this is the case, the hub transport role was on there before for a week or so after the public folder replication was setup and no data was transferred.

So I guess 2 questions:

1. Do I need to put the hub transport role back on the 2007 server in order to resolve the public folder issue?
2. What further steps should I take to troubleshoot the replication?

BTW - I have looked in adsiedit for the CN=Servers container as mentioned in a number of similar posts - however, this container isn't empty.

I have also run the update-publicfolderhierarchy cmdlet.

2007 is running on SBS 2008
2010 is running on Win2012
0
Comment
Question by:devon-lad
  • 10
  • 8
18 Comments
 
LVL 63

Expert Comment

by:Simon Butler (Sembee)
ID: 39799273
I would put the hub transport role back, then go through the complete process to remove public folders before touching Exchange.

Public folder replication is very conservative and you shouldn't presume anything. The fact that there was a week involved means nothing - I have seen nothing happen for a week lots of times.

Replicate everything off so that get-publicfolderstatistics comes back empty. Then drop the database within EMC. Only then uninstall Exchange.

Highly unusual to try and remove parts of Exchange during a migration.

Simon.
0
 
LVL 1

Author Comment

by:devon-lad
ID: 39799296
As mentioned, I assumed I was at the end of the migration when I removed these roles.  I chose to go ahead and remove the hub transport and cas roles as the 2007 server has a number of hardware issues and wanted to make sure the 2010 system could exist by itself in case the old server completely died while I was troubleshooting the public folder issues.

When you say "replicate everything off" - how do I force this to happen - or is it just a case of waiting for as long as it takes?  If the latter then will probably just try and extract the data and recreate it.
0
 
LVL 63

Expert Comment

by:Simon Butler (Sembee)
ID: 39803175
Hate to say it, but the worst thing you can do with Exchange is assume anything.
You have to check throughout that everything is working as expected, because people get lazy and expect Exchange to do something, but rarely does it.
While I appreciate that the old server was preparing to die, due to the nature of Exchange, your test of removing the roles wouldn't have been valid anyway - being blunt, it was a total waste of time.

There are no shortcuts in an Exchange migration, if you don't do it the correct way then other things fail to work correctly. Exchange is a complex product.

To replicate the data off you will need the hub transport role. You then use the Move All replicas script to replicate the data off. The check I provided above will tell you when the process is complete.

Simon.
0
 
LVL 1

Author Comment

by:devon-lad
ID: 39803415
Ok - appreciate your comments.  This is why after 10 years of battling with Exchange I've made the decision I'm getting to old for this.  Hosted Exchange from now on - let someone else deal with it.

Will reinstall hub transport and see how we get on.
0
 
LVL 1

Author Comment

by:devon-lad
ID: 39852843
Finally got round to looking at this again.

Have reinstalled the hub transport role then run moveallreplicas script as follows:

moveallreplicas.ps1 -server oldexchangeserver -newserver newexchangeserver

Returns multiple instances of the following error

Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursi
ve.ps1:147 char:24
+         $_ | set-publicfolder  <<<< -server $_.OriginatingServer;

I'm running this on the Exchange 2007 box - I presume this is correct?  Or should it be run on the 2010 server....or doesn't it matter?
0
 
LVL 63

Expert Comment

by:Simon Butler (Sembee)
ID: 39853983
It shouldn't matter where you run it from, because they are making a chance to the list.
Try running the add server script instead, adding the new server to the list. Wait a few hours then try the move all replicas again.

Simon.
0
 
LVL 1

Author Comment

by:devon-lad
ID: 39855529
Sorry, can you confirm which specific script you mean?

Thanks
0
 
LVL 63

Expert Comment

by:Simon Butler (Sembee)
ID: 39862891
This is the script I mean: "AddReplicaToPFRecursive.ps1"

That will add the server to the list of all public folders.

Simon.
0
 
LVL 1

Author Comment

by:devon-lad
ID: 39864998
Ok have run the following command

AddReplicaToPFRecursive.ps1 -ServerToAdd "exchange2010 machine" -TopPublicFolder "\"

And get...

WARNING: The command completed successfully but no settings of '\' have been modified.

Will try moving the replicas in a couple of hours - but is that warning something to be concerned about?
0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 
LVL 63

Expert Comment

by:Simon Butler (Sembee)
ID: 39865175
That was a mistake on my part.
I should have said, run the script adding in the OLD server to the list. Then wait a few hours for the change to fully replicate before trying to move them again.

Simon.
0
 
LVL 1

Author Comment

by:devon-lad
ID: 39865224
Ok thanks.  If I try to add the old server to the list I get the following

Set-PublicFolder : Modification of the root folder '\' is not allowed.

Command window is being run as admin.
0
 
LVL 1

Author Comment

by:devon-lad
ID: 39868014
Ok, realise the above warning is normal.

However, after 24 hours still getting the same errors when running the MoveAllReplicas script.
0
 
LVL 63

Expert Comment

by:Simon Butler (Sembee)
ID: 39869921
That simply means that the replication setting is still set on the public folder, so the script isn't doing anything.

If you can take the bandwidth hit, then you can use this command to force the replication:

Get-publicfolder –identity "\" –recurse | update-publicfolder –server servername

where servername is the name of the OLD server.

Simon.
0
 
LVL 1

Author Comment

by:devon-lad
ID: 39869967
Ok have run that, now get...

Update-PublicFolder : The server 'OLD_SERVER' specified does not hold a replica of public folder '\'. Synchronizing public folder content can only occur from a server which holds a replica of that public folder.
At line:1 char:62
+ get-publicfolder -identity "\" -recurse | update-publicfolder  <<<< -server old_server
Update-PublicFolder : The server 'OLD_SERVER' specified does not hold a replica of public folder '\Shared Calendar'. Synchronizing public folder content can only occur from a server which holds a replica of that public folder.
At line:1 char:62
+ get-publicfolder -identity "\" -recurse | update-publicfolder  <<<< -server old_server


The Shared Calendar folder is the only thing in the public folders.
0
 
LVL 63

Expert Comment

by:Simon Butler (Sembee)
ID: 39873020
If you run get-publicfolderstatistics on the old server, what does it show?

Simon.
0
 
LVL 1

Author Comment

by:devon-lad
ID: 39873122
See attached screenshot
exchange-screenshot.png
0
 
LVL 63

Accepted Solution

by:
Simon Butler (Sembee) earned 500 total points
ID: 39875281
That looks like you may have a corrupt public folder database. You have some duplications in there and all sorts of nasties. If you have all the data off and are getting ready to remove the server, then I would delete the database using adsiedit.msc, then uninstall the server.

I don't normally suggest hacking the database out by adsiedit, but this is one of those times I think it is appropriate to do so.

http://blog.dargel.at/2012/01/19/remove-public-folder-using-adsiedit/

Simon.
0
 
LVL 1

Author Comment

by:devon-lad
ID: 39877177
That's got it.  Have finally managed to removed Exchange 2007.

Many thanks for your help.
0

Featured Post

The curse of the end user strikes again      

You’ve updated all your end user’s email signatures. Hooray! But guess what? They’re playing around with the HTML, adding stupid taglines and ruining the imagery. Find out how you can save your signatures from end users today.

Join & Write a Comment

Follow this checklist to learn more about the 15 things you should never include in an email signature from personal quotes, animated gifs and out-of-date marketing content.
This article explains in simple steps how to renew expiring Exchange Server Internal Transport Certificate.
In this video we show how to create a User Mailbox in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Recipients >> Mailb…
In this video we show how to create a Distribution Group in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Recipients >>…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now