This Migration Guide provides the procedures to be followed for migrating home directories from Windows File Servers to OneDrive for Business.
This strategy is only recommended when migrating a small number of home directories. When migrating a larger number of home directories, PowerShell scripts, and a CSV file can automate the process. Refer to File Server Home Directories to OneDrive for Business Migration Guide, using PowerShell for step-by-step instructions, and to obtain the scripts and CSV file.
First migration?
We’ve created a guide on scoping, planning, and managing the migration process for your use. If this is your first migration, we recommend reading this guide carefully.
MigrationWiz
MigrationWiz is a migration tool, not a syncing tool. If changes are made at the source after migration, they will not sync to the destination, nor will changes made at the destination sync to the source. We do not have “live” monitoring of changes (as with a sync agent) and we cannot handle scenarios such as conflict resolution without user interaction.
MigrationWiz supports the capability to share migration projects across a Workgroup. When the Project Sharing feature is turned on, all Agents besides those who are Inactive can view all migrations projects.
Prerequisites
Please consider meeting the following prerequisites before starting your migration process.
Licensing
We recommend that you purchase User Migration Bundle licenses for this migration scenario. User Migration Bundle licenses allow the performance of multiple migrations with a single license. For questions on licensing, visit MigrationWiz Licenses.
To use your license by following the next steps:
- Purchase Licenses.
- Create a Customer.
- Apply Licenses.
- Review Considerations.
Purchase licenses by following the steps below:
- Sign in to your BitTitan account.
- In the top navigation bar, click Purchase.
- Click the Select button and choose User Migration Bundle licenses.
- Enter the number of licenses you want to purchase. Click Buy Now.
- Enter a Billing address if applicable.
- Click Next.
- Review the Order Summary and enter a payment method.
- Click Place Your Order.
Create Customer on MSPComplete by performing these steps:
- Click the Add button in the top navigation bar
- Click the Add Customer button on the All Customers page
- Select the appropriate workgroup in the left navigation pane and click All Customers.
- Click Add Customer.
- Enter the new customer’s information in the Add Customer form. Primary Email Domain and Company Name are required. The rest are optional.
- Click Save.
- Repeat steps 1 through 4 for each customer you want to add.
Perform these steps on MSPComplete:
- Select the correct workgroup on the top of the left navigation pane.
Important
This is the workgroup which the customer and migration projects were created under. Your account must be part of the workgroup if the project was not created under your account. - Click Customers on the left navigation pane.
- Click the customer that employs the user to whom you want to use the User Migration Bundle license.
- Click the Users tab at the top of the page.
- Apply the license to the users by checking the box to the left of their emails.
- Click the Apply User Migration Bundle License button at the top of the page.
Tip
We recommend adding users to the Customer page with the vanity domain. Then apply the User Migration Bundle Licenses, before editing to show the .onmicrosoft domain, if the .onmicrosoft domain will be used for the migration. - Click Confirm if at least one unassigned User Migration Bundle license is available for each selected user.
Important
If there are no User Migration Bundle licenses currently available to be assigned and your role in the workgroup is Manager or higher, the form that appears provides all the necessary information and will walk you through the steps of purchasing User Migration Bundle licenses.
Licenses are released once payment has been received:
- Licenses are available immediately upon payment if you purchase via credit card.
- If you purchase via wire transfer (100+ licenses), the licenses will be available once payment is received and accepted.
- We do not accept purchase orders because of processing overhead.
In both cases, you will be notified by email that payment has been accepted and licenses are available in your account upon notification.
For more information on licensing, including coupon redemption and other licensing types, see our Licensing FAQ.
Limitations
Please consider the following limitations for this type of migration:
- Note that OneDrive data may not be accessible for a few days after migration, due to OneDrive's crawling and indexing process. We suggest having your users log in immediately after migration but warn them that their data may not be available immediately. For this reason, it may be best to complete the migration on a Friday so the indexing can happen over the weekend.
- We are not able to support migrations with two-factor or multifactor authentication.
Prepare the Azure Environment
- Estimate Azure storage costs. This step is optional but is useful in providing the customer with upfront storage costs ahead of time.
- Buy an Azure subscription, or use the free one-month trial ( this option is only viable if you are performing a very small migration).
- Create an Azure storage account. We recommend that you create an Azure Storage Account in the same Microsoft data center as the Destination Office 365 tenant.
- Visit https://portal.azure.com
- Click Storage accounts.
- Click Storage Create.
- Select the subscription in which you want to create the new storage account.
- Select your Resource group. Create a new one if it doesn't exist.
- Enter a name for your storage account.
- Choose your datacenter Location.
- Choose Standard performance
- In the Replication field, select Locally Redundant Storage (LRS).
- Click Review.
- Click Create.
- Once the deployment shows as complete, click on Go to resource.
- Select Access keys under "Security + Networking".
- Copy the Storage account name and the key 1. You will use this when running UploaderWiz and within the migration project.
You do not need to create any Azure containers for this migration. Separate containers are created on a per-home directory basis as they are uploaded. During migration, MigrationWiz will create two separate metadata files (with the extensions: -directory.metadata and -files.metadata), which will be added to each container. These are used during migration by MigrationWiz, to build the folder structure in OneDrive for Business and to migrate the permissions. They should not be deleted until after the migration.
Prepare Destination Environment
Please consider the following information when preparing your source environment.
- Users being migrated need to be licensed to use OneDrive in the source tenant.
- Users being migrated must not be blocked from signing into the source tenant.
- Source OneDrives must not be set to read-only. This is initially for setup. Steps for setting up for read-only can be found under the Run Verify Credentials section later in the guide.
OneDrive Prerequisites
- Create an admin account in Microsoft 365 for the migration, or use the global admin account for the tenant.
- The easiest approach to follow is to use the global admin account. This was set up at the time of tenant creation. However, if you do not wish to use this global admin account during migration, then a new user account can be created instead. This will then need to be granted full access rights to each user.
- The admin account must have a full license assigned to it, to provision OneDrive for Business profiles for each user during the migration process.
Application Permissions for OneDrive
Continue configuring your destination environment by selecting one of these application permissions options and following the steps to enable permission levels at the destination.
The easiest approach is to use the global admin account set up at the time of tenant creation. However, if you do not wish to use this global admin account during migration, then a new user account can be created instead. This user account needs to have a license assigned that includes OneDrive and be granted Site Collection Administrator privileges to OneDrive in the project.
- Create a user in Microsoft 365 and assign a license that includes SharePoint. For step-by-step instructions, see the Microsoft article Add users individually or in bulk to Office 365.
- Set the administration privileges. Grant one of the permission levels listed below to the user account to be user as the administrator for the endpoint in the project.
- Global Admin. Microsoft has instructions to set these permissions here: Assign admin roles.
- SharePoint Admin. For specific permissions and project settings to be used with a Site Collection Administrator, see MigrationWiz Permission Requirements.
- Add the admin account, created in step 2, as a Site Collection Admin to the endpoint.
Important
The Global Admin or SharePoint Admin role does not automatically grant Site Collection Administrator rights to a SharePoint or OneDrive site. - Go to MigrationWiz-SharePoint-Delegated and consent to the app access when prompted. Once you click on Accept, you will be redirected to the BitTitan login page. This is normal and the page can be closed.
BitTitan uses app-based authentication for OneDrive, providing greater security and reducing the potential of Microsoft throttling. It replaces the previous Microsoft 365 authentication, which has been subject to increased throttling by Microsoft. This app-based authentication method is specific for Microsoft 365 tenants.
- Ensure you are signed in as a Global Admin.
-
Go to MigrationWiz-SharePoint-FullControl and consent to the app access when prompted.
- Create a new Security Group named “MigrationWiz” on the Office 365 Admin Portal.
- Create a new user that is not having data migrated in the project. This account does not require any administrator roles to be assigned. If you already have an existing user, that should be fine. This user must have a SharePoint license applied.
- Add the new (or existing) user to the previously created security group as a Member. Adding it as an Owner does not work here.
- Create MigrationWiz project.
- When creating the source and destination endpoints, enter the user credentials in step 4 that correspond with the endpoint to which the user belongs.
-
Add the support option UseApplicationPermission=1 to the advanced options of the MigrationWiz project under Support Options.
If migrating to a GCC High tenant, the above steps will not work. Instead, use the following steps.
- Ensure that the service account has a license which includes OneDrive
- Give the account Global Admin permissions. If that is not possible, you can instead grant it Site Collection Admin permissions on the OneDrives that you want to migrate to.
- Authorize the MigrationWiz-SharePoint-Delegated app within the tenant
- Within the project, add OneDriveProImportEnvironment=AzureUSGovernment to the support section of the project's Advanced Options
Upload Files to Azure
Steps are performed from a file server, or a computer joined to the domain when logged in with the domain admin account, with local admin rights to the machine. This process utilizes UploaderWiz. Our guides contain information on running, configuring, and troubleshooting UploaderWiz.
- (Optional, but recommended) Set the file share migration batch to read-only access by the user and inform the users that a migration is occurring and that their file shares are now read-only. This will prevent the user from adding files to these file shares during the migration.
You can restrict users to read-only access to their Home Directories through the Active Directory Users and Computers console on the AD controller, or via PowerShell.
Prerequisites
- Create a CSV file containing all the usernames (SAMAccountName).
- Install the required AD module on the machine that you're running the script from.
- Example script:
Import-Module 'ActiveDirectory'
import-csv E:\usersname.csv | foreach-object{
$homeDrive = (Get-ADUser -Identity $_.name -Properties homedirectory).homedirectory #Query AD for the HomeDirectory attribute
$ACL = Get-Acl $homeDrive
$ACL.setAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule($_.name, "Read", "ContainerInherit,ObjectInherit", "none", "allow")))
Set-Acl $homeDrive $ACL
} - From the command prompt, running as administrator, from the directory that UploaderWiz was extracted into, run the following command (replace the x's with your own information):
UploaderWiz.exe -accesskey "xxxxxxxx" -secretkey "xxxxxxxxxxxxxxxxxxxxxxx" -type azureblobs -rootpath "xxxxxxxx" -homedrive true
Important
If you are performing these steps from a domain-joined computer, a network drive needs to be mapped from the domain-joined computer to the file server (e.g. x;\File Server).Important
Please consider the following information when replacing the fields with your information.- The AccessKey will be the name of the storage account
- The SecretKey will be the access key for the storage account
- The RootPath will be the path to the files that you want to migrate
- The parameter -homedrive true creates separate blob containers for each file share, under your top-level Azure blob container.
For example, if you have folders called User1 and User2 under C:\Users and you set the rootpath parameter to "c:\Users" then a container named "User1" and another named "User2" would be created in the Azure storage account and the files within those folders uploaded to each.
MigrationWiz Steps
Create a Document Project
This first project is the baseline project, from which all other projects will be cloned. We recommend that you call this "baseline", for easy reference.
- Log in to MigrationWiz.
- Click the Go to My Projects button.
- Click the Create Project button.
- Select the Document project type.
- Click Next Step.
- Enter a Project name and select a Customer.
- Click Next Step.
Endpoints
Endpoints are created through MigrationWiz. If you select an existing endpoint from the dropdown, it will only show ten endpoints. If you have more than ten, you may need to search it.
Consider that endpoint search is case and character-specific. For example, Cust0mer will not show up if the search is customer. We recommend keeping a list of endpoints you have created, along with any unique spellings or capitalization you may have used.
Create your Endpoints
Please review the following tabs to create your destination and source endpoints.
Create your source endpoint by following the next steps:
- Click New.
- Name the endpoint. It is recommended that the endpoint name is unique for the project.
- Under Endpoint Type, select Azure File System from the dropdown menu.
- Enter the storage account name and access key. This will match the account name and access key that you used in the UploaderWiz command.
- Click Add.
- Click Next Step.
Create your destination endpoint by following the next steps:
- Click New.
- Under Endpoint Type, select OneDrive for Business.
- For the Migration Type, leave it as the default unless migrating to a GCC High tenant, if that's the case, select that option.
- Complete the Administrator Username and Password in the proper fields.
- Choose one of the Azure Storage options:
- Use Microsoft Provided Azure Storage, in this case, you can pass to step 7; this is the recommended option.
- Use Custom Azure Account Name, enter the Azure Storage Account Name and Azure Access Key (if using your own Azure storage). In this case, only numbers and lowercase letters can be used. If you enter an upper case letter, your migration will fail.
- Click Add Endpoint.
Region of Destination Tenant
MigrationWiz displays a dropdown to select the Preferred Region of the Tenant at the destination endpoint. This value updates the Preferred Region of the Destination Tenant field in the project's Advanced Options, and vice versa. You will notice that both values are always the same.
The Region of Destination Tenant feature optimizes the migration performance and speed when choosing the region closest to the destination tenant.
Tip
You can find the region of your destination tenant directly in the Microsoft Entra admin center by going to Identity > Overview > Properties, and using the Country or region or the Data location.
For more information on this topic, review this article. In case you need the multi-geo information you can refer to this article.
Warning
If you do not complete this field you will not be able to save your project and the “This field cannot be left blank.” error will appear.Advanced Options
Support Tab
These options are added to the support section of the project's Advanced Options. You can access this by clicking on Edit Project and selecting Advanced Options To create new lines, simply click on the + button that you see when viewing that page.
- ShrinkFoldersMaxLength=300 This option shrinks file path names to prevent issues during the migration.
- RenameConflictingFiles=1 This prevents errors due to files with duplicate names.
- InitializationTimeout=8 This increases the initialization timeout window to eight hours. This allows for larger migrations to complete the initialization phase without timing out.
- If migrating to a GCC High tenant, also add UseApplicationPermissionAtDestination=0. If you are also not using a Global Admin with the GCC High tenant, also add ForceOneDriveNonGlobalAdminAuthImport=1
There are no spaces on either side of the "=" sign, and the entries are case-sensitive, so pay special attention to the capital letters in the commands above.
Source/Destination Tab
In each cloned MigrationWiz project, set the container name that the files for that user were uploaded to. This is done from the Source/Destination tab of the project's Advanced Options under the Source: File System/Container Name field. By default, this is set to "migrationwiz" but it must be changed or the migration will fail. This must be set to match the name of the Azure container that was created on your Azure subscription when the home directories were uploaded in the previous step, under the "Prepare Source File Server Environment" section of this guide.
Clone the Project
- Click the Edit Project button.
- Select Clone Project from the drop-down list.
- Enter the name for the new Project (each new project should be named after the file share name).
- Click the Clone Project button.
Important
Repeat this process to create one MigrationWiz project per file share. You should end up with one project corresponding to each Home Directory within your source environment.Add Items
For each MigrationWiz project, add the OneDrive for Business account to migrate home directory files into. Select Add/Quick Add and enter the login name of the OneDrive for Business account within the Destination field labeled Email Address.). This needs to be the UPN for the user in question or you could see errors occur when trying to migrate.
Run Verify Credentials
- Open the Project containing items you wish to validate.
- Select the line item within the project by checking the box next to it.
- Click on the Start button in your dashboard.
- Select Verify Credentials from the drop-down list.
Once complete, the results of the verification will be shown in the Status section.
Start Migration
- Select the users.
- Click the Start button from the top.
- Select Full Migration.
- Click Start Migration.
Run Retry Errors
If the migration is completed successfully, but there are errors, this will attempt those failed items again.
- Select the users.
- Click the Start button from the top.
- Select Retry Errors.
- Click Start Migration.
If the errors persist, click on the error count to bring up a list of the errors seen. This can be useful in helping to determine why the items are failing so appropriate action can be taken. If assistance is needed in investigating issues, please contact Support.
Post-Migration Steps
- Remove access to the Source home directories.
- Provide training on OneDrive For Business.
- Decommission file server. Perform this step only after migrating all data from the file server, such as file shares, and you are absolutely certain that you will not be returning to the file server.
- Delete all the Azure blob containers that were created during the upload to Azure. This will prevent incurring post-migration Azure costs for these containers. Be careful to only delete the containers created by UploaderWiz; these will be names that match the home directories and have a create date from the date of the upload.