7. Moving public folders
When
you create a new public folder, Exchange automatically directs
client-created content for the newly created public folder in the
public folder mailbox that contains its parent folder unless you
specify the name of the public folder mailbox to host the new folder by
passing the –Mailbox parameter to the New-PublicFolder cmdlet. When you
use EAC to create a new public folder, you cannot specify the mailbox
in which the new folder is to be created, so the new folder is always
created in the same mailbox as its parent. In addition, if only one
public folder mailbox is in use, the new folder is created there.
It
can be preferable to exert more control over the mailbox that stores a
public folder. For example, if you create a new public folder that is
intended for use by a group of people located in a particular country,
it is a good idea to create a public folder mailbox in a database in a
DAG or server that is usually close to those users instead of requiring
them to make extended network connections whenever they need to access
content.
Two methods are available to move public folder content. These are:
Use
New-PublicFolderMoveRequest to move the folder from one public folder
mailbox to another. This is a permanent movement that is comparable to
moving a user mailbox from one database to another. The move is
performed by the Mailbox Replication service (MRS) and occurs using the
same framework as exists for mailbox moves, so some delay occurs
between scheduling the move request and its completion. In addition,
MRS only processes a single public folder move job at a time, which
could cause further delay. This is the preferred method when content
already exists in the folder.
Use
Set-PublicFolder with the OverrideContentMailbox parameter to redirect
content creation from the current public folder mailbox to another. The
Store executes a redirect immediately. Using this method is acceptable
when you need to redirect client connections to a different public
folder mailbox and it is not important to retain any content that
exists for the folder in its current public folder mailbox.
The
New-PublicFolderMoveRequest command works in a very similar manner to
normal mailbox moves. One difference is that you can provide a list of
folders to move in a single operation. This is important because if you
attempt to move a public folder that has child folders, the child
folders will not be moved if you specify only the name of the top-level
folder. In other words, you have to tell Exchange exactly what folders
should be moved to the target public folder mailbox. For example:
New-PublicFolderMoveRequest –Folders "\Countries\Germany", "\Countries\Italy"
–TargetMailbox PF-Countries –BadItemLimit 10 –Priority Highest
–SuspendWhenReadyToComplete
This
command creates a job that moves the public folder content to the
target public folder mailbox and then halts to allow the administrator
to check that everything went well. The administrator can then allow
the move to progress to completion by running the
Resume-PublicFolderMoveRequest command.
Only one public folder
move job can be processed at a time, so MRS will refuse to accept a new
job if one is already present. You can use the
Get-PublicFolderMoveRequest command to check whether a job is already
running before you attempt to schedule another and the
Get-PublicFolderMoveRequestStatistics command to see what’s happening
with the job if one is present. (“\PublicFolderMove” is the identity
assigned to these jobs.)
Get-PublicFolderMoveRequestStatistics –Identity "\PublicFolderMove" | Format-List
Like
mailbox moves, public folder moves can complete only if sufficient
resources exist and system health allows. For example, if the target
public folder mailbox is in a database that is part of a DAG, the
replication status within the DAG must permit the move to complete or
it will be stalled due to a high-availability constraint.
Public
folder move requests are cleaned up automatically after 30 days. If you
don’t want to wait because you want to move some folders, assuming that
the job is complete, you can remove the current public folder move
request by running the following command. When the old job is removed,
you will be able to start a new public folder move.
Remove-PublicFolderMoveRequest –Identity "\PublicFolderMove"
Note
that child folders are not moved unless you explicitly instruct MRS to
include these folders. The easiest way to do this is to run the
Move-PublicFolderBranch.ps1 script that is found in the \Scripts
directory.
When you run the Set-PublicFolder command to override the
current destination for new client content, you specify the name of the
target public folder mailbox in the OverrideContentMailbox parameter. This command redirects all future client connections to the public folder mailbox ‘PF-IT-MBX’:
Set-PublicFolder –Identity '\Department\IT' –OverrideContentMailbox 'PF-IT-MBX'
Any
new content that clients create will now be stored in the PF-IT-MBX
public folder mailbox. This command does not affect any subfolders,
which remain in the original public folder mailbox. If you make a
mistake, reverse course by running the command to redirect back to the
original public folder mailbox.
Moving a folder to the mailbox
that will serve as its permanent home is always preferable. However, it
might be that the mailbox that hosts an essential folder is unavailable
for some reason, and the need exists to be able to create new content
in the folder. In this situation, you could redirect new content to a
different mailbox during the period of the outage. When the other
public folder mailbox comes online again, you can redirect the folder
back to its original location.
It is critical to realize that a
redirection does not move content. Thus, when you redirect a public
folder to another mailbox, any content that existed in the folder is
left in the original mailbox, where it will be retained for 14 days.
Users will lose access to the content that remains in the original
mailbox. For this reason, before you redirect any public folder, make
sure that you take a copy of the existing data so that it can be
imported into the new location after the redirection is effective. You
can do this by copying the items to a PST.
Two other situations
exist when you might want to redirect public folder content. First, you
recover a soft-deleted public folder mailbox, and you want to restore
the folders contained in the mailbox to an active public folder
mailbox. In this scenario, you first restore the content by using the
New-MailboxRestoreRequest command and then use Set-PublicFolder
–OverrideContentMailbox to redirect any new content for the folders to
the appropriate public folder mailbox.
Second,
you recover information from a public folder mailbox that is in a
recovery database. Use the same steps as taken in the first scenario to
restore the information.