When you migrate a tenant to a new Microsoft 365 environment, the OneDrive for Business storage quota report may not display all users. This happens because the migration process can leave user profile data in an incomplete state. The storage quota tool reads from Azure Active Directory and SharePoint Online, and any mismatch between these sources causes users to be omitted. This guide explains why users go missing and provides a step-by-step method to restore complete quota visibility.
Key Takeaways: Restoring Missing Users in OneDrive Storage Quota After Tenant Migration
- SharePoint Online Management Shell > Get-SPOSite -IncludePersonalSite $true: Lists all OneDrive sites but may hide sites where the user Principal Name changed during migration
- Azure AD Connect sync cycle: Forces user object updates to propagate to SharePoint Online, which is required for quota data to appear
- Set-SPOSite -Identity
-StorageQuota Manually assigns a quota to a OneDrive site that lacks one, making it visible in reports:
Why OneDrive Storage Quota Reports Miss Users After Tenant Migration
When you migrate a Microsoft 365 tenant, user objects are typically moved using a third-party tool or a cross-tenant migration script. The OneDrive for Business storage quota report depends on two data sources: the user object in Azure Active Directory and the corresponding personal site in SharePoint Online. If the migration tool does not update the UserPrincipalName or the ImmutableId of the OneDrive site owner, the quota report cannot match the user to the site.
Another common cause is that the OneDrive personal site was provisioned before the migration but the site owner attribute still points to the old tenant ID. The quota report shows only sites where the owner is a valid user in the current Azure AD. Orphaned or mismatched sites are excluded from the report output. Additionally, if the user was not assigned a license after migration, the OneDrive site may be hidden from the quota view.
The storage quota report in the SharePoint admin center and the Get-SPOSite cmdlet both filter out sites whose owner cannot be resolved. This is by design to prevent reporting on stale data. However, during migration this behavior masks legitimate users who have active OneDrive content but no visible quota entry.
Steps to Find and Restore Missing Users in OneDrive Quota Reports
Before starting, ensure you have the SharePoint Online Management Shell installed and that you have Global Admin or SharePoint Admin permissions. You also need the Azure AD module for PowerShell to check user objects.
- Connect to SharePoint Online
Open SharePoint Online Management Shell as an administrator. RunConnect-SPOService -Url https://. Replace-admin.sharepoint.com with your tenant name. Sign in with a Global Admin account. - Export all OneDrive sites to a CSV file
RunGet-SPOSite -IncludePersonalSite $true -Limit all | Select Owner, Url, StorageQuota | Export-Csv C:\temp\onedrive-sites.csv -NoTypeInformation. This creates a list of all personal sites including those with missing owners. Open the CSV file and look for rows where the Owner column is empty or shows a GUID instead of a UPN. - Identify users without a visible quota
RunGet-SPOSite -IncludePersonalSite $true -Limit all | Where-Object {$_.Owner -eq $null} | Select Url, StorageQuota. This returns only the sites that are missing an owner reference. Note the URLs of these sites. - Check the user object in Azure AD
Open Azure AD PowerShell:Connect-MgGraph -Scopes "User.Read.All". For each missing owner, runGet-MgUser -Search "DisplayName:or" Get-MgUser -UserIdto see if the user still exists. If the user exists but has a new UPN, record the new UPN. - Update the OneDrive site owner
For each site that has a missing owner, runSet-SPOSite -Identity. This reassigns the site to the correct user object. The quota report will now include this user.-Owner - Force a quota update on orphaned sites
If the site still does not appear after updating the owner, runSet-SPOSite -Identity. Use the same value as the current quota to trigger a refresh. This forces SharePoint to recalculate the site metadata.-StorageQuota - Run a full Azure AD sync cycle
On the server running Azure AD Connect, open PowerShell as an administrator and runStart-ADSyncSyncCycle -PolicyType Delta. Wait 15 minutes, then runGet-SPOSite -IncludePersonalSite $true | Where-Object {$_.Owner -ne $null} | Measure-Objectto verify the user count matches your expected total.
If OneDrive Storage Quota Still Shows Missing Users
OneDrive site exists but the user has no license
A user without an assigned SharePoint or OneDrive license will not appear in quota reports even if the site exists. Assign a license from the Microsoft 365 admin center: select the user, go to Licenses and Apps, and enable SharePoint Online. Wait 30 minutes for the license to propagate, then rerun the quota report.
Get-SPOSite returns no results for some users
If a user never had a OneDrive site provisioned, no quota entry exists. The user must sign in to OneDrive at onedrive.com at least once. Alternatively, an admin can provision a site by running Request-SPOPersonalSite -UserEmails "user@domain.com". This creates the personal site and makes it visible in quota reports within 24 hours.
Migration tool left stale ImmutableId on the site
Some third-party migration tools copy the old ImmutableId to the new environment. SharePoint uses this ID to match the site owner. If the ID does not match the current Azure AD ImmutableId, the site appears orphaned. Use Set-SPOSite -Identity to overwrite the owner. This action updates the internal ImmutableId to the current value.
Quota Report Methods: SharePoint Admin Center vs PowerShell
| Item | SharePoint Admin Center | PowerShell (Get-SPOSite) |
|---|---|---|
| Access speed | Slower for large tenants (over 10,000 users) | Faster with paging or -Limit all |
| Missing user visibility | Hides orphaned sites completely | Shows sites with $null owner |
| Bulk quota update | Not supported | Supported via Set-SPOSite |
| Export capability | CSV export available but limited to visible rows | Full export with custom fields |
The SharePoint admin center is the easiest tool for a quick check. PowerShell is required for migration troubleshooting because it reveals sites that the admin center hides. Use PowerShell whenever you suspect missing users after a tenant move.
You can now audit and correct OneDrive storage quota reports after a tenant migration by using the PowerShell steps above. Start by exporting all OneDrive sites and identifying those with empty owner fields. Next, update the owner or trigger a quota refresh on each orphaned site. As an advanced tip, schedule a weekly PowerShell script that runs Get-SPOSite -IncludePersonalSite $true and sends an alert if the user count drops below your expected total. This catches quota visibility issues before they affect storage management.