I tasked myself with creating multiple Migration Batches for a planned Exchange 2013 migration. Entering each user manually through the Web Gui would be a nightmare.
I planned to create these batches based on CSV files.
1) Populate the CSV File.
I populated the files with these attributes
How you populate these files are up to you. I simply exported all MailboxStatistics, sorted by size, collected email addresses and evenly assigned new databases in a separate and then exported Batch CSV’s from the master sheet.
Note: The minimum property requirements are email address only, as you can specify other settings i.e. target database in the batch.
However, by using the TargetDatabase attribute, I can move users in a batch to different databases.
2) Create the Batch
New-MigrationBatch -Local -Name YourName -CSVData ([System.IO.File]::ReadAllBytes(“patchToYourCSVFile.csv”))
Note: As we are not specifying -Autostart or -Autocomplete, it means this won’t start automatically and when started, it won’t complete automatically.
This allows us to stage the moves by using Start-MigrationBatch and Complete-MigrationBatch like you would a MoveRequest.