Site icon Office 365 for IT Pros

OneDrive for Business and its Unlimited Storage

Advertisements

OneDrive Storage for All

The OneDrive for Business service description (13 May 2020) lays out how much OneDrive storage Microsoft makes available to users based on their license type. In a nutshell:

Promising unlimited OneDrive storage is interesting because it implies that Microsoft will allow a properly licensed user to consume as much OneDrive for Business storage as they want, with the caveats that OneDrive “is designed to serve the needs of individual users” and “storage of data other than an individual user’s work files, including system back-ups and departmental and organizational level data, is not supported, nor is the assignment of a per user license to a bot, department, or other non-human entity.

Update (March 2022): the latest OneDrive for Business service description moves the storage discussion to a document called Modern Work Plan Comparison which confirms unlimited OneDrive storage in the SharePoint Plan 2 service plan (part of Office 365 E3 and E5).

Figure 1: Unlimited OneDrive storage for Office 365 E3 and E5 SKUs

Setting a Default Storage Quota for OneDrive

Documents, files, and photos can certainly occupy a lot of storage, but “unlimited” really doesn’t mean what normal human beings might think. It’s more like an all-you-can-eat buffet where the physical capacity of the human stomach will eventually impose a practical limit. OneDrive’s unlimited quota is practically limited by being doled out in chunks as users need storage.

When someone’s Office 365 account is provisioned and the account has a OneDrive license, the account is assigned the default storage quota set by the tenant. The quota can be set in the Settings section of the SharePoint Online admin center (Figure 2) or PowerShell.

Figure 2: Setting a tenant default for OneDrive for Business storage quota

The minimum default storage quota is 1024 GB (1 TB). As Figure 1 shows, you can increase it to 5120 GB (5 TB). You can go higher, but rather bizarrely, the OneDrive admin center doesn’t confirm that a new value is set, nor does it signal an error if you insert a higher value (like 10240 GB). Instead, perhaps because it doesn’t want to offend, OneDrive simply ignores the attempt to set a new storage quota and reverts to the highest possible value for the default (5 TB).

One thing to be careful about is that the OneDrive admin center uses gigabytes to set storage quotas while the Set-SPOTenant cmdlet uses megabytes. To set a 5 TB default storage limit in PowerShell, we run:

# Update SharePoint default storage quota
Set-SPOTenant -OneDriveStorageQuota 5242880

Don’t bother trying to go past 5 TB. OneDrive will blithely ignore your request and the limit will stay at 5 TB.

Assigning New Quotas to Existing Accounts

The default storage quota is assigned to new accounts. If the account doesn’t have a license which supports the assigned quota, OneDrive will automatically downgrade the available quota to the maximum allowed by the license. With that in mind, we can assign the new 5 TB storage quota to accounts like this:

# Assign storage quota to OneDrive sites
[array]$ODSites = Get-SPOSite -IncludePersonalSite $true -Limit all -Filter "Url -like '-my.sharepoint.com/personal/'" | Select-Object URL, Title, StorageQuota, StorageUsageCurrent
ForEach ($Site in $ODSites) {
   If ($Site.StorageQuota -ne 5242880) {
      Write-Host "Setting Quote for OneDrive account:" $Site.Title
      Set-SPOSite -Identity $Site.URL -StorageQuota 5242880 }
}

To report on the current OneDrive storage use and quota, you could use a modified version of our Report SharePoint Site Storage script after connecting to the SharePoint administration module:

# Get all OneDrive sites
Write-Host "Fetching OneDrive site information..."
[array]$Sites = Get-SPOSite -IncludePersonalSite $true -Limit all -Filter "Url -like '-my.sharepoint.com/personal/'"  | Sort-Object StorageUsageCurrent -Descending
$TotalOneDriveStorageUsed = [Math]::Round(($Sites.StorageUsageCurrent | Measure-Object -Sum).Sum /1024,2)
$Report = [System.Collections.Generic.List[Object]]::new() 
ForEach ($Site in $Sites) {
  $SiteOwners = $Null ; $Process = $True; $NoCheckGroup = $False
  $SiteNumber++
  $SiteStatus = $Site.Title + " ["+ $SiteNumber +"/" + $Sites.Count + "]"
  $UsedGB = [Math]::Round($Site.StorageUsageCurrent/1024,2)         
# And write out the information about the site
  If ($Process -eq $True) {
      $ReportLine = [PSCustomObject]@{
         URL           = $Site.URL
         Owner         = $Site.Title
         QuotaGB       = [Math]::Round($Site.StorageQuota/1KB,0) 
         UsedGB        = $UsedGB
         PercentUsed   = ([Math]::Round(($Site.StorageUsageCurrent/$Site.StorageQuota),4).ToString("P")) }
     $Report.Add($ReportLine)}}

# Now generate the report
$Report | Export-CSV -NoTypeInformation c:\temp\OneDriveConsumption.CSV

Moving Past Towards Unlimited

Five terabytes are nice, but it’s not unlimited. Possibly because of the bad experience of when OneDrive consumer supported unlimited storage (think of large movie libraries being uploaded), Microsoft forces tenants to go through support to have their storage boosted. You’ll have to:

Eventually Microsoft will enable a storage quota increase behind the scenes. The increase enables a new 25 TB limit for all accounts, and you will be able to set the new limit by running Set-SPOSite to set a quota of 26214400 (25 TB).

If someone reaches 90% of 25 TB, a further support request will result in single-user SharePoint Online team sites with 25 TB quota.


Tracking down nuggets of information about how Office 365 works in practice is hard. Stay updated with the Office 365 for IT Pros eBook and let us do the work for you.

Exit mobile version