The essential guide to PowerShell in Exchange
A comprehensive collection of articles, videos and more, hand-picked by our editors
Microsoft really focused on PowerShell in all of its Wave 15 product releases. For example, there are almost 200 new Exchange 2013-related PowerShell cmdlets. The new cmdlets apply to different aspects of Exchange Server management, but one area that has seen serious changes from a PowerShell prospective is the new Exchange 2013 public folders.
When it was building Exchange 2013, Microsoft retired several Exchange 2010 PowerShell cmdlets. Eight of those are public-folder-related:
These PowerShell cmdlets are not included in Exchange 2013 because Microsoft has completely changed how public folders work. PowerShell cmdlets that applied to things like the public folder hierarchy and public folder replication in past versions of Exchange Server are no longer necessary.
You may have read that Microsoft has modernized Exchange 2013 public folders to make them database availability group-compatible; that's actually just part of the story.
Exchange 2013 does not include public folder databases. Instead, public folders exist within mailboxes and reside in a mailbox database. Thus, Exchange 2013 now also includes a new mailbox type -- public folder mailboxes.
Restructuring Exchange 2013 to treat public folders as mailboxes required Microsoft to introduce many new PowerShell cmdlets and retrofit a lot of existing ones.
The New-Mailbox cmdlet is one example of a PowerShell cmdlet that has been retrofitted to offer PowerShell support in Exchange 2013. This cmdlet has traditionally been used to create user, room and equipment mailboxes. In Exchange 2013, however, the New-Mailbox cmdlet may also be used to create the aforementioned public folder mailbox. Here's an example:
New-Mailbox –PublicFolder <name>
Public folders vs. public folder mailboxes
You should also understand that a public folder and a public folder mailbox are two different things. In previous versions of Exchange Server, many administrators referred to mail-enabled public folders as public folder mailboxes. In Exchange Server 2013, however, this terminology is no longer accurate. A public folder mailbox is a dedicated mailbox that stores an entire public folder hierarchy, as well as the public folders themselves.
The fact that public folders now exist in public folder mailboxes also means that public folders can now be replicated through database availability groups.
New public folder-related PowerShell cmdlets
Most of the new Exchange 2013 public folder-related cmdlets provide functionality that did not exist for public folders in previous versions of Exchange.
Move requests are a good example of new functionality for Exchange 2013 public folders. In Exchange Server 2010, move requests are used to move mailboxes from one mailbox database to another. In Exchange Server 2013, the concept of a move request has been extended to public folders. Some of the related cmdlets include:
Note that Exchange 2013 public folder move requests work differently than mailbox move requests in previous versions of Exchange. Mailbox move requests move mailboxes from one mailbox database to another. In contrast, Exchange 2013 public folder move requests move public folders from one public folder mailbox to another.
If you want to move a public folder to a completely different mailbox database, you must use a mailbox move request to move the entire public folder mailbox.
To see how public folder move requests work, imagine that you wanted to move a public folder named HR (as well as its subfolders) to a public folder mailbox named Pub. To do so, use the following command:
New-PublicFolderMoveRequest – Folders \HR –TargetMailbox Pub
As you can see, I entered the New-PublicFolderMoveRequest cmdlet and appended the name of the folder (HR) as well as the target public folder mailbox (Pub).
Migrating public folders to Exchange 2013
Upon migrating to Exchange Server 2013, many organizations will understandably also want to migrate their public folders from public folder databases to public folder mailboxes. To make this type of migration possible, Microsoft has introduced a series of cmdlets that focus on public folder migration requests. The Get-PublicFolderMigrationRequest and New-PublicFolderMigrationRequest cmdlets are two such examples.
If you're interested in reading more on Exchange 2013 public folder migrations and the necessary cmdlets, I suggest reading Microsoft's TechNet article on the topic.
ABOUT THE AUTHOR: Brien Posey is an eight-time Microsoft MVP with two decades of IT experience. Before becoming a freelance technical writer, Brien worked as a chief information officer at a national chain of hospitals and health care facilities. He has also served as a network administrator for some of the nation's largest insurance companies and for the Department of Defense at Fort Knox.