Moving Exchange 2010 public folder to Exchange 2013 and last clean up.

Hi Experts,

I have an environment with Exchange 2010 and 2013. Exchange 2013 is now up and running, all mailboxes from 2010 have been moved to 2013. Users can send and receive email via Exchange 2013.  Now I want to move the public folder of 2010 to 2013. Could you please advise me the easiest method to achieve this step?

I assume public folder contain calendar and telephone numbers ?

I have been googling around and what I can see that it can be done via powershell scripts. Unfortunately, I am not an exchange geek and not comfortable with scripting thing. Is there alternative way to do this?

Could you please advise me if is there anything I should concern before taking Exchange 2010 down? Thank you.

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

There is a very good TechNet article related to this:

Please let me know if you get any error whilst following the article.
phucdkAuthor Commented:
So meaning I can not avoid migrating public folder by using power shell scripts?
Well, that is the easiest way unless you are willing to do the hard work of doing it manually i.e. to ensure all the folders are replicated by monitoring the events after bouncing up the diagnostic logging on public folder.

Gather PublicFolderStatistics to ensure all the public folders are in place.

How many public folders do you have?
Protecting & Securing Your Critical Data

Considering 93 percent of companies file for bankruptcy within 12 months of a disaster that blocked access to their data for 10 days or more, planning for the worst is just smart business. Learn how Acronis Backup integrates security at every stage

phucdkAuthor Commented:
In Exchange 2010, under Organisation Configuration/Mailbox

I can see 1 mailbox database and 1 public folder. So I assume there is only 1 public folder in my environment?
That is your public folder database.

You can run the following command to find out your public folder structure and pf statistics:

 Get-PublicFolder -Recurse | export-csv C:\PFMigration\Ex2010_PFStructure.csv
 Get-PublicFolderStatistics | export-csv C:\PFMigration\Ex2010_PFStatistics.csv
If you have attempted an migration previously and not sure about that then run the following command to verify that:

Get-OrganizationConfig | Format-List PublicFoldersLockedforMigration, PublicFolderMigrationComplete
phucdkAuthor Commented:

I have followed this youtube link

So far I managed to follow the guide but in my case when I export the public folders from Exchange2010, I can see there are 6 public folders. Could you please help me out here?

These are the commands I am following but in my case I have 6 public folders instead of 1 like in the video.

Open Exchange Management Shell - Exchange 2010







Open Exchange Management Shell - Exchange 2013

First, please explain me why did he rename to pf-Mailbox 2 ?

New-Mailbox -PublicFolder PF-Mailbox1 -HoldForMigration:$true -Database ex2013

(I have managed create PF-Mailbox1, and I can see it is in exchange 2013, in public folder mailbox. )

And here the contain of my csv file

"\IPM_SUBTREE\XXX\Kunder\Favrskov Kommune","Mailbox3"
"\IPM_SUBTREE\XXX\Leverandører\_Arkiv\MiltonPeople - OCC","Mailbox6"

And I have renamed as follow
"\IPM_SUBTREE\XXX\Kunder\Favrskov Kommune","pf-Mailbox3"
"\IPM_SUBTREE\XXX\Leverandører\_Arkiv\MiltonPeople - OCC","pf-Mailbox6"

After I run this command below, I got error, and so far I stucked here

New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server EXC2010) -CSVData (Get-Content C:\PF-Import\Pf-mailbox.csv -Encoding Byte)

Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatisti­cs -IncludeReport | fl

Set-OrganizationConfig --PublicFoldersLockedForMigration:$true

Restart-Service MSExchangeIS

Set-PublicFolderMigrationRequest --Identity \PublicFolderMigration -PreventCompletion:$false

Resume-PublicFolderMigrationRequest --Identity \PublicFolderMigration
phucdkAuthor Commented:
Well, I hope what I did below is right. If I understood correctly, I need to create 6 public folders. Mailbox1 to Mailbox6

After doing that, I managed to run the command successfully.
New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server EXC2010) -CSVData (Get-Content C:\PF-Import\Pf-mailbox.csv -Encoding Byte)

After that, I run this command, it is triggered and I can see the process is copying.
Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatisti­cs -IncludeReport | fl

I would like to ask you. Do I need to run this command?
Set-OrganizationConfig --PublicFoldersLockedForMigration:$true

Or just wait until the copying process is finished.And if it is finished, Is migration of public folder considered successfully?
You don't have to run that command unless you want to Rollback the migration.

Read the Rollback the migration section of this article:

Just wait until the copying process is finished and to test follow the section "how do I know it's worked" in the same article.
phucdkAuthor Commented:
I think I did not take any snapshot, what should I do to verify this ?

I have just tried to repeat this command
Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatisti­cs -IncludeReport | fl

What I can see it prints on screen the current process and I can see some of the status like this
 10/13/2013 9:20:56 PM [Exch2013] Transient error ResourceUnhealthyException has
 occurred. The system will retry (7/60).

I guess the process to move must be taken a while before it is finished because there is no way for me to see the all the EMS console, even I set the console buff to 3000 high

Can you tell me the if the error above is failed, even it said will retry but is there senario that the migration will be failed after all?
Md. MojahidExchange server admin Commented:
May be this articles will help you to moving public folder.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
phucdkAuthor Commented:

Thank you for the link to petenetlive, this is a very informative site. Apparently, I have tried to migrate my public folders before seeing this website.

Now when I run this command on Exchnage 2013,
Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics -IncludeReport | fl

 I can see the last 2 rows said
10/13/2013 9:56:32 PM [exc2013] The job encountered too many transient failures
(60) and is quitting.
10/13/2013 9:56:32 PM [exc2013] Fatal error ResourceUnhealthyException has

The PublicFolderMigrationRequest has been run from yesterday, so I assume the migration has not been successfully. But when I go into Exchange2013 control panel-public folders-public folder mailboxes I can see those pf-mailbox1, pf-mailbox2, pf-mailbox3, pf-mailbox4, pf-mailbox5, pf-mailbox6 that I have created for the migration has been filled with some data.

But when I go to "Public folders" tab. I do not see the public folder database, so I think it the migration has not been successfully.

Back the link petenetlive, I can see there is an powershell command
New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server EX2010) -CSVData (Get-Content C:\PF-Import-File\PFFolder2Mailbox.csv -Encoding Byte) -AcceptLargeDataLoss -BadItemLimit <SwitchParameter>

<SwitchParameter> = 0 to 2147483647

I would like to try to run this command with the switchParameter, but could you please advise me what should I set the correct way of the parameter, should it be like this below?
New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server EX2010) -CSVData (Get-Content C:\PF-Import-File\PFFolder2Mailbox.csv -Encoding Byte) -AcceptLargeDataLoss -BadItemLimit 2147483647

phucdkAuthor Commented:
Could you please help me verify this?
would like to try to run this command with the switchParameter, but could you please advise me what should I set the correct way of the parameter, should it be like this below?
New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server EX2010) -CSVData (Get-Content C:\PF-Import-File\PFFolder2Mailbox.csv -Encoding Byte) -AcceptLargeDataLoss -BadItemLimit 2147483647
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.