Public Folders Migration from Exchange 2007/2010 to Exchange 2013
Public Folders has been discussed before and after every new Exchange server release but there are many Microsoft customers who are using it that Microsoft is not preferring to remove it completely.
The Serial migration method used in this article is no longer supported by Microsoft. Please refer to our new article on performing a Batch Migration of Public folders from legacy servers to Exchange 2016/ Exchange 2013.
Exchange 2016 / Exchange 2013 Public Folder Batch Migration Method: https://msexchangeguru.com/2016/06/15/publicfolder-batch-migration/
Even today with the great functionality of sharepoint, Microsoft decided to keep PF in the Exchange so that it can give an option to use PF or Sharepoint.
I would highly recommend our high Public Folders users to start using Sharepoint but if you have less Public Folders Data then we can still migrate Public Folder Database to Public Folder Mailboxes.
By changing the Design from Database to Mailbox, Public Folders has become highly available with DAG. So if your mailbox database is up and running in DAG then Public Folders are also available.
Public Folders Limits can be reviewed here.
Assumptions:
-Exchange 2010 is Exchange 2010 SP3 or later
-Exchange 2007 is Exchange 2007 SP3 RU10 or later
-Login id has Organization Management and Recipient Management Permissions
-All the mailboxes have been moved to Exchange 2013
-Ensure we announce downtime or do this over the weekend
-Perform a backup of your public folder databases
–Removed space and from the alias of 2007/2010 Public Folders.
Public Folder Migration Steps:
1. Snapshot of the current Public Folders: In the following steps we will take the snapshot of the current Public Folders which will be compare post migration.
-Run the following command to take a snapshot of the original source folder structure.
Get-PublicFolder -Recurse | Export-CSV C:PFMigrationEx2010_PFStructure.csv
-Run the following command to take a snapshot of the public folder statistics such as item count, size, and owner.
Get-PublicFolder -Recurse | Get-PublicFolderStatistics | Export-CSV C:PFMigrationEx2010_PFStatistics.csv
-Run the following command to take a snapshot of the permissions.
Get-PublicFolder -GetChildren | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CSV C:PFMigrationEx2010_PFPerms.csv
Save the information from the above commands for comparison at the end of the migration.
2. Preparation on Legacy Exchange server (2010/2007): We need to do the following check before preparing public folders migration.
-Validate Exchange 2010/2007 Public Folder database is mounted
-Validate no record of previous successful migration is present
-Use the below cmdlet to check if there was a previous successful migration completed
Get-OrganizationConfig | fl PublicFoldersLockedforMigration, PublicFolderMigrationComplete
-If you find any True, then use the below cmdlet, this will take some time to become effective:
Set-OrganizationConfig -PublicFoldersLockedforMigration:$false -PublicFolderMigrationComplete:$false
-Validate no migration currently in progress by running following cmdlet
Get-PublicFolderMigrationRequest
Get-publicfolderdatabase
And
Get-publicfolder
Or
Get-Mailbox -PublicFolder
You should see the below output:
-Run the below cmdlets to remove any previous Public Folders:
Get-PublicFolderMigrationRequest | Remove-PublicFolderMigrationRequest -Confirm:$false
Get-MailPublicFolder | where $_.EntryId -ne $null | Disable-MailPublicFolder -Confirm:$false
Get-PublicFolder -GetChildren | Remove-PublicFolder -Recurse -Confirm:$false
Get-Mailbox -PublicFolder |Remove-Mailbox -PublicFolder -Confirm:$false
4. Export public folder hierarchy from source into CSV file: On Exchange 2010/2007 run the following script which will generate a csv file:
Important: In Exchange 2007 you might need to remove “ResultSize:unlimited” on line number 91 of the script “Export-PublicFolderstatiscis.ps1”. Don’t change anything unless you face any issue.
.Export-PublicFolderStatistics.ps1 servernamepathfilename.csv
Example file output
.PublicFolderToMailboxMapGenerator.ps1 MailboxSize ImportFilePAth ExportFilePath
ImportFilepath is the file name which was created in previous step.
Output file screen
5. Create public folder mailboxes in Exchange 2013: We will run the below cmdlet to create public folders mailboxes in hold for migration mode.
Important: The name of the public folder mailboxes that you create must match the name of the TargetMailbox in the mapping file. You can edit the TargetMailbox names in the mapping file to match your organization’s naming conventions.
New-Mailbox -PublicFolder MailboxName -HoldForMigration:$true –Database “2013DB”
-Continue creating the new mailboxes as per the output file. In my case it was only one.
6. Migration Request creation: In this step we will rung the migration request cmdlet
Before creating migration request it will be good to run the below command to avoid “The Microsoft Exchange Administrator has made a change that requires you quit and restart Outlook” prompt. This command will stop this mailbox serving the hierarchy.
“Set-Mailbox <PublicFolderMailboxName> –PublicFolder –IsExcludedFromServingHierarchy:$True”
Now run the migration request
“New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server <Source server name>) -CSVData (Get-Content <Folder to mailbox map path> -Encoding Byte)”
Example: New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server Exch2010) -CSVData (Get-Content C:tempMapgen.csv -Encoding Byte)
-Move will begin as an online move and reach auto suspended state
-Run the following cmdlet to verify the migration status.
Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics -IncludeReport | fl
-Below is sample screen – Normally you get 2-3GB per hour migration output.
When the status reaches Autosuspended, we can move to next step
7. Lock source (Exchange 2010/2007) for final migration:
-Once Auto Suspend state is reached, set the bit on the org object that you are making the switch
-Downtime will be required depends on how much new content was generated since the migration reached the AutoSuspended state.
-The cmdlet will log off the users from the public folders and lock the folders while the migration completes its final synchronization. Users won’t be able to access public folders during this process.
-It is recommended to run the following cmdlet on Exchange 2010/2007 but this does not matter in the same org as this is org level configuration.
Set-OrganizationConfig –PublicFoldersLockedForMigration:$true
-If multiple source PF databases, wait Replication Interval+1 hour after locking source so they can replicate. Alternatively you can restart the Microsoft Exchange Information Store service to bypass the waiting time.
8. Complete the suspended migration by running below 2 cmdlet:
-Set flag on migration request that finalization has been triggered
Set-PublicFolderMigrationRequest –Identity PublicFolderMigration -PreventCompletion:$false
-Resume migration request
Resume-PublicFolderMigrationRequest –Identity PublicFolderMigration
-Migration will reach completed state
Once migration completes run the below command to allow this mailbox to serve the Hierarchy requests
“Set-Mailbox <PublicFolderMailboxName> –PublicFolder –IsExcludedFromServingHierarchy:$False”
9. Validation
-Check that source public folders have been moved to Exchange 2013
-Check that hierarchy matches the source setup
10. Removing PF Database in Exchange 2010/2007
Once you are satisfied, you can go ahead and delete the Public Folder Database from Exchange 2010/2007 then remove the database and log files from folder directory
Public Folder Migration ends here.
Rollback Steps:
If you run into issues with the migration and need to reactivate your Exchange 2010 public folders, perform the following steps:
Important: After the migration is complete, any changes you made to your Exchange 2013 public folders won’t be reflected in the Exchange 2010/2007. As a result, you may lose public folder data if you roll back the migration.
1. To unlock legacy Exchange public folders, run the following command on the legacy Exchange server.
Set-OrganizationConfig -PublicFoldersLockedForMigration:$False
2. To set the PublicFolderMigrationComplete flag to $false, run the following command on the Exchange 2010 SP3 server:
Set-OrganizationConfig -PublicFolderMigrationComplete:$False
3. If Public Folders will be present in exchange 2013 then users will not go to exchange 2010/2007. To remove the public folders, run the below cmdlets
Get-PublicFolderMigrationRequest | Remove-PublicFolderMigrationRequest -Confirm:$false
Get-MailPublicFolder | Disable-MailPublicFolder -Confirm:$false
Get-PublicFolder -GetChildren | Remove-PublicFolder -Recurse -Confirm:$false
Get-Mailbox -PublicFolder |Remove-Mailbox -PublicFolder -Confirm:$false
For On Prem to Office 365 migrations, use this technet which has slight changed steps are step number 5. - https://technet.microsoft.com/en-us/library/dn874017%28v=exchg.150%29.aspx
Best of Luck, feel free to contact us in case of any issue
Prabhat Nigam | MVP Exchange Server
Team@ MSExchangeGuru
Keywords: Exchange 2010 public folder migration, Exchange 2013 public folders, how to migrate public folders to Exchange 2013, exchange 2013, exchange 2013 PF migration, how to migrate public folders from Exchange 2007 to exchange 2013
April 19th, 2013 at 2:11 am
Beautiful! Thanks so much! 🙂
April 19th, 2013 at 3:16 am
Excellent documentation
April 19th, 2013 at 7:46 am
Excellent Article.
April 19th, 2013 at 10:30 am
Thanks for the excellent article, after reading this I have successfully Migrate Public folders from exchange 2010 to 2013. Except not able to delete Public folder database from exchange 2010 EMC, getting error “The public folder database “PFDB01” contains folder replicas. Before deleting the public folder database, remove the folders or move the replicas to another public folder database” Also can you guide how I can delete mailbox database of exchange 2010?Can you guide me the next stop how I can decommission exchange 2010?
Thanks again
April 19th, 2013 at 10:53 am
Thank you for Compliments 🙂
@Gagan – I would suggest you to dismount the Public Folder DB and Enjoy 2013 PF for few Days. Once you
are satisfied you can follow the technet link – http://technet.microsoft.com/en-us/library/dd876883(EXCHG.140).aspx
April 19th, 2013 at 3:55 pm
Great article!
One question: does step n°4 require you to copy Scripts folder from Exchange2013 to Exchange 2007 server? AFAIK the Export-PubliFolderStatistics.ps1 does not exist in Exchange2007 folder. Is that correct?
April 19th, 2013 at 3:57 pm
Yes Massimo. Please copy from 2013
April 21st, 2013 at 6:53 am
Thanks for the steps, however I ran into an issue. After the move was autosuspended, and then I made the PreventCompletion changes and resumed the move, it would once again suspend saying that the original database was locked. I had to go back and unlock the original database and resume the move for it to complete successfully. Any ideas on why?
April 21st, 2013 at 2:42 pm
@Kyle – I guess it will be replication delay.
April 21st, 2013 at 5:19 pm
@Wizkid – It was a single domain controller with a single Exchange 2010 and single Exchange 2013 test setup in a vmware lab. Replication should not be an issue. Even still, I let it sit for 3 days and it was still an issue. What would there be to replicate anyway? It was correctly reporting that the database was locked, as we did that in step 7 above. I essentially had to undo that step to complete the migration.
April 21st, 2013 at 7:09 pm
@Kyle
Every configuration stays in AD so replication is important, You had not mentioned that you have 1 DC.
Step 7 is required and we don’t change to false until role back. I will be more than happy to help your setup fixed. Do let me know if you can reproduce the same issue.
prabhat@msexchangeguru.com
April 21st, 2013 at 9:29 pm
[…] Public Folders Migration from Exchange 2007/2010 to Exchange 2013 – 18-Apr-2013 […]
April 25th, 2013 at 2:31 am
Hello, I’m interested in Public Folder migration cross-forest. I wasn’t able to complete it. Always stuck at New-PublicFolderMirationRequest with its remote parameters. Some of them are marked as “for Microsoft internal use only” as OutlookAnywhereHostName or AuthenticationMethod. And some of them aren’t even recognized, as RemoteCredential or RemoteMailboxServerLegacyDN. Although they are in help.
I tryed many ways, combine sessions, experimenting with similar comands, etc. MS scripts for creating AD objects worked fine, but it’s not enough.
Always stuck at required parameter SourceDatabase for New-PublicFolderMirationRequest. It can’t connect remotely without proper setting.
I’m really unhappy, but I don’t give up… yet.
April 25th, 2013 at 3:03 pm
@Anna- I have not tested cross forest migration yet but it should not be much of worry. If you can share the error then I might be able to suggest you any solution.
I will test cross forest migration shortly and share.
April 26th, 2013 at 2:41 am
Nice Post. So here is a good one. I wish to create a Mailbox Database in Exchange 2010 but WITHOUT Public folders. I cannot see any way to get round the setting that a Mailbox database must be associated with public folders.
April 26th, 2013 at 6:19 am
Thanks for reply. It’s not just about error, ut’s about missing parameters in New-PublicFolderMirationRequest. The synatx is:
New-PublicFolderMigrationRequest -OutlookAnywhereHostName -RemoteCredential -RemoteMailboxLegacyDN -RemoteMailboxServerLegacyDN [-AuthenticationMethod ] [-Organization ] …etc etc etc….
but first parameter -OutlookAnywhereHostName is for internal microsoft use only.
[PS] C:\Windows\system32>New-PublicFolderMigrationRequest -OutlookAnywhereHostName
A parameter cannot be found that matches parameter name ‘OutlookAnywhereHostName’.
+ CategoryInfo : InvalidArgument: (:) [New-PublicFolderMigrationRequest], ParameterBi ndingException
+ FullyQualifiedErrorId : NamedParameterNotFound,New-PublicFolderMigrationRequest
+ PSComputerName : exchange.domain.com
and others are the same, just for MS only or just not recognized. For example:
[PS] C:\Windows\system32>$s = Get-Credential
cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
Credential
[PS] C:\Windows\system32>New-PublicFolderMigrationRequest -RemoteCredential $s
A parameter cannot be found that matches parameter name ‘RemoteCredential’.
+ CategoryInfo : InvalidArgument: (:) [New-PublicFolderMigrationRequest], ParameterBi ndingException
+ FullyQualifiedErrorId : NamedParameterNotFound,New-PublicFolderMigrationRequest
+ PSComputerName : exchange.domain.com
But I send a note to MS and it is a real problem not just some complicated solving method, thay answered me today and will make me a solution.
April 26th, 2013 at 10:11 am
@Anna
I will explain more once I will test and I might publish another article for it. If MS is answering your concerns then let us wait for their reply.
These are my thought about the cmdlets:
1. New-PublicFolderMigrationRequest -OutlookAnywhereHostName
You have missed FQDN of OutlookAnywhere, as an example it should be New-PublicFolderMigrationRequest -OutlookAnywhereHostName mail.msexchangeguru.com
2. New-PublicFolderMigrationRequest -RemoteCredential $s
In this cmdlet you need to add RemoteMailboxServerLegacyDN, Below is the extract from technet.
“You must use this parameter in conjunction with the RemoteMailboxServerLegacyDN parameter.”
Reference used: http://technet.microsoft.com/en-us/library/jj218636(v=exchg.150).aspx
April 26th, 2013 at 11:05 am
If you run help new-publicfoldermigrationrequest -detailed , you can see there are parametrers details like this:
-OutlookAnywhereHostName
This parameter is reserved for internal Microsoft use.
You cannot simply use it, command new-publicfoldermigrationrequest will just answer you “cannot found”, as I posted before.
And yes, for remotecredentials..
-RemoteMailboxServerLegacyDN
The RemoteMailboxServerLegacyDN parameter specifies the server legacy distinguished name (DN) of the back-end server. To find the LegacyExchangeServerDN property, run the following command: Get-ExchangeServer | Format-List LegacyExchangeServerDN.
This command surprisely doesn’t work. It just jump to few more rows.
[PS] C:\>Get-ExchangeServer server | Format-List LegacyExchangeServerDN
[PS] C:\>
When it doesn’t return any value it’s useless.
April 26th, 2013 at 3:55 pm
Just migrated from 2007 to 2013. Have had lots of issues, pub folders being one of them. Just used these instructions. I now have successfully migrated the folders!
Notes:
-Had to set -baditemcount on the migration request, because it initially failed.
-Had the migration hang due to mailbox being locked. Had to rerun the command…
Set-PublicFolderMigrationRequest –Identity \PublicFolderMigration -PreventCompletion:$false
Aside from these issues (not including all my typos during the process) this process worked great. Thanks!!!
May 7th, 2013 at 6:28 pm
Hi Guys,
Just so you know, for step 4, Export public folder hierarchy from source into CSV file, If your legacy server is 2007, I could NOT get this to work until I edited the export-publicfolderstatistics.ps1 script and removed the “ResultSize:unlimited” item on line 91 of the script. On line 91 of the script, you can see that it runs “get-publicfolder statistics servername -resultsize:unlimited”, which for me, was causing an error, thus not working.
If you right click and edit the script, you can modify and save the script and try again. I hope this tidbit helps others.
May 7th, 2013 at 6:59 pm
@Mikey – Thank you! This has been updated.
May 9th, 2013 at 8:36 pm
You’re welcome, WizKid….and shame on me for not thanking YOU in the first place. Great article and thanks for the help!
May 10th, 2013 at 12:31 am
Its okay Mikey. It was great to know my publication was any help for you.
May 10th, 2013 at 10:53 am
[…] https://msexchangeguru.com/2013/04/18/exchange2013-public-folders/ […]
May 21st, 2013 at 9:44 pm
Thank you for this great article.
I am facing an issue at the end of the process: when i try to remove the public folder database from Exchange 2007 i am getting this error “Object is read only because it was created by a future version of Exchange: 0.10 (14.0.100.0). Current supported version is 0.1 (8.0.535.0).” since remove-publicfolderdatabase cmdlet does not exist in 2013 i am wondering how i can do that …
Thx
May 22nd, 2013 at 12:03 am
@Mike – Sorry, I missed to approve and reply you. Here is your answer: We always create mailbox database without linking Public Folders. This is a configuration option in the properties of the mailbox database.
Basically many organizations don’t use Public folders and they don’t create Public folder Database.
May 22nd, 2013 at 12:14 am
@Rony – Check the below link for the Exchange 2007 PF removal – I would suggest these links before trying Adsiedit.msc
http://technet.microsoft.com/en-us/library/aa998329(v=EXCHG.80).aspx
http://forums.msexchange.org/m_1800521706/mpage_1/key_/tm.htm#1800521706
Try removing from Adsiedit.msc but be careful. Take the systemstate backup before deleting.
1. Launch ADSIEdit and connect to the “Configuration” container.
2. Navigate to “Services –> Microsoft Exchange –> Org Name –> Administrative Groups –> Group Name –> Servers –> 2007servername –> Information Store –> Storage Group”
3. Right click the “2007 Public Folder Database” and select “Delete”. Wait for the replication to occur.
May 31st, 2013 at 9:43 pm
[…] Exchange 2013 Public Folders Migration – https://msexchangeguru.com/2013/04/18/exchange2013-public-folders/ […]
June 10th, 2013 at 9:45 am
[PS] C:\Windows\system32>Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics -IncludeReport |
fl
Creating a new session for implicit remoting of “Get-PublicFolderMigrationRequest” command…
RunspaceId : ec7748e2-3b24-479b-a98d-af2f502f940c
Name : PublicFolderMigration
Status : Failed
StatusDetail : FailedOther
SyncStage : CreatingFolderHierarchy
Flags : IntraOrg, Pull, Suspend, SuspendWhenReadyToComplete
RequestStyle : IntraOrg
Direction : Pull
Protect : False
Priority : Normal
Suspend : True
SourceVersion : Version 14.3 (Build 123.0)
SourceDatabase : Public Folder Database 1619818525
SourceServer : HFDT1MBX08.******************************
BatchName :
OutlookAnywhereHostName :
RemoteCredentialUsername :
AuthenticationMethod : Basic
RemoteMailboxLegacyDN :
RemoteMailboxServerLegacyDN :
BadItemLimit : 49
BadItemsEncountered : 0
LargeItemLimit : 0
LargeItemsEncountered : 0
FolderToMailboxMap : {\}
QueuedTimestamp : 6/8/2013 4:22:39 PM
StartTimestamp : 6/8/2013 4:44:04 PM
LastUpdateTimestamp : 6/8/2013 4:44:05 PM
InitialSeedingCompletedTimestamp :
FinalSyncTimestamp :
CompletionTimestamp :
SuspendedTimestamp :
OverallDuration : 1.18:53:06
TotalFinalizationDuration :
TotalDataReplicationWaitDuration :
TotalSuspendedDuration :
TotalFailedDuration : 1.18:31:40
TotalQueuedDuration : 00:21:24
TotalInProgressDuration : 00:00:01
TotalStalledDueToCIDuration :
TotalStalledDueToHADuration :
TotalStalledDueToReadThrottle :
TotalStalledDueToWriteThrottle :
TotalStalledDueToReadCpu :
TotalStalledDueToWriteCpu :
TotalStalledDueToReadUnknown :
TotalStalledDueToWriteUnknown :
TotalTransientFailureDuration :
TotalIdleDuration : 00:00:00
MRSServerName :
EstimatedTransferSize : 0 B (0 bytes)
EstimatedTransferItemCount : 0
BytesTransferred : 0 B (0 bytes)
BytesTransferredPerMinute :
ItemsTransferred : 0
PercentComplete : 10
PositionInQueue :
PreventCompletion : True
FailureCode : -2146233088
FailureType : DataValidationException
FailureSide : Target
Message : Error: Property expression “All New Users” isn’t valid. Valid values are: Strings
formed with characters from A to Z (uppercase or lowercase), digits from 0 to 9, !,
#, $, %, &, ‘, *, +, -, /, =, ?, ^, _, `, {, |, } or ~. One or more periods may be
embedded in an alias, but each period should be preceded and followed by at least
one of the other characters. Unicode characters from U+00A1 to U+00FF are also
valid in an alias, but they will be mapped to a best-fit US-ASCII string in the
e-mail address, which is generated from such an alias.
FailureTimestamp : 6/8/2013 4:44:05 PM
IsValid : True
ValidationMessage :
OrganizationId :
RequestGuid : 72b8a1ff-242e-4062-ac00-4242dfdc3a0e
RequestQueue : DB21
ExchangeGuid : 40726776-b9d0-46d8-a728-d1789c1d370b
Identity : RequestGuid (72b8a1ff-242e-4062-ac00-4242dfdc3a0e), RequestQueue:
(fc85afdb-de94-43a9-ac95-5b5b71183ba2)
Report : 6/8/2013 4:22:38 PM [HFDT1MBX18] ‘******************************/Servers/craadmin’ created
request.
6/8/2013 4:44:03 PM [HFDT1MBX16] The Microsoft Exchange Mailbox Replication service
‘HFDT1MBX16.******************************’ (15.0.620.24 caps:3F) is examining the request.
6/8/2013 4:44:03 PM [HFDT1MBX16] Connected to target mailbox
‘40726776-b9d0-46d8-a728-d1789c1d370b’, database ‘DB21’, Mailbox server
‘HFDT1MBX16.******************************’ Version 15.0 (Build 620.0), proxy server
‘HFDT1MBX16.******************************’ 15.0.620.24 caps:3FCB07FFFF.
6/8/2013 4:44:03 PM [HFDT1MBX16] Connected to source mailbox ”, database ‘Public
Folder Database 1619818525’, Mailbox server ‘HFDT1MBX08.******************************’
Version 14.3 (Build 123.0).
6/8/2013 4:44:03 PM [HFDT1MBX16] Request processing started.
6/8/2013 4:44:04 PM [HFDT1MBX16] Stage: CreatingFolderHierarchy. Percent complete:
10.
6/8/2013 4:44:05 PM [HFDT1MBX16] Initializing folder hierarchy from mailbox ”: 72
folders total.
6/8/2013 4:44:05 PM [HFDT1MBX16] Folder creation progress: 0 folders created in
mailbox ‘40726776-b9d0-46d8-a728-d1789c1d370b’.
6/8/2013 4:44:05 PM [HFDT1MBX16] Fatal error DataValidationException has occurred.
ObjectState : New
[PS] C:\Windows\system32>
July 2nd, 2013 at 11:10 am
When I run .\Export-PublicFolderStatistics.ps1, I get:
Parameter declarations are a comma-separated list of variable names with option
al initializer expressions.
At C:\Program Files\Microsoft\Exchange Server\Scripts\Export-PublicFolderStatis
tics.ps1:16 char:168
+ HelpMessage = “Full path of the output file to be generated. If only
filename is specified, then the output file will be generated in the current di
rectory.”)] <<<<
July 2nd, 2013 at 12:05 pm
@Tbone
The format is: .\Export-PublicFolderStatistics.ps1 \\servername\path\filename.csv
Did you miss file path or name…. See the help message.
July 2nd, 2013 at 12:18 pm
@ Prabhat Nigam
This is the exact input:.\Export-PublicFolderStatistics.ps1 C:\PFMigration\PSmapnametosize.csv
I have seen where you should be on PShell 2.0. I am updating now.
July 2nd, 2013 at 12:21 pm
@TBone
Kindly use the below cmd.
.\Export-PublicFolderStatistics.ps1 \\Servername\C$\PFMigration\PSmapnametosize.csv
July 2nd, 2013 at 12:24 pm
@ Prabhat Nigam
Same results either way.
July 2nd, 2013 at 12:26 pm
@TBone
share the folder PFMigration folder and use below cmd
.\Export-PublicFolderStatistics.ps1 \\Servername\PFMigration\PSmapnametosize.csv
July 2nd, 2013 at 1:40 pm
I think it was Power Shell 2.0. It worked this time.
July 2nd, 2013 at 2:17 pm
@Tbone
It has to be unc path. 2013 does not accept c:
July 2nd, 2013 at 3:51 pm
@ Prabhat Nigam
Well I was running script from 2007 not 2013. I used c: and it worked fine, but thank you for a quick response. I now am getting to many corrupt items when running
New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server servername) -CSVData (Get-Content C:\temp\Mapgen.csv -Encoding Byte)
What’s the parameter to allow multiple bad items?
July 2nd, 2013 at 4:05 pm
-BadItemLimit
You might also need AcceptLargeDataLoss
http://technet.microsoft.com/en-us/library/dd351123(v=exchg.150).aspx
July 8th, 2013 at 11:13 pm
Thanks for the article.
I have follow all the instrustions. The replication status Failed after abount an hour. Any suggestion would be greatly appreciated.
July 8th, 2013 at 11:54 pm
@Doug
This article very well as this is a tested article.
I would like to know on which step you got replication failed.
My first thought is any firewall.
July 17th, 2013 at 10:34 am
Best article I found, thank you for taking the time to document.
My issues: when I initiated New-PublicFolderMigrationRequest it ended up having an error. In order to get it to work I had to append “-BadItemLimit 1000” to get it to finally complete (however I did check the log to see that there were no missing items and 0byte missing), still not sure how I’d correct the errors it had.
I’m also having the issue of “The public folder database ‘Public Folder Database’ contains folder replicas.”. I’m trying to find all links to the public folder database in ADSI Edit before removing it with that method (currently I removed my PF’s from the databases) via http://exchangeserverpro.com/remove-default-public-folder-database-exchange-mailbox-database/
When I do a Get-PublicFolder command it errors out “There is no existing PublicFolder that matches the following Identity: ‘\’.” although Get-PublicFolderStatistics shows the folder items that got migrated and are still stuck on this machine (the storage group and database are the same as before and on the other server it shows the owner). How would you delete these remaining items? I’m assuming this is what’s keeping the DB from being removed.
July 19th, 2013 at 12:55 am
@Brandon
Bad Items can be corrupted items which can only deleted or left like this.
If you are able to see any access all PFs from 2013 mailboxes then I would not mind removing it from ADSIEdit.
July 27th, 2013 at 9:56 am
Hi,
Great how-to!
However under my V14\scripts directory, I don’t have Export-PublicFolderStatistics.ps1 or PublicFolderToMailboxMapGenerator.ps1.
Can I get them from somewhere? #Stuck.
Thanks
July 27th, 2013 at 11:02 am
@TC
Check on 2013
July 28th, 2013 at 5:28 am
Thank you!
All went through successfully and I can see my public folder mailbox, but I can’t see the Public folder itself…I don’t entirely understand it either…Any help would be great thanks.
July 28th, 2013 at 11:59 am
@TC
Where are you checking?
July 28th, 2013 at 5:37 pm
Under Public folders via ECP.
July 29th, 2013 at 3:01 am
Check in the shell
September 3rd, 2013 at 4:00 am
Hi ,
I am trying to migrate exchange server 2007 public folder to exchange online(office 365), actually I have tried many article to configure but I couldn’t able to do successfully. Can you please tell me how to do the migration for the same.
thanks,
Sivaraman