3. Code of Conduct
As event and experience organizers, we seek to provide a respectful, friendly, professional experience for
everyone, regardless of gender, sexual orientation, physical appearance, disability, age, race or religion.
We do not tolerate any behavior that is degrading to any gender, race, sexual orientation, or disability, or any
behavior that would be deemed harassment or discrimination.
Individuals are responsible for knowing and abiding by our standards and we encourage everyone to assist in
creating a welcoming and safe environment. Please report any concerns, suspicious or disruptive activity or
behavior to the organizing team, so that we can address the issue immediately.
More information can be found on the CollabDays Benelux website at
https://www.collabdays.org/2020-benelux-online/about/
4. A brief personal introduction
• Working in technology since 1999
• Currently as a Cloud Solution Architect at Wortell, which is an awesome
company
• Previously: Pink Elephant, PinkRoccade, Getronics, Ordina, KPN
Consulting & ETTU
• Crazy about technology that connects people
• Focus on Business & IT Alignment:
o Governance & security
o Use of Best practices
• Certified Microsoft Office 365 technology expert
• Proudly addicted to (large-scale) migrations ☺
Andries.den.Haan@wortell.nl
Twitter: @awdhaan
Blog: www.tribework.nl
5. What you can expect from this session
Focus on technology
opposed to other
project streams
Fuzzy blend of slides
& demos when
you’re neck-deep
into migrations
Inspiration on how to
handle and admin
your large-scale
scenarios
Getting the latest
info on what is
happening around
tools and approaches
(excluding Mover)
Sharing some
experiences from
previous projects
This is not a 101
session
Advice from the
Microsoft and
ShareGate product
teams
Some (PnP)
PowerShell, fun and
interaction! ☺
6. Session agenda
• Getting the best migration performance
• Gathering metrics from your migrations
• How to proof migrations were done in full
• Automating like a boss
• Tenant-2-tenant migrations for Microsoft Teams.
7. Some fundamental
recommendations
• Choose the right tool for the job (the list below is based on previous experiences):
• SharePoint Migration Tool (SharePoint, file shares, PowerShell-driven)
• Migration Manager (file shares, scalable, new features coming later)
• Migrate through the SharePoint Online PowerShell module > Walkthrough
• ShareGate:Desktop
• AP Elements Fly
• Register ShareGate:Desktop (if used) as an Azure AD Desktop application
• Also use PnP PowerShell Azure AD App registration (which is now super easy) for improved
performance during pre- or postmigration actions (also to workaround ADFS/MFA-issues) -> Demo
8. PnP PowerShell Azure AD App registration Demo summary
• Use the latest PnP PowerShell release which includes a bug fix when using PowerShell ISE
• Run Initialize-PnPPowerShellAuthentication as a Global Administrator
• Give consent for the required permissions
• Import the certificate into the local certificate store including the private key
• Store the Client Id and Certificate Thumb in the Windows Credential store
• Authenticate using the new Azure AD App credentials.
9. Recommendations from the Microsoft & ShareGate:Desktop product
teams:
• Limit to 200-300K files per migration to keep things manageable
during the ‘Azure hop’
• Don’t migrate large amounts to a single site. Sites per organization
(2.000.000) is sufficient, so plenty of room to split up data
• Limit the amount of simultaneous operations
• For typical office file share migrations (~1.5 MB/file), 1 TB/day should
be feasible
• Throttling is less outside of typical business hours. Daytime migration
are still possible, but with a little bit more throttling.
Sizing your migrations is key
10. Ground rules: keep it simple
• Data needs to be copied from A to B, that’s all!
• Avoid pre- or postmigration script actions to
beautify or tidy the folder structure
(especially with large-scale file shares)
• Don’t migrate (granular) permissions. People work
differently in the target-environment, so that
same applies to authorizations.
11. Incremental vs. delta-migrations?
• Incremental migrations compares each file in source and destination
which can be really time consuming with large amounts of files
• Delta migrations are faster as these use date filters to only overwrite
files that were added or modified since the last full migration.
Initial full migration “Delta” migration
Register the start time
End-users continue to work in the source environment
Migrate in “Overwrite”-mode using
the date filter
Content freeze in the source
12. Why should you care about gathering metrics
from your migrations?
• Especially relevant for large-scale migrations
• All activities cost time, but how much by average?
• How much data can be migrated within e.g. a day?
• It can help you to determine a baseline.
13. Comparing some popular tools on metrics
ShareGate:Desktop
• Summary reporting is limited
to ItemsCopied, Successes,
Warnings and Errors
• Detailed reports can become
difficult to process for large
amounts of data, although
still valuable. Especially,
when exporting to CSV.
SharePoint Migration Tool
• Summary reporting is
surprisingly useful -> Demo
• GB/Hour metric
• GB in source and migrated
• Item-level summaries are
also included -> Demo.
Migration manager
• Similar reporting as SharePoint
Migration Tool
• Currently manual download from
the SharePoint Admin Center
(this will change soon).
Migration
Manager
14. How to proof that you’re done
• In addition to migration reports, item count comparison
shows if all in scope was copied as expected
• PowerShell to the rescue as always
• Consider UNC path length limitations in scripting logic
• Consider 5.000 item query limit when programmatically
querying the list
• Distinguish between files and folders
• Use a loop and function approach to populate e.g. a csv-
based report
• Demo!
15. Automating like a boss
• Why? Because the administration
can be time consuming with large
amounts of data
• Stakeholders expect (near) real-time
progress reporting
• It should be one of your goals as a
migration admin to spend the least
amount of time on administration.
16. • Alternate approach when you are working on large-scale migrations
with 10.000’s of users and multiple Terabytes of data
• Data-model can be easily created using Visual Studio and published
to Azure
• Use common PowerShell functions to execute stored procedures to
Create, Read, Update or Delete data through PowerShell
• Link scripts to scheduled tasks
• Works when using e.g. SPMT or ShareGate as these tools have
sufficient PowerShell support
• Use email as a means of notifying the migration admin about errors
(could also be used to inform data owners on migration start/end)
• Simplified walkthrough and demo of a Data Migration Factory.
Stepping up from CSV’s to databases
18. Data Migration Factory High level architecture
• Inventory clients importing
data for each organizational
entity into the database
• Batches are created and
assigned to file shares and
migration servers to
distribute the load
• Scheduled console apps poll
the database for any batch-
items that needs to be
processed and trigger the
PowerShell scripts using the
record Id as the only
parameter
• Integrated reporting through
database queries.
Migration
database
SharePoint
2013
SharePoint
2010
Filers
Inventory clientInventory client
Migration servers
PS
SharePoint Online
Microsoft Teams
Reporting
Inventory client
19. Migrating Teams tenant-2-tenant
• Copy Channels (conversations and files), Tabs and Apps
• Some limitations apply (more on support articles):
• Migrations are limited to the last 50 messages including replies. All other messages
are stored in an HTML archive page (tab)
• Meeting URL’s are tenant-specific, so recreate meetings after migration
• Private channel (files, not conversations) can be difficult to migrate
• ShareGate is doing a great job, supports PowerShell (GUI is currently
richer) for this and will extend their capability soon:
• Choosing specific channels to migrate
• Merge into existing Teams.
20. Let’s wrap-up this session…
• Slides will be shared
• Script examples available upon request
• Check my blog for upcoming posts
• Contact me for any questions or comments ☺