I’ve noticed that many of my clients and colleagues have been calling me about a specific step during the migration of Exchange 2010 Public Folders to Exchange 2016. Given the frequency of the calls I’ve gotten, I thought it would be a good idea to write this short blog post about it.
Problem
You’re in the process of migration from Exchange Server 2010 to 2016 and have gotten to the public folder portion of the migration. The following TechNet article is what you are using for the migration:
Migrate public folders from Exchange 2010 to Exchange 2016
https://technet.microsoft.com/en-us/library/mt463355(v=exchg.150).aspx
You’ve been able to execute all of the steps but notice that as you approach Part 4 and attempt to execute Create-PublicFolderMailboxesForMigration.ps1 to create target public folder mailboxes on Exchange 2016:
… the cmdlet fails with the following error:
[PS] C:PFMigration>.Create-PublicFolderMailboxesForMigration.ps1 -FolderMappingCsv PFMailboxes.csv -EstimatedNumberOfC
oncurrentUsers:100
C:PFMigrationCreate-PublicFolderMailboxesForMigration.ps1 : Existing Public Folder deployment is not locked for migra
tion. The script cannot continue unless all Public Folder mailboxes are deleted first. Please, make sure the existing m
ailboxes have no data before deleting them.
At line:1 char:47
+ .Create-PublicFolderMailboxesForMigration.ps1 <<<< -FolderMappingCsv PFMailboxes.csv -EstimatedNumberOfConcurrentUs
ers:100
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Create-PublicFolderMailboxesForMigrati
on.ps1
[PS] C:PFMigration>Get-PublicFolder
Solution
One of the most common reasons I find administrators encounter this error during the public folder migration process is because they are executing the Create-PublicFolderMailboxesForMigration.ps1 cmdlet on the Exchange 2010 server. All the steps prior to Part 4 is usually executed on the Exchange 2010 server so some administrators forget that they need to execute this cmdlet to create new Exchange 2016 public folders on the new Exchange 2016 Management Shell instead:
Executing the Create-PublicFolderMailboxesForMigration.ps1 cmdlet should complete successfully and output the following:
PS] C:PFMigration>.Create-PublicFolderMailboxesForMigration.ps1 -FolderMappingCsv PFMailboxes.csv -EstimatedNumberOfC
oncurrentUsers:100
Do you want to run software from this untrusted publisher?
File C:PFMigrationCreate-PublicFolderMailboxesForMigration.ps1 is published by CN=Microsoft Corporation, OU=MOPR,
O=Microsoft Corporation, L=Redmond, S=Washington, C=US and is not trusted on your system. Only run scripts from trusted
publishers.
[V] Never run [D] Do not run [R] Run once [A] Always run [?] Help (default is “D”): A
Creating a new session for implicit remoting of “Get-OrganizationConfig” command…
Public Folder mailbox updates.
Creating 5 Public Folder mailbox(es) and updating 0. Total mailboxes to serve hierarchy will be 1. Would you like to
proceed?
[Y] Yes [N] No [?] Help (default is “Y”): Y
Total mailboxes created: 5. Total mailboxes updated: 0. Total serving hierarchy: 1.
Here is a list of Public Folder mailboxes created:
Name IsServingHierarchy IsMigrationTarget
—- —————— —————–
Mailbox1 False True
Mailbox2 True True
Mailbox3 False True
Mailbox4 False True
Mailbox5 False True
[PS] C:PFMigration>
Quite obvious when you realize it but we all tend to get a bit lost when we’re too immersed into a deployment at times.
3 Responses
Thank you Terence.
Duh… thank you! Appreciate your clear and concise help with this one!
Nice tip. Thanks!