Commands › Exchange Online

New-PublicFolderMigrationRequest

Exchange Online ExchangeOnlineManagement New-*

Start a serial public folder migration from Exchange Server 2010. **Note**: Support for serial migration of public folders ended in Exchange 2013 Cumulative Update 8 (CU8), and the cmdlets are no longer available in Exchange Online. Instead, use the corresponding **\*-MigrationBatch** and **\*-PublicFolderMailboxMigration\*** cmdlets.

Quick start script

# New-PublicFolderMigrationRequest — quick start (serv365.ai)
# 1. Connect (app-only shown; interactive: omit the certificate parameters)
Connect-ExchangeOnline -CertificateThumbprint $thumb -AppId $appId -Organization $org

# 2. Capture the current state first — you cannot roll back what you never recorded
$before = Get-PublicFolderMigrationRequest
$before | Format-List

# 3. Make the change (dry run first)
New-PublicFolderMigrationRequest -SourceDatabase <DatabaseIdParameter> -WhatIf
New-PublicFolderMigrationRequest -SourceDatabase <DatabaseIdParameter>

# 4. Verify and diff
$after = Get-PublicFolderMigrationRequest
Compare-Object ($before | Out-String) ($after | Out-String)

Syntax

New-PublicFolderMigrationRequest [[-Name] <String>] -SourceDatabase <DatabaseIdParameter>
 [-AcceptLargeDataLoss]
 [-BadItemLimit <Unlimited>]
 [-BatchName <String>]
 [-CompletedRequestAgeLimit <Unlimited>]
 [-Confirm]
 [-CSVData <Byte[]>]
 [-CSVStream <Stream>]
 [-DomainController <Fqdn>]
 [-InternalFlags <InternalMrsFlag[]>]
 [-LargeItemLimit <Unlimited>]
 [-MigrationMailbox <MailboxIdParameter>]
 [-Priority <RequestPriority>]
 [-RequestExpiryInterval <Unlimited>]
 [-SkipMerging <SkippableMergeComponent[]>]
 [-SourceEndpoint <MigrationEndpointIdParameter>]
 [-Suspend]
 [-SuspendComment <String>]
 [-WhatIf]
 [-WorkloadType <RequestWorkloadType>]
 [<CommonParameters>]

Parameters (21)

ParameterTypeRequiredWhat it controls
-Name String The Name parameter specifies the name of the public folder migration request. If the value contains spaces, enclose the value in quotation marks (").
-SourceDatabase DatabaseIdParameter yes The SourceDatabase parameter specifies the target database for the public folders. You can use any value that uniquely identifies the database. For example:
-AcceptLargeDataLoss SwitchParameter The AcceptLargeDataLoss switch specifies the request should continue even if a large number of items in the source mailbox can't be copied to the target mailbox. You don't need to specify a value with this switch.
-BadItemLimit Unlimited The BadItemLimit parameter specifies the maximum number of bad items that are allowed before the request fails. A bad item is a corrupt item in the source mailbox that can't be copied to the target mailbox. Also...
-BatchName String The BatchName parameter specifies a descriptive name for the public folder migration batch. You can use the BatchName parameter as a search string when you use the Get-PublicFolderMigrationRequest cmdlet.
-CompletedRequestAgeLimit Unlimited The CompletedRequestAgeLimit parameter specifies how long the request is kept after it has completed before being automatically removed. The default CompletedRequestAgeLimit parameter value is 30 days.
-Confirm SwitchParameter The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on whether the cmdlet requires confirmation before proceeding.
-CSVData Byte[] The CSVData parameter specifies the mapping file output generated by the PublicFoldertoMailboxMapGenerator.ps1 script. Use this parameter for local migrations.
-CSVStream Stream The CSVStream parameter specifies the mapping file output generated by the PublicFoldertoMailboxMapGenerator.ps1 script. Use this parameter for remote migrations.
-DomainController Fqdn The DomainController parameter specifies the domain controller that's used by this cmdlet to read data from or write data to Active Directory. You identify the domain controller by its fully qualified domain name...
-InternalFlags InternalMrsFlag[] The InternalFlags parameter specifies the optional steps in the request. This parameter is used primarily for debugging purposes.
-LargeItemLimit Unlimited The LargeItemLimit parameter specifies the maximum number of large items that are allowed before the request fails. A large item is a message in the source mailbox that exceeds the maximum message size that's allowed...
-MigrationMailbox MailboxIdParameter This parameter is reserved for internal Microsoft use.
-Priority RequestPriority The Priority parameter specifies the order in which the request should be processed in the request queue. Requests are processed in order, based on server health, status, priority, and last update time. Valid...
-RequestExpiryInterval Unlimited The RequestExpiryInterval parameter specifies an age limit for a completed or failed request. When you use this parameter, the completed or failed request is automatically removed after the specified interval...
-SkipMerging SkippableMergeComponent[] The SkipMerging parameter specifies whether certain stages of a public folder migration are skipped for debugging purposes. Don't use this parameter unless directed to do so by a Microsoft Customer Service and...
-SourceEndpoint MigrationEndpointIdParameter This parameter is reserved for internal Microsoft use.
-Suspend SwitchParameter The Suspend switch specifies whether to suspend the request. You don't need to specify a value with this switch.
-SuspendComment String The SuspendComment parameter specifies a description about why the request was suspended. You can only use this parameter if you specify the Suspend parameter.
-WhatIf SwitchParameter The WhatIf switch shows what the command does without making any changes. You don't need to specify a value with this switch.
-WorkloadType RequestWorkloadType This parameter is reserved for internal Microsoft use.

Reference facts derived from Microsoft documentation, © Microsoft, licensed CC BY 4.0; restructured with original guidance by serv365.ai.