Windows Server  ·  medium  ·  Storage, SAN & file services

Users cannot save to a share that has plenty of free space

A quota or a file screen is refusing the write, and the message the user gets says the disk is full.

What you see

"There is not enough space on the disk" saving to a share, while the volume shows hundreds of gigabytes free. Or a specific file type is refused with a generic error.

What is actually wrong

A File Server Resource Manager quota on the folder, an NTFS disk quota on the volume, or a file screen blocking the extension.

Codes and articles

Disk fullquotaFSRM0x80070070file screenEvent 8215

Fixes (2)

Find the quota that is being hit
Elevated PowerShell on the file server25 minutesmedium riskreversible

A folder or user cannot write.

  1. List the FSRM quotas and their usage.

    PowerShell
    Get-FsrmQuota | Format-Table Path,Size,Usage,SoftLimit,Template -AutoSize
  2. Check for auto-apply quota templates, which create a quota on each subfolder automatically and are easy to forget about.

    PowerShell
    Get-FsrmAutoQuota | Format-Table Path,Template

    An auto-apply template on a home directory root creates an individual quota for every user folder. The quota that is full will not appear in a listing of the parent, which is why this is so often missed.

  3. Check NTFS disk quotas as well, which are a separate mechanism on the volume.

    PowerShell
    fsutil quota query E:
  4. Raise the specific quota, or move the user to a larger template.

    PowerShell
    Set-FsrmQuota -Path 'E:\Users\jbloggs' -Size 20GB
  5. Check whether the space is genuinely needed, or whether an old profile or PST is sitting in the folder.

    PowerShell
    Get-ChildItem 'E:\Users\jbloggs' -Recurse -File | Sort-Object Length -Descending | Select-Object -First 15 FullName,@{n='MB';e={[math]::Round($_.Length/1MB,1)}}
  6. Set the notification thresholds so users are warned before they are stopped.

    PowerShell
    Get-FsrmQuotaTemplate | Format-Table Name,Size,SoftLimit
Confirm it workedThe user can save, and the quota usage is below the limit.
PowerShell
Get-FsrmQuota -Path 'E:\Users\jbloggs' | Format-List Path,Size,Usage,PeakUsage
If you need to undo itSet-FsrmQuota with the previous size.
Find the file screen blocking the type
Elevated PowerShell25 minutesmedium riskreversible

Certain file types are refused.

  1. List the screens and the groups they use.

    PowerShell
    Get-FsrmFileScreen | Format-Table Path,IncludeGroup,ActiveGet-FsrmFileGroup | Format-Table Name,IncludePattern -AutoSize
  2. Check the events, which record every blocked write with the file name and the user.

    PowerShell
    Get-WinEvent -LogName Application -MaxEvents 100 | Where-Object ProviderName -like '*SRMSVC*' | Format-Table TimeCreated,Id,Message -Wrap

    The user's error message says the disk is full or access is denied, and never mentions a file screen. The event log on the server is the only place the real reason is written down.

  3. Add an exception for the specific path rather than removing the screen.

    PowerShell
    New-FsrmFileScreenException -Path 'E:\Shares\Design' -IncludeGroup 'Image Files'
  4. Or adjust the file group if the extension is legitimate across the estate.

    PowerShell
    Set-FsrmFileGroup -Name 'Executable Files' -IncludePattern @('*.exe','*.com','*.bat')
  5. Check whether the screen is active or passive. A passive screen only reports; an active one blocks.

    PowerShell
    Get-FsrmFileScreen | Format-List Path,Active,IncludeGroup,Notification
Confirm it workedThe file saves and the SRMSVC events stop for that path.
If you need to undo itRemove-FsrmFileScreenException reverses the exception.

Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.