You are on page 1of 142

Migrating from Exchange

2010 to 2016 – Step by Step


Volume 1

Dave Kawula - MVP


Cary Sun – Cisco Champion (CCIE)
PUBLISHED BY

MVPDays Publishing
http://www.mvpdays.com

Copyright © 2018 by MVPDays Publishing

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any
means without the prior written permission of the publisher.

ISBN: TBA

Warning and Disclaimer


Every effort has been made to make this manual as complete and as accurate as possible, but no
warranty or fitness is implied. The information provided is on an “as is” basis. The authors and
the publisher shall have neither liability nor responsibility to any person or entity with respect to
any loss or damages arising from the information contained in this book.

Feedback Information
We’d like to hear from you! If you have any comments about how we could improve the quality
of this book, please don’t hesitate to contact us by visiting www.checkyourlogs.net or sending an
email to feedback@mvpdays.com.
Acknowledgements

iii
Acknowledgements

Acknowledgements
From Dave
Cristal, you are my rock and my source of inspiration. For the past 20 + years you have been
there with me every step of the way. Not only are you the “BEST Wife” in the world you are my
partner in crime. Christian, Trinity, Keira, Serena, Mickaila and Mackenzie, you kids are so patient
with your dear old dad when he locks himself away in the office for yet another book. Taking the
time to watch you grow in life, sports, and become little leaders of this new world is incredible to
watch.

Thank you, Mom and Dad (Frank and Audry) and my brother Joe. You got me started in this crazy
IT world when I was so young. Brother, you mentored me along the way both coaching me in
hockey and helping me learn what you knew about PC’s and Servers. I’ll never forget us as
teenage kids working the IT Support contract for the local municipal government. Remember
dad had to drive us to site because you weren’t old enough to drive ourselves yet. A great
career starts with the support of your family and I’m so lucky because I have all the support one
could ever want.

A book like this filled with amazing Canadian MVP’s would not be possible without the support
from the #1 Microsoft Community Program Manager – Simran Chaudry. You have guided us
along the path and helped us to get better at what we do every day. Your job is tireless and
your passion and commitment make us want to do what we do even more.

Last but not least, the MVPDays volunteers, you have donated your time and expertise and
helped us run the event in over 20 cities across North America. Our latest journey has us
expanding the conference worldwide as a virtual conference. For those of you that will read this
book your potential is limitless just expand your horizons and you never know where life will take
you.

iv
About the Authors

About the Authors


Dave Kawula - MVP
Dave is a Microsoft Most Valuable Professional (MVP) with over 20 years of experience in the IT
industry. His background includes data communications networks within multi-server
environments, and he has led architecture teams for virtualization, System Center, Exchange,
Active Directory, and Internet gateways. Very active within the Microsoft technical and
consulting teams, Dave has provided deep-dive technical knowledge and subject matter
expertise on various System Center and operating system topics.

Dave is well-known in the community as an evangelist for Microsoft, 1E, and Veeam
technologies. Locating Dave is easy as he speaks at several conferences and sessions each year,
including TechEd, Ignite, MVP Days Community Roadshow, and VeeamOn.

Recently Dave has been honored to take on the role of Conference Co-Chair of TechMentor with
fellow MVP Sami Laiho. The lineup of speakers and attendees that have been to this conference
over the past 20 years is really amazing. Come down to Redmond or Orlando in 2018 and you
can meet him in person.

As the founder and Managing Principal Consultant at TriCon Elite Consulting, Dave is a leading
technology expert for both local customers and large international enterprises, providing optimal
guidance and methodologies to achieve and maintain an efficient infrastructure.

BLOG: www.checkyourlogs.net

Twitter: @DaveKawula

v
Cary Sun – CCIE #4531

Cary Sun – CCIE #4531

Cary Sun is CISCO CERTIFIED INTERNETWORK EXPERT (CCIE No.4531) and MCSE, MCIPT, Citrix
CCA with over twenty years in the planning, design, and implementation of network technologies
and Management and system integration. Background includes hands-on experience with multi-
platform, all LAN/WAN topologies, network administration, E-mail and Internet systems, security
products, PCs and Servers environment. Expertise analyzing user’s needs and coordinating
system designs from concept through implementation. Exceptional analysis, organization,
communication, and interpersonal skills. Demonstrated ability to work independently or as an
integral part of team to achieve objectives and goals. Specialties: CCIE /CCNA / MCSE / MCITP /
MCTS / MCSA / Solution Expert / CCA

Cary’s is a very active blogger at checkyourlogs.net and always available online for questions
from the community. He passion about technology is contagious and he makes everyone around
him better at what they do.

Blog:http://www.checkyourlogs.net

Twitter:@SifuSun

vi
Cary Sun – CCIE #4531

Technical Editors
Cristal Kawula – MVP
Cristal Kawula is the co-founder of MVPDays Community Roadshow and #MVPHour live Twitter
Chat. She was also a member of the Gridstore Technical Advisory board and is the President of
TriCon Elite Consulting. Cristal is also only the 2nd Woman in the world to receive the prestigious
Veeam Vanguard award.

Cristal can be found speaking at Microsoft Ignite, MVPDays, and other local user groups. She is
extremely active in the community and has recently helped publish a book for other Women
MVP’s called Voices from the Data Platform.

BLOG: http://www.checkyourlogs.net

Twitter: @supercristal1

vii
Cary Sun – CCIE #4531

Emile Cabot - MVP


Emile started in the industry during the mid-90s working at an ISP and designing celebrity web
sites. He has a strong operational background specializing in Systems Management and
collaboration solutions, and has spent many years performing infrastructure analyses and
solution implementations for organizations ranging from 20 to over 200,000 employees.
Coupling his wealth of experience with a small partner network, Emile works very closely with
TriCon Elite, 1E, and Veeam to deliver low-cost solutions with minimal infrastructure
requirements.

He actively volunteers as a member of the Canadian Ski Patrol, providing over 250 hours each
year for first aid services and public education at Castle Mountain Resort and in the community.

BLOG: http://www.checkyourlogs.net

Twitter: @ecabot

viii
Cary Sun – CCIE #4531

ix
Contents

Contents

Acknowledgements ...................................................................................................... iv
From Dave ............................................................................................................. iv

About the Authors ......................................................................................................... v


Dave Kawula - MVP ..................................................................................................... v

Cary Sun – CCIE #4531 ................................................................................................ vi


Technical Editors ....................................................................................................... vii
Cristal Kawula – MVP ............................................................................................ vii
Emile Cabot - MVP ............................................................................................... viii

Contents......................................................................................................................... x

Introduction ................................................................................................................. 14

North American MVPDays Community Roadshow ................................................... 14


Sample Files ............................................................................................................. 15
Additional Resources ................................................................................................ 15

Chapter 1...................................................................................................................... 17

Exchange 2016 Design Guidance............................................................................... 17


Exchange 2016 System requirements ...................................................................... 19
Coexistence of Exchange 2016 with earlier versions of Exchange Server ............ 19
Network and directory server requirements for Exchange 2016 ........................... 20
Supported operating systems for Exchange 2016 ................................................ 20
x
Contents

.NET Framework .................................................................................................. 21


Supported clients ................................................................................................. 22

Chapter 2...................................................................................................................... 23

Exchange 2016 Prerequisites ..................................................................................... 23


Exchange 2016 Mailbox Server Role Prerequisites .................................................. 23
Follow steps to install prerequisites for Windows Server 2016 ............................. 23
Follow steps to install prerequisites for Windows Server 2012 R2 ........................ 27
Prepare Active Directory ........................................................................................... 29

Chapter 3...................................................................................................................... 36

Deploy Exchange Server 2016 Mailbox Role Server ................................................. 36


Deployment of Certificates ........................................................................................ 39

Chapter 4...................................................................................................................... 56

Configure Exchange Server 2016 ............................................................................... 56


Verify Existing Client Access Namespaces ............................................................... 56
Configuring the Autodiscover Services Connection Point (SCP) for Exchange 2016
Server .................................................................................................................. 64
Configuring the Client Access Namespaces for Exchange 2016 Server ............... 65
Testing the Client Access Namespaces ............................................................... 66
Cut Over the Client Access namespace to Windows 2016 ................................... 67
Configuring New Offline Address Book for Exchange 2016 Server....................... 69
Configuring Receive Connectors for Exchange 2016 server................................. 71
Change Outbound Mail flow Routing (Send Connectors) ..................................... 77

Chapter 5...................................................................................................................... 80

Connectivity and Mail Flow Test ................................................................................ 80


xi
Contents

Outlook Connectivity Test..................................................................................... 80


Outlook Autodiscover Connectivity Test ............................................................... 84
Exchange ActiveSync Connectivity Test............................................................... 86
Exchange ActiveSync Autodiscover Connectivity Test ......................................... 92
Exchange Web Services Connectivity Test – Synchronization, Notification,
Availability, and Automatic Replies ....................................................................... 94
Testing Inbound Mail Flow.................................................................................... 95
Testing Outbound Mail Flow ............................................................................... 100

Chapter 6.................................................................................................................... 104

Post-Configuration Steps ......................................................................................... 104


Configuring the Default Mailbox Database for Exchange Server 2016 .................... 104
Create a New Mailbox Database ........................................................................ 106
Configuring Mailbox Database Quota ................................................................. 107
Configuring Offline Address Book....................................................................... 108
Migrate Arbitration Mailboxes ............................................................................. 109

Chapter 7.................................................................................................................... 112

Mailbox Migration ...................................................................................................... 112


Migrate Pilot mailboxes via Exchange Administrative Center ............................. 112

Chapter 8.................................................................................................................... 118

Public Folder Migration ............................................................................................. 118

Contact Us ................................................................................................................. 140

Join us at MVPDays and meet great MVP’s like this in person .............................. 140
Live Presentations .................................................................................................. 140
Video Training......................................................................................................... 140
xii
Contents

Live Instructor-led Classes ...................................................................................... 141


Consulting Services ................................................................................................ 141
Twitter ..................................................................................................................... 142

xiii
Introduction North American MVPDays Community Roadshow

Introduction

North American MVPDays


Community Roadshow
The purpose of this book is to showcase the amazing expertise of our guest speakers at the
North American MVPDays Community Roadshow. They have so much passion, expertise, and
expert knowledge that it only seemed fitting to write it down in a book.

MVPDays was founded by Cristal and Dave Kawula back in 2013. It started as a simple idea;
“There’s got to be a good way for Microsoft MVPs to reach the IT community and share their
vast knowledge and experience in a fun and engaging way” I mean, what is the point in
recognizing these bright and inspiring individuals, and not leveraging them to inspire the
community that they are a part of.

We often get asked the question “Who should attend MVPDays”?

Anyone that has an interest in technology, is eager to learn, and wants to meet other like-
minded individuals. This Roadshow is not just for Microsoft MVP’s it is for anyone in the IT
Community.

Make sure you check out the MVPDays website at: www.mvpdays.com. You never know maybe
the roadshow will be coming to a city near you.

The goal of this particular book is to show you how to Migrate your legacy Exchange 2010
environment to Exchange 2016. We built based on our experience migrating live customer
environments.

14
Introduction North American MVPDays Community Roadshow

Sample Files
All sample files for this book can be downloaded from www.checkyourlogs.net and
www.github.com/dkawula

Additional Resources
In addition to all tips and tricks provided in this book, you can find extra resources like articles
and video recordings on our blog http://www.checkyourlogs.net.

15
Introduction North American MVPDays Community Roadshow

16
Chapter 1 Exchange 2016 Design Guidance

Chapter 1

Exchange 2016 Design


Guidance
This document serves as both a guideline for redeployment document for the Exchange
Migration performed at the [Company]. The information within will be primarily prescriptive,
but will include annotations of any issues encountered, as well as any issues that might arise
should the need to redeploy occur.

The process described mainly focuses on a typical transition of Exchange 2010 to Exchange 2016
environment, converting the Exchange 2010 server to Exchange 2016 Server MBX role.
Additional role options such as the Unified Messaging Server role and Edge Transport role, are
out-of-scope within this document.

17
Chapter 1 Exchange 2016 Design Guidance

Current State Feature State

Internet
Internet

Internal corporate network

Exchange
2010 servers

Internal corporate network

Exchange Exchange Exchange


2010 MBX 2010 CAS/
server HUB server 2016 Server

Active On-premises Active Directory


On- Directory users Domain Services
premises Domain
users Services

18
Chapter 1 Exchange 2016 Design Guidance

Exchange 2016 System requirements

Coexistence of Exchange 2016 with earlier versions of Exchange


Server

Exchange version Exchange organization coexistence

Exchange 2007 and earlier versions Not supported

Exchange 2010 Supported with Update Rollup 11 for Exchange 2010 SP3
or later on all Exchange 2010 servers in the organization,
including Edge Transport servers.

Exchange 2013 Supported with Exchange 2013 Cumulative Update 10 or


later on all Exchange 2013 servers in the organization,
including Edge Transport servers.

Mixed Exchange 2010 and Supported with the following minimum versions of
Exchange 2013 organization Exchange:

 Update Rollup 11 Exchange 2010 SP3 or later on


all Exchange 2010 servers in the organization,
including Edge Transport servers.
 Exchange 2013 Cumulative Update 10 or later on
all Exchange 2013 servers in the organization,
including Edge Transport servers.

19
Chapter 1 Exchange 2016 Design Guidance

Network and directory server requirements for Exchange 2016

Component Requirement

Domain controllers All domain controllers in the forest need to be running one
of the following:

 Windows Server 2016 Standard or Datacenter

 Windows Server 2012 R2 Standard or Datacenter

 Windows Server 2012 Standard or Datacenter

 Windows Server 2008 R2 Standard or Enterprise

 Windows Server 2008 R2 Datacenter RTM or later

 Windows Server 2008 Standard, Enterprise, or


Datacenter

Active Directory forest The Active Directory forest functionality level needs to be
at Windows Server 2008 or higher.

Supported operating systems for Exchange 2016

Component Requirement

Mailbox and Edge Transport server  Windows Server 2016 Standard or Datacenter
roles (Requires Exchange Server 2016 Cumulative
Update 3 or later)

 Windows Server 2012 R2 Standard or Datacenter

 Windows Server 2012 Standard or Datacenter

20
Chapter 1 Exchange 2016 Design Guidance

Management tools  Windows Server 2016 Standard or Datacenter*

 Windows Server 2012 R2 Standard or Datacenter

 Windows Server 2012 Standard or Datacenter

 64-bit edition of Windows 10

 64-bit edition of Windows 8.1

.NET Framework

Exchange version .NET Framework 4.6.2 .NET Framework 4.6.1 .NET Framework 4.5.2

Exchange 2016 CU5 V Not supported Not supported


or later

Exchange 2016 CU4 V V V

(Starting with (Starting with


Exchange 2016 CU5, Exchange 2016 CU5,
.NET Framework 4.6.1 .NET Framework 4.6.1
and 4.5.2 will no and 4.5.2 will no
longer be supported longer be supported
with Exchange 2016. with Exchange 2016.
While those versions While those versions
of .NET Framework of .NET Framework
are supported by are supported by
Exchange 2016 CU4, Exchange 2016 CU4,
we strongly we strongly
recommend that you recommend that you
upgrade servers upgrade servers
running Exchange running Exchange
2016 to .NET 2016 to .NET
Framework 4.6.2.) Framework 4.6.2.)

21
Chapter 1 Exchange 2016 Design Guidance

Exchange 2016 CU3 V V V

Exchange 2016 CU2 Not supported V V

(.NET Framework
4.6.1 requires post-
release fixes if you
want to install it on a
server running
Exchange 2016 CU2.)

(If you're upgrading to


Exchange 2016 CU4
from Exchange 2016
RTM, CU1, or CU2, we
strongly recommend
that you install
Exchange 2016 CU4
before .NET
Framework 4.6.2 or
.NET Framework 4.6.1
and its related post-
release fixes)

Exchange 2016 RTM Not supported Not supported V


or CU1

Supported clients

 Outlook 2016
 Outlook 2013
 Outlook 2010 SP2 and updates KB2956191 and KB2965295
 Outlook for Mac for Office 365
 Outlook for Mac 2011

22
Chapter 2 Exchange 2016 Prerequisites

Chapter 2

Exchange 2016 Prerequisites


Exchange 2016 Mailbox Server Role
Prerequisites
Follow steps to install prerequisites for Windows Server 2016

1. Login to Windows Server 2016 server.


2. Open Windows PowerShell as administrator
3. Run cmdlet as follow:

Install-WindowsFeature NET-Framework-45-Features, RPC-over-HTTP-proxy,


RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt,
RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-
Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-
Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-
Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-
Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-
Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-
Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation,
RSAT-ADDS

23
Chapter 2 Exchange 2016 Prerequisites

4. Download and Install .NET Framework 4.6.2

24
Chapter 2 Exchange 2016 Prerequisites

Note
You can check for a minimum-required .NET Framework version by querying the
registry in PowerShell (.NET Framework 4.5 and later).

Get-ChildItem “HKLM:SOFTWARE\MICROSOFT\NET Framework


SETUP\NDP\V4\FULL\” | Get-ItemPropertyValue -Name Release | ForEach-Object {
$_ -ge 394802 }

You can replace 394802 in the previous example with another value from the following
table to check for a different minimum-required .NET Framework version.

Minimum value of the Release


Version
DWORD

.NET Framework
378389
4.5

.NET Framework
378675
4.5.1

.NET Framework
379893
4.5.2

.NET Framework
393295
4.6

.NET Framework
394254
4.6.1

.NET Framework
394802
4.6.2

25
Chapter 2 Exchange 2016 Prerequisites

.NET Framework
460798
4.7

.NET Framework
461308
4.7.1

5. Download and install Microsoft Unified Communications Managed API 4.0, Core Runtime
64-bit

26
Chapter 2 Exchange 2016 Prerequisites

Follow steps to install prerequisites for Windows Server 2012 R2

1. Login Windows Server 2012 R2 Server.


2. Open Windows PowerShell as administrator
3. Run cmdlet as follow:

Install-WindowsFeature AS-HTTP-Activation, Server-Media-Foundation, NET-


Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-
Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-
PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-
Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-
Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-
Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console,
Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-
Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content,
Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS

4. Download and Install .NET Framework 4.6.2

Note
Exchange 2016 CU5 and later require .NET Framework 4.6.2.
Upgrade your servers to .NET Framework 4.6.2 before you install
Exchange 2016 CU5 or you'll receive an error. If .NET Framework
4.5.2 is installed on your Exchange servers, upgrade your servers
to Exchange 2016 CU4 before installing .NET Framework 4.6.2.

5. Download and install Microsoft Unified Communications Managed API 4.0, Core Runtime
64-bit

27
Chapter 2 Exchange 2016 Prerequisites

28
Chapter 2 Exchange 2016 Prerequisites

Prepare Active Directory

Follow steps to check Active Directory and make sure they are meet the requirements in
Exchange 2016 system requirements.

1. Download Get-ADinfo.ps1 PowerShell script from follow link and save to c:\post-install:

https://github.com/cunninghamp/Powershell-Exchange/tree/master/ADInfo

2. Login exchange 2016 server, the account needs to be a member of the Schema Admins
and Enterprise Admins security groups.

3. Open PowerShell as administrator and run Get-ADinfo.ps1

29
Chapter 2 Exchange 2016 Prerequisites

4. Review all of information and mare sure they are meet the requirements in Exchange
2016 system requirements.

30
Chapter 2 Exchange 2016 Prerequisites

Note
You also can use cmdlet as follow to check the Active Directory and Domain Controller
information.
Get-ADForest

Get-ADDomainController | Select Name,OperatingSystem

5. Download Cumulative Update 7 for Exchange Server 2016 (KB4018115) from link

https://www.microsoft.com/en-us/download/details.aspx?id=55953
31
Chapter 2 Exchange 2016 Prerequisites

6. Open a Windows Command Prompt as administrator and go to Exchange Server 2016


Cumulative Update 7 installation file folder.
7. Run the following command to extend the schema.

Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms

8. Run the following command to Prepare Active Directory.

Setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms

32
Chapter 2 Exchange 2016 Prerequisites

9. Run the following command to Prepare Active Directory domains

Setup.exe /PrepareAllDomains /IacceptExchangeServerLicenseTerms

33
Chapter 2 Exchange 2016 Prerequisites

10. You can review settings via ADSI EDIT tool and make sure everything is correct.

Exchange rangeUpper objectVersion objectVersion


version

Naming Schema Default Configuration


context

Container ms-Exch- Microsoft CN=<your


Schema- Exchange System organization>,
Version-Pt Objects CN=Microsoft
Exchange,
CN=Services,
CN=Configuration,
DC=<domain>

13236
Exchange 15332 16213
2016 CU7

34
Chapter 2 Exchange 2016 Prerequisites

13236
Exchange 15330 16213
2016 CU6

13236
Exchange 15326 16213
2016 CU5

13236
Exchange 15326 16213
2016 CU4

13236
Exchange 15326 16212
2016 CU3

13236
Exchange 15325 16212
2016 CU2

13236
Exchange 15323 16211
2016 CU1

13236
Exchange 15317 16210
2016 RTM

13236
Exchange 15317 16041
2016 Preview

35
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

Chapter 3

Deploy Exchange Server 2016


Mailbox Role Server

1. Login exchange 2016 server


2. Open Windows command prompt as administrator
3. Run follow command to install Exchange Server 2016 Mailbox Role

Setup.exe /mode:Install /r:MB /IAcceptExchangeServerLicenseTerms

36
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

37
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

Note
Please make sure you are using the correct .Net Framework with
exchange 2016 version. It will happen error message as follow when they are
not match.

4. Restart exchange 2016 server after deployment finish.

38
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

Deployment of Certificates

We can re-use existing SSL certificate for new Exchange 2016 server.

1. Logon to Exchange 2010 Server.

2. Go to Exchange Management Console, expand Microsoft Exchange On-Premises.

3. In the Console tree, click Server Configuration.

4. Select exchange CAS/HUB server and click certificate which use for exiting exchange
services.

5. On the Action pane select Export Exchange Certificate….

39
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

6. On the Export Exchange Certificate page, click Browse...

7. On the Save As page, select path and type file name and then click Save.

40
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

8. On Export Exchange Certificate page, type password and then click Export.

41
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

9. On the Completion page, click Finish.

42
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

10. Copy certificate file from exchange 2010 server to exchange 2016 server.

11. Login to Exchange 2016 server.

12. Open Exchange Administrative Center, select Continue to this website (not
recommended).

43
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

13. On the Exchange Admin Center page, type user name and password and then click sign
in.

14. On the Exchange admin center page, click servers.

44
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

15. Select certificates and then click and then select Import Exchange Certificate.

16. On the import Exchange certificate page, type certificate file name from a UNC path
and password and then click Next.

45
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

17. On the Specify the servers where you want to install the certificate page, click +.

46
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

18. Select server form list, click add and then click OK.

47
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

19. On the Specify the servers where you want to install the certificate page, click Finish.

48
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

49
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

Note
Run follow cmdlet to use the Exchange Management Shell to import a
certificate on an Exchange server.
Import-ExchangeCertificate -FileName \\localhost\c$\post-
install\certificate\gdmexternal.pfx -Password (ConvertTo-
SecureString -String 'super$2013' -AsPlainText -Force) -
PrivateKeyExportable $true -Server GDMEX02

You need to write down the Thumbprint if you would like to assign exchange
services for this certificate via cmdlet.

20. On the certificates page, select new add certificate and the click .

50
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

21. Select services, click SMTP, IIS (specify the exchange services that you want to assign
this certificate) and then click Save.

51
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

22. On the Warning page, click Yes.

52
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

53
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

Note
Run follow cmdlet to use the Exchange Management Shell to assign
Exchange services to a certificate on an Exchange server.
Enable-ExchangeCertificate -Thumbprint
E6195C7F197AAD4C3E087C976EB9B0BC744D21C5 -Services SMTP,IIS -
Server GDMEX02

Run follow cmdlet to verify that you have successfully assigned a certificate to one
or more Exchange services.
Get-ExchangeCertificate | Format-List
FriendlyName,Subject,CertificateDomains,Thumbprint,Services

54
Chapter 3 Deploy Exchange Server 2016 Mailbox Role Server

55
Chapter 4 Configure Exchange Server 2016

Chapter 4

Configure Exchange Server


2016

Verify Existing Client Access Namespaces


It’s a good time to verify the Namespace configuration and correct them if there are any
misconfigured namespaces.

56
Chapter 4 Configure Exchange Server 2016

57
Chapter 4 Configure Exchange Server 2016

1. Login to Exchange 2010 server.

2. Open Exchange Management Shell

3. Run follow cmdlet to check outlook Anywhere namespace

Get-OutlookAnywhere | Select Server,Internalhostname,Externalhostname |


Fl

58
Chapter 4 Configure Exchange Server 2016

Note
If upgrading from exchange 2010. Outlook Anywhere must be enabled and
IIS Authentication Must be configured for co-existence, run follow cmdlet to enable
Outlook Anywhere and configure IIS Authentication.
Get-ExchangeServer | Where {($_.AdminDisplayVersion -Like
"Version 14*") -And ($_.ServerRole -Like "*ClientAccess*")} |
Get-ClientAccessServer | Where {$_.OutlookAnywhereEnabled -Eq
$False} | Enable-OutlookAnywhere -ClientAuthenticationMethod
Basic -SSLoffloading $False -ExternalHostName
mail.gooddealmart.ca -IISAuthenticationMethod NTLM,Basic

Run follow cmdlet to configure IIS Authentication if Outlook Anywhere already


enabled.
Get-ExchangeServer | Where {($_.AdminDisplayVersion -Like
"Version 14*") -And ($_.ServerRole -Like "*ClientAccess*")} |
Get-ClientAccessServer | Where {$_.OutlookAnywhereEnabled -Eq
$True} | ForEach {Set-OutlookAnywhere "$_\RPC (Default Web
Site)" -ClientAuthenticationMethod Basic -SSLoffloading $False
-ExternalHostName mail.gooddealmart.ca -
IISAuthenticationMethod Basic}

4. Run follow cmdlet to check OWA Virtual Directory

Get-OWAVirtualDirectory -ADPropertiesOnly | Select


Server,Internalurl,Externalurl | Fl
59
Chapter 4 Configure Exchange Server 2016

Note
Run follow cmdlet to change settings.
Get-OWAVirtualDirectory -Server GDMEX01 | Set-
OWAVirtualDirectory -ExternalUrl mail.gooddealmart.ca/owa
-InternalUrl mail.gooddealmart.ca/owa

5. Run follow cmdlet to check ECP Virtual Directory

Get-ECPVirtualDirectory -ADPropertiesOnly | Select


Server,Internalurl,Externalurl | Fl

60
Chapter 4 Configure Exchange Server 2016

Note
Run follow cmdlet to change settings.
Get-ECPVirtualDirectory -Server GDMEX01 | Set-
ECPVirtualDirectory -ExternalUrl mail.gooddealmart.ca/ecp
-InternalUrl mail.gooddealmart.ca/ecp

6. Run follow cmdlet to check OAB Virtual Directory

Get-OABVirtualDirectory -ADPropertiesOnly | Select


Server,Internalurl,Externalurl | Fl

Note
Run follow cmdlet to change settings.
Get-OABVirtualDirectory -Server GDMEX01 | Set-
OABVirtualDirectory -ExternalUrl mail.gooddealmart.ca/OAB
-InternalUrl mail.gooddealmart.ca/OAB

7. Run follow cmdlet to check WebServices Virtual Directory


61
Chapter 4 Configure Exchange Server 2016

Get-WebServicesVirtualDirectory -ADPropertiesOnly | Select


Server,Internalurl,Externalurl | Fl

Note
Run follow cmdlet to change settings.
Get-WebServicesVirtualDirectory -Server GDMEX01 | Set-
WebServicesVirtualDirectory -ExternalUrl
mail.gooddealmart.ca/EWS/Exchange.asmx -InternalUrl
mail.gooddealmart.ca/EWS/Exchange.asmx

8. Run follow cmdlet to check ActiveSync Virtual Directory

Get-ActiveSyncVirtualDirectory -ADPropertiesOnly | Select


Server,Internalurl,Externalurl | Fl

62
Chapter 4 Configure Exchange Server 2016

Note
Run follow cmdlet to change settings.
Get-ActiveSyncVirtualDirectory -Server GDMEX01 | Set-
ActiveSyncVirtualDirectory -ExternalUrl
mail.gooddealmart.ca/Microsoft-Server-ActiveSync -InternalUrl
mail.gooddealmart.ca/Microsoft-Server-ActiveSync

9. Run follow cmdlet to check ClientAccessServer Virtual Directory

Get-ClientAccessServer | Select Identity,AutodiscoverServiceInternaluri

63
Chapter 4 Configure Exchange Server 2016

Note
Run follow cmdlet to change settings.
Set-ClientAccessServer -Identity GDMEX01 -
AutodiscoverServiceInternalUri
https://mail.gooddealmart.ca/Autodiscover/Autodiscover.xml

Configuring the Autodiscover Services Connection Point (SCP)


for Exchange 2016 Server

1. Login to Exchange 2016 server.

2. Open Exchange Management Shell

3. Run follow cmdlet to check the existing Autodiscover SCP settings.

Get-ClientAccessService -Identity GDMEX02 | Select


Name,AutodiscoverServiceInternalUri | Fl

4. Run follow cmdlet to update Autidiscover SCP

Set-ClientAccessService -Identity GDMEX02 -AutoDiscoverServiceInternalUri


https://mail.gooddealmart.ca/Autodiscover/Autodiscover.xml

64
Chapter 4 Configure Exchange Server 2016

Configuring the Client Access Namespaces for Exchange 2016


Server

1. Login Exchange 2016 Server.

2. Open Exchange Management Shell

3. Run follow cmdlet to change namespaces settings.

$ExternalHostname = “mail.gooddealmart.ca”

$InternalHostname = “mail.gooddealmart.ca”

$Servername = “GDMEX02”

Get-OWAVirtualDirectory -Server $Servername | Set-OWAVirtualDirectory -


ExternalUrl https://$ExternalHostname/owa -InternalUrl
https://$InternalHostname/owa

Get-ECPVirtualDirectory -Server $Servername | Set-ECPVirtualDirectory -


ExternalUrl https://$ExternalHostname/ecp -InternalUrl
https://$InternalHostname/ecp

Get-ActiveSyncVirtualDirectory -Server $Servername | Set-


ActiveSyncVirtualDirectory -ExternalUrl
https://$ExternalHostname/Microsoft-Server-ActiveSync -InternalUrl
https://$InternalHostname/Microsoft-Server-ActiveSync

Get-WebServicesVirtualDirectory -Server $Servername | Set-


WebServicesVirtualDirectory -ExternalUrl
https://$ExternalHostname/EWS/Exchange.asmx -InternalUrl
https://$InternalHostname/EWS/Exchange.asmx

65
Chapter 4 Configure Exchange Server 2016

Get-OABVirtualDirectory -Server $Servername | Set-OABVirtualDirectory -


ExternalUrl https://$ExternalHostname/OAB -InternalUrl
https://$InternalHostname/OAB

Get-MapiVirtualDirectory -Server $Servername | Set-MapiVirtualDirectory -


ExternalUrl https://$ExternalHostname/mapi -InternalUrl
https://$InternalHostname/Mapi

Get-OutlookAnywhere -Server $Servername | Set-OutlookAnywhere -


ExternalHostname $ExternalHostname -InternalHostname $InternalHostname -
ExternalClientsRequireSsl $true -InternalClientsRequireSsl $true -
DefaultAuthenticationMethod NTLM

Testing the Client Access Namespaces

We can use a host to test with pilot users and make sure there are no issues.

1. Login to a pilot user’s desktop.

2. Open hosts file from c:\Windows\System32\drivers\etc

3. Add mail.gooddealmart.ca map to the IP of exchange 2016 server, save and then close
the hosts file
66
Chapter 4 Configure Exchange Server 2016

4. Open outlook from the desktop of pilot user and make sure there are no issues.

Cut Over the Client Access namespace to Windows 2016

1. Login to Domain Controller Server and make DNS change for internal clients

2. Open DNS Manager tool

3. Select View and click Advanced

67
Chapter 4 Configure Exchange Server 2016

4. Change mail.gooddealmart.ca IP address to the same as Exchange 2016 server.

5. Change the TTL from 1 HH to 1 MM and then click OK

6. Change autodiscover.gooddealmart.ca IP address to the same as Exchange 2016 server

7. Change the TTL from 1 HH to 1 MM and then click OK


68
Chapter 4 Configure Exchange Server 2016

8. Change firewall NAT settings for external clients, make sure change the NAT map form
exchange 2010 to exchange 2016 server

Configuring New Offline Address Book for Exchange 2016 Server

1. Login to Exchange 2016 Server

2. Open Exchange Management Shell

3. Run follow cmdlet to create a new Offline Address Book and set it as Default

New-OfflineAddressBook -Name “OAB2016” -AddressLists “\Default Global


Address List”

69
Chapter 4 Configure Exchange Server 2016

4. Run follow cmdlet to check OAB Status

Get-OfflineAddressBook

70
Chapter 4 Configure Exchange Server 2016

Configuring Receive Connectors for Exchange 2016 server

We need to check the existing Receive Connectors of exchange 2010 server, and then create
them at exchange 2016 server.

1. Login to exchange 2016 server

2. Open Exchange Administrative Center

3. On the Exchange admin center, select mail flow and then click receive connectors.

4. Select Exchange 2016 server from Select server:

71
Chapter 4 Configure Exchange Server 2016

5. Click + and give the name of the receive connector.

6. Select Frontend Transport Role and select Customize as type and then click Next.

72
Chapter 4 Configure Exchange Server 2016

7. On the Network adapter binding, keep the default IP ADDRESS and port 25 settings,
click Next.

73
Chapter 4 Configure Exchange Server 2016

8. On the Remote network settings, click – to remove the default IP ADDRESS and click +
to add IP address that the receive connector will accept mail and then click Finish.

74
Chapter 4 Configure Exchange Server 2016

9. Double-click the new receive connector, select security.

10. Check the existing receive connector settings and select the same settings at
Authentication and Permission groups and then click Save.

75
Chapter 4 Configure Exchange Server 2016

11. Repeat steps to create all existing receive connectors.

76
Chapter 4 Configure Exchange Server 2016

Change Outbound Mail flow Routing (Send Connectors)

We will change the SMTP out bound email flow from the old exchange 2010 server to exchange
2016 server.

1. Login to Exchange 2016 Server.

2. Open Exchange Administrative Center.

3. On the Exchange admin center, select mail flow and then click send connectors.

4. Double-click the existing send connector and select scoping.

77
Chapter 4 Configure Exchange Server 2016

5. On the Source server: , click – to remove exchange 2010 server and click + to add
exchange 2016 server and then click Save.

78
Chapter 4 Configure Exchange Server 2016

79
Chapter 5 Connectivity and Mail Flow Test

Chapter 5

Connectivity and Mail Flow


Test

Microsoft Remote Connectivity Analyzer a very good tool to test connectivity and mail flow.

Outlook Connectivity Test

1. Open Microsoft Remote Connectivity Analyzer tool via http://exrca.com.

2. Select Exchange Server and click Outlook Connectivity and then click Next.

3. Fill in all information and click Perform Test.

80
Chapter 5 Connectivity and Mail Flow Test

4. Make sure that The Outlook connectivity test completed successfully.

81
Chapter 5 Connectivity and Mail Flow Test

82
Chapter 5 Connectivity and Mail Flow Test

Note
If Connectivity test failed, you need to Expand All and figure out the error and then fix
it, for this case, it’s Testing HTTP Authentication Method test failed, Run follow cmdlet to
verify and change settings.
Get-OutlookAnywhere | FT Identity,*auth* -AutoSize

Set-OutlookAnywhere -Identity "GDXEX02\rpc (Default Web Site)" -


IISAuthenticationMethods Basic

83
Chapter 5 Connectivity and Mail Flow Test

You may need to reboot Exchange servers

Outlook Autodiscover Connectivity Test

1. Open Microsoft Remote Connectivity Analyzer tool via http://exrca.com

2. Select Exchange Server and click Outlook Autodiscover and then click Next.

3. Fill in all information and click Perform Test.

84
Chapter 5 Connectivity and Mail Flow Test

4. Make sure that The Outlook Autodiscover test completed successfully.

85
Chapter 5 Connectivity and Mail Flow Test

Exchange ActiveSync Connectivity Test

1. Open Microsoft Remote Connectivity Analyzer tool via http://exrca.com

2. Select Exchange Server and click Exchange ActiveSync and then click Next.

3. Fill in all information and click Perform Test.

86
Chapter 5 Connectivity and Mail Flow Test

4. Make sure that Exchange ActiveSync was tested successfully.

87
Chapter 5 Connectivity and Mail Flow Test

Note
If Connectivity test failed, you need to Expand All and figure out the errors and then
fix it, in this case, the error is Exchange ActiveSync returned an HTTP 500 response (Internal
Server Error), Run follow steps to fixed it.

1. Open Active Directory Users and Computers, right-click the test user name
and then select Properties.

88
Chapter 5 Connectivity and Mail Flow Test

2. On the Properties page, select Security and then click Advanced.

89
Chapter 5 Connectivity and Mail Flow Test

3. On the Advanced Security Settings page, click Enable inheritance and then
click Apply.

90
Chapter 5 Connectivity and Mail Flow Test

4. On the Permissions Warning page, click Yes and then click OK.

91
Chapter 5 Connectivity and Mail Flow Test

5. Go to Exchange Remote Connectivity Analyzer tool and run test again.

Exchange ActiveSync Autodiscover Connectivity Test

1. Open Microsoft Remote Connectivity Analyzer tool via http://exrca.com.

2. Select Exchange Server and click Exchange ActiveSync Autodiscover and then click
Next.

3. Fill in all information and click Perform Test.

92
Chapter 5 Connectivity and Mail Flow Test

4. Make sure that Autodiscover was successfully tested for Exchange ActiveSync.

93
Chapter 5 Connectivity and Mail Flow Test

Exchange Web Services Connectivity Test – Synchronization,


Notification, Availability, and Automatic Replies

1. Open Microsoft Remote Connectivity Analyzer tool via http://exrca.com.

2. Select Exchange Server and click Synchronization, Notification, Availability, and


Automatic Replies and then click Next.

3. Fill in all information and click Perform Test.

94
Chapter 5 Connectivity and Mail Flow Test

4. Make sure that Tests of all Exchange Web Services tasks completed successfully.

Testing Inbound Mail Flow

1. Open Microsoft Remote Connectivity Analyzer tool via http://exrca.com.

2. Select Exchange Server and click Inbound SMTP Email and then click Next.

95
Chapter 5 Connectivity and Mail Flow Test

3. Fill in all information and click Perform Test.

4. Make sure that Inbound SMTP mail flow was verified successfully.

96
Chapter 5 Connectivity and Mail Flow Test

5. Make sure the test user received a Microsoft Remote Connectivity Analyzer Test
Message.

6. Open the message in its own window.

7. On the File tab, select Properties.

97
Chapter 5 Connectivity and Mail Flow Test

8. Header information appears in the Internet headers box, select and copy all Internet
headers.

9. Open Microsoft Remote Connectivity Analyzer tool via http://exrca.com

10. Select Message Analyzer, paste Internet headers and click Analyze headers.
98
Chapter 5 Connectivity and Mail Flow Test

11. Review the Inbound mail flow.

99
Chapter 5 Connectivity and Mail Flow Test

Testing Outbound Mail Flow

1. Open Microsoft Remote Connectivity Analyzer tool via http://exrca.com

2. Select Exchange Server and click Outbound SMTP Email and then click Next.

3. Fill in all information and click Perform Test.

4. Make sure that Outbound SMTP Test was successfully.

100
Chapter 5 Connectivity and Mail Flow Test

5. Logon outlook with test user account.

6. Send an email to outside Gmail account.

7. Login Gmail Account and open the email and select Show original.

101
Chapter 5 Connectivity and Mail Flow Test

8. Select and copy all Internet headers.

9. Open Microsoft Remote Connectivity Analyzer tool via http://exrca.com.

10. Select Message Analyzer, paste Internet headers and click Analyze headers.

102
Chapter 5 Connectivity and Mail Flow Test

11. Review the Outbound mail flow.

103
Chapter 6 Post-Configuration Steps

Chapter 6

Post-Configuration Steps

Configuring the Default Mailbox Database for


Exchange Server 2016

1. Logon Exchange 2016 Server, open Exchange Management Shell.

2. Get all mailbox databases information via follow cmdlet.


Get-MailboxDatabase -IncludePreExchange2013

3. Change the Default Mailbox Database name via follow cmdlet.


Set-MailboxDatabase “Mailbox Database 1278187797” -Name DB01-2016

104
Chapter 6 Post-Configuration Steps

4. Run follow cmdlet to check Mailbox Database path.


Get-MailboxDatabase DB01-2016 | Fl *path*

5. Run follow cmdlet to move Mailbox Database to right path.


Move-DatabasePath -Identity DB01-2016 -EdbFilePath E:\DB01-2016\DB01-
2016_DB\DB01-2016.edb -LogFolderPath E:\DB01-2016\DB01-2016_LOGS

105
Chapter 6 Post-Configuration Steps

Create a New Mailbox Database

1. Logon Exchange 2016 Server, open Exchange Management Shell.

2. Run follow cmdlet to create a new Mailbox Database.

New-MailboxDatabase -Name DB02-2016 -Server GDMEX02 -EdbFilePath E:\DB02-


2016\DB02-2016_DB\DB02-2016.edb -LogFolderPath E:\DB02-2016\DB02-
2016_LOGS

3. Restart the Microsoft Exchange Information Store Service.

106
Chapter 6 Post-Configuration Steps

4. Run follow cmdlet to mount Mailbox Database.

Mount-Database -Identity DB02-2016

Configuring Mailbox Database Quota

To further verify that you have the same Quota settings for all Mailbox Database.

1. Logon Exchange 2016 Server, open Exchange Management Shell.

107
Chapter 6 Post-Configuration Steps

2. Run follow cmdlet to check Mailbox Database Quota settings.

Get-MailboxDatabase -IncludePreExchange2013 | Select


Name,IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota

3. Run follow cmdlet to change Mailbox Database Quota settings.

Get-MailboxDatabase -Server GDMEX02 | Set-MailboxDatabase –


IssueWarningQuota 15GB –ProhibitSendQuota 16GB -ProhibitSendReceiveQuota
20GB

Configuring Offline Address Book

1. Logon Exchange 2016 Server, open Exchange Management Shell.

2. Run follow cmdlet to check Mailbox Database Offline Address Book settings.

108
Chapter 6 Post-Configuration Steps

Get-MailboxDatabase -IncludePreExchange2013 | Select Name,offline*

Get-OfflineAddressBook

3. Run follow cmdlet to change Mailbox Database Offline Address Book settings.

Get-MailboxDatabase -Server GDMEX02 | Set-MailboxDatabase -


OfflineAddressBook “OAB2016”

Migrate Arbitration Mailboxes

1. Logon Exchange 2016 Server, open Exchange Management Shell.


109
Chapter 6 Post-Configuration Steps

2. Run follow cmdlet to check Arbitration Mailboxes.

Get-Mailbox -Arbitration | Select Name,Database

3. Run follow cmdlet to move Arbitration Mailboxes.

Get-Mailbox -Arbitration |New-MoveRequest

4. Run follow cmdlet to check Arbitration Mailboxes move Statistics.

Get-MoveRequest | Get-MoveRequestStatistics

110
Chapter 6 Post-Configuration Steps

111
Chapter 7 Mailbox Migration

Chapter 7

Mailbox Migration
Migrate Pilot mailboxes via Exchange Administrative Center

1. Logon Exchange 2016 Server, open Exchange Administrative Center.

2. On the Exchange admin center page, select recipients.

3. Select Migration, click + sign and select Move to a different database.

112
Chapter 7 Mailbox Migration

4. Click Select the users that you want to move and click + sign.

5. On Select Mailbox page, Select Pilot users, click Add, click OK and then click Next.

113
Chapter 7 Mailbox Migration

6. On the Move configuration page, enter New migration batch name and select
others required options, click Next.

114
Chapter 7 Mailbox Migration

7. On the Start the batch page, select recipients to receive the report after batch
complete, click new.

115
Chapter 7 Mailbox Migration

8. Wait until status is completed and the user will receive complete report.

116
Chapter 7 Mailbox Migration

117
Chapter 8 Public Folder Migration

Chapter 8

Public Folder Migration

There is no more legacy public folder database, public folder mailboxes also knows as modern
public folders, if you still need public folders, migrate them to Exchange 2016.

Public folder migration is a one-way process, if something goes wrong, you can roll back but any
changes made since the migration will be lost.

1. Login Exchange 2010 Server


2. Download all scripts and supporting files from following link and save to c:\post-
install\pfscripts.
https://www.microsoft.com/en-us/download/details.aspx?id=38407

118
Chapter 8 Public Folder Migration

119
Chapter 8 Public Folder Migration

3. Open Exchange Management Shell.


4. Run the following command to take a snapshot of the original source public folder
structure.

Get-PublicFolder -Recurse | Export-CliXML C:\Post-


Install\PFMigration\Legacy_PFStructure.xml

5. Run the following command to take a snapshot of public folder statistics such as
item count, size, and owner.

Get-PublicFolderStatistics | Export-CliXML C:\Post-


Install\PFMigration\Legacy_PFStatistics.xml

120
Chapter 8 Public Folder Migration

6. Run the following command to take a snapshot of the permissions.

Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-


Object Identity,User -ExpandProperty AccessRights | Export-CliXML
C:\Post-Install\PFMigration\Legacy_PFPerms.xml

121
Chapter 8 Public Folder Migration

7. If the name of a public folder contains a backslash \, the public folders will be
created in the parent public folder when migration occurs. Before you migrate,
we recommend that you rename any public folders that have a backslash in the
name. Run the following command to locate public folders that have a backslash
in the name.

Get-PublicFolderStatistics -ResultSize Unlimited | Where {$_.Name -like


"*\*"} | Format-List Name, Identity

122
Chapter 8 Public Folder Migration

8. If any public folders are returned, you can rename them by running the following
command.

Set-PublicFolder -Identity <public folder identity> -Name <new public


folder name>

9. To make sure there isn’t a previous record of a successful migration, run following
cmdlet to check the public folder migration status.

Get-OrganizationConfig | Format-List PublicFoldersLockedforMigration,


PublicFolderMigrationComplete

123
Chapter 8 Public Folder Migration

10. If the status of the PublicFoldersLockedforMigration or


PublicFolderMigrationComplete properties is $true, run the following command to
set the value to $false.

Set-OrganizationConfig -PublicFoldersLockedforMigration:$false -
PublicFolderMigrationComplete:$false

11. Login to Exchange 2016 server.


12. Open Exchange Management Shell.
13. Run the following command to discover any existing serial migration requests.

Get-PublicFolderMigrationRequest | Get-
PublicFolderMigrationRequestStatistics -IncludeReport | Format-List

124
Chapter 8 Public Folder Migration

14. Run the following command to removes any existing public folder serial migration
requests.

Get-PublicFolderMigrationRequest | Remove-PublicFolderMigrationRequest

15. Run the following command to discover any existing batch migration requests.

Get-MigrationBatch | where {$_.MigrationType.ToString() -eq


"PublicFolder"}

16. Run the following command to remove any existing batch migration requests.

$batch = Get-MigrationBatch | where {$_.MigrationType.ToString() -eq


"PublicFolder"}

$batch | Remove-MigrationBatch -Confirm:$false

17. Run the following command to make sure no public folder mailboxes exist on the
exchange 2016 server.

Get-Mailbox -PublicFolder

125
Chapter 8 Public Folder Migration

18. If the command returned any public folders, run the following command to see if
any public folders exist

Get-PublicFolder

19. If you have any public folders, run the following commands to remove them. Make
sure you've saved any information that was in the public folders.

Get-Mailbox -PublicFolder | Where{$_.IsRootPublicFolderMailbox -eq


$false} | Remove-Mailbox -PublicFolder -Force -Confirm:$false

Get-Mailbox -PublicFolder | Remove-Mailbox -PublicFolder -Force -


Confirm:$false

20. Login to Exchange 2010 Server.


21. Open Exchange Management Shell as local administrator
22. Run the Export-PublicFolderStatistics.ps1 script to create the folder name-to-
folder size mapping csv file.

.\Export-PublicFolderStatistics.ps1 C:\Post-
Install\PFMigration\PFSizeMap.csv GDMEX01.gooddealmart.ca

126
Chapter 8 Public Folder Migration

23. Run the PublicFolderToMailboxMapGenerator.ps1 script to create the public


folder-to-mailbox mapping file. This file is used to calculate the correct number of
public folder mailboxes on the Exchange 2016 Mailbox server.

127
Chapter 8 Public Folder Migration

.\PublicFolderToMailboxMapGenerator.ps1 20000000000 C:\Post-


Install\PFMigration\PFSizeMap.csv C:\Post-
Install\PFMigration\PFMailboxMap.csv

128
Chapter 8 Public Folder Migration

Note:
Maximum mailbox size in bytes = 20000000000, the value 20000000000 is used to
represent 20 GB
Folder to size map path = C:\Post-Install\PFMigration\PFSizeMap.csv

Folder to mailbox map path = C:\Post-Install\PFMigration\PFMailboxMap.csv

24. Open PFMailboxMap.csv file and change “Mailbox1” to “PFMailbox1” and then
save.

129
Chapter 8 Public Folder Migration

25. Copy C:\Post-Install\pfscripts and C:\Post-Install\PFMigration folders from


exchange 2010 server to exchange 2016 server.
26. Login to Exchange 2016 server.
27. Copy PFMailboxMap.csv and PFSizeMap.csv files from C:\Post-Install\PFMigration
to C:\Post-Install\pfscripts folder.
28. Open Exchange Management Shell.
29. Run the following command to create the target public folder mailboxes.

.\Create-PublicFolderMailboxesForMigration.ps1 -FolderMappingCsv
PFMailboxMap.csv -EstimatedNumberOfConcurrentUsers:200

Note:

30. Run the following command to create the migration batch.

130
Chapter 8 Public Folder Migration

New-MigrationBatch -Name PFMigration -SourcePublicFolderDatabase (Get-


PublicFolderDatabase -Server GDMEX01) -CSVData (Get-Content C:\Post-
Install\PFMigration\PFMailboxMAP.csv -Encoding Byte) -NotificationEmails
csun@gooddealmart.ca

31. Run the following command to start the migration.

Start-MigrationBatch PFMigration

131
Chapter 8 Public Folder Migration

32. Open Exchange Admin Center and click recipients and then select migration, you
will see the PFMigration batch status change to Syncing now.

132
Chapter 8 Public Folder Migration

33. Once InitialSync is complete, the status will show Synced.

133
Chapter 8 Public Folder Migration

34. We are going to lock and complete the public folder for migration
(downtime required)
35. Login to Exchange 2010 Server.
36. Open Exchange Management Shell as local administrator
37. Run the following command to lock the legacy public folders for
finalization.
Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

38. Login to Exchange 2016 Server.


39. Open the Exchange Management Shell on your Exchange 2016 server.
40. Run the following command to change the Exchange 2016 deployment
type to Remote.
Set-OrganizationConfig -PublicFoldersEnabled Remote

134
Chapter 8 Public Folder Migration

41. Run the following command to complete the public folder migration.
Complete-MigrationBatch PFMigration

42. If the final synchronization is successful, the public folders on the


Exchange 2016 server will be unlocked and the status of the migration
batch will change to Completing, and then Completed.

135
Chapter 8 Public Folder Migration

43. Run the following command to assign some test mailboxes to use any
newly migrated public folder mailbox as the default public folder
mailbox.

Set-Mailbox -Identity GDMUSER2 -DefaultPublicFolderMailbox


PFMailbox1

136
Chapter 8 Public Folder Migration

44. If everything looks okay, run the following command to unlock the
public folders for all other users.
Get-Mailbox -PublicFolder | Set-Mailbox -PublicFolder -
IsExcludedFromServingHierarchy $false

45. Login to Exchange 2010 Server.


46. Open Exchange Management Shell as local administrator.
47. Run the following command to indicate that the public folder migration
is complete.
Set-OrganizationConfig -PublicFolderMigrationComplete:$true

137
Chapter 8 Public Folder Migration

48. Login to Exchange 2016 Server.


49. Open the Exchange Management Shell on your Exchange 2016 server.
50. Run the following command on the Exchange 2016 server.
Set-OrganizationConfig -PublicFoldersEnabled Local

51. Run following command on the Exchange 2016 and compare files
contents with previously files and verify success.

Get-PublicFolder -Recurse | Export-CliXML C:\Post-


Install\PFMigration\EX2016_PFStructure.xml

Get-PublicFolderStatistics -ResultSize Unlimited | Export-CliXML


C:\Post-Install\PFMigration\Ex2016_PFStatistics.xml

Get-PublicFolder -Recurse | Get-PublicFolderClientPermission |


Select-Object Identity,User -ExpandProperty AccessRights | Export-
CliXML C:\Post-Install\PFMigration\Ex2016_PFPerms.xml

Well that wraps up this amazing book on Exchange 2010 to Exchange 2016 migration. Stay
tuned as in our next book we will Migrate this Exchange 2016 environment to Office 365.
138
Chapter 8 Public Folder Migration

139
Contact Us Join us at MVPDays and meet great MVP’s like this in person

Contact Us

Join us at MVPDays and meet


great MVP’s like this in
person
If you liked their book, you will love to hear them in person.

Live Presentations
Dave frequently speaks at Microsoft conferences around North America, such as TechEd,
VeeamOn, TechDays, and MVPDays Community Roadshow.

Cristal runs the MVPDays Community Roadshow.

You can find additional information on the following blog:

www.checkyourlogs.net

www.mvpdays.com

Video Training
For video-based training, see the following site:

www.mvpdays.com

140
Contact Us Join us at MVPDays and meet great MVP’s like this in person

Live Instructor-led Classes


Dave has been a Microsoft Certified Trainer (MCT) for more than 15 years and presents
scheduled instructor-led classes in the US and Canada. For current dates and locations, see the
following sites:

 www.truesec.com

 www.checkyourlogs.net

Consulting Services
Dave and Cristal have worked with some of the largest companies in the world and have a
wealth of experience and expertise. Customer engagements are typically between two weeks
and six months.

141
Contact Us Join us at MVPDays and meet great MVP’s like this in person

Twitter
Dave, Cristal, Émile, and Cary on Twitter tweet on the following aliases:

 Dave Kawula: @DaveKawula

 Cristal Kawula: @SuperCristal1

 Émile Cabot: @Ecabot

 Cary Sun: @SifuSun

142