How to Configure Volume Shadow Copy Service (VSS) on Windows Server 2016
The Volume Shadow Copy Service (VSS) is a Windows infrastructure component that coordinates the creation of consistent point-in-time snapshots of data, even while applications are actively writing to disk. VSS is the foundation for Windows Server Backup, Previous Versions, and most third-party backup tools. Configuring VSS properly ensures that shadow copies are created reliably, retained according to your policy, and used for fast file restores without requiring a full backup restore.
This tutorial covers enabling shadow copies on volumes, configuring schedule and storage limits, accessing Previous Versions, and managing VSS from the command line and PowerShell.
Understanding VSS Components
VSS consists of four main actors: the VSS service (coordinator), VSS requestors (backup software), VSS writers (applications like SQL Server, Exchange, or Active Directory that prepare their data for snapshot), and VSS providers (software or hardware that performs the actual snapshot). Windows Server 2016 ships with the System Provider, which uses a copy-on-write mechanism stored in a shadow storage area on the same or a different volume.
Step 1: Enable Shadow Copies on a Volume
Open File Explorer, right-click a drive (for example C:), select Configure Shadow Copies. The Shadow Copies dialog opens showing all volumes. Select the volume you want to protect and click Enable. Windows will immediately create the first shadow copy and begin scheduling automatic creation twice daily (7:00 AM and 12:00 PM by default).
To enable via command line:
vssadmin add shadowstorage /for=C: /on=C: /maxsize=10%
vssadmin create shadow /for=C:
The first command defines where shadow data is stored and limits storage to 10% of the volume. The second creates an immediate shadow copy.
Step 2: Configure Shadow Copy Schedule
In the Shadow Copies dialog, click Settings for the selected volume. Under Schedule, click the Schedule button to open the Task Scheduler interface for VSS. Modify the default twice-daily schedule to match your business needs. For example, for a shared file server, snapshots every two hours during business hours provide more granular recovery points.
To configure a custom schedule using Task Scheduler from PowerShell:
$trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Hours 2) -At "07:00AM" -Once
$action = New-ScheduledTaskAction -Execute "vssadmin.exe" -Argument "create shadow /for=C:"
Register-ScheduledTask -TaskName "VSS_C_Every2Hours" -Trigger $trigger -Action $action -RunLevel Highest -User "SYSTEM"
Step 3: Configure Storage Limits
By default, VSS limits shadow storage to 10% of the source volume. When this limit is reached, older shadow copies are automatically deleted to make room for new ones. Increase the limit for volumes where many recovery points are needed:
vssadmin resize shadowstorage /for=C: /on=C: /maxsize=20GB
Alternatively, store shadow copies on a separate volume to avoid impacting source volume performance:
vssadmin add shadowstorage /for=C: /on=D: /maxsize=50GB
Step 4: List and Inspect Shadow Copies
To list all existing shadow copies on the system:
vssadmin list shadows
To list storage usage per volume:
vssadmin list shadowstorage
PowerShell provides an alternative view using WMI:
Get-WmiObject Win32_ShadowCopy | Select-Object ID, VolumeName, InstallDate, DeviceObject
Step 5: Access Previous Versions for File Recovery
End users and administrators can restore files from shadow copies using the Previous Versions tab. Right-click a folder or file in File Explorer and select Properties, then click the Previous Versions tab. A list of available shadow copy versions appears. Select a version, then click Open to browse, Copy to save elsewhere, or Restore to overwrite the current version.
To expose shadow copies on file shares to remote clients, ensure the Previous Versions client feature is enabled on client machines and the shadow copy schedule runs on the file server.
Step 6: Mount a Shadow Copy
Administrators can mount a shadow copy as a drive letter to browse its contents directly:
# Get the shadow copy device path
$sc = Get-WmiObject Win32_ShadowCopy | Select-Object -First 1
$sc.DeviceObject
# Create a symlink to mount it
cmd /c mklink /d C:ShadowMount \?GLOBALROOTDeviceHarddiskVolumeShadowCopy1
Browse C:ShadowMount in File Explorer to access the snapshot. Remove the mount when done:
cmd /c rmdir C:ShadowMount
Step 7: Delete a Shadow Copy
To delete a specific shadow copy by ID:
vssadmin delete shadows /shadow={shadow-copy-id} /quiet
To delete all shadow copies on a volume:
vssadmin delete shadows /for=C: /all /quiet
Step 8: Troubleshoot VSS Errors
VSS errors are logged in Event Viewer under Windows Logs > Application, with source VSS. Common errors include VSS writer timeouts caused by slow disk I/O and VSS provider errors caused by insufficient storage space. List currently registered VSS writers and their status:
vssadmin list writers
A writer in a Failed or Stable-but-unresponsive state may require the associated service to be restarted. For example, to reset the SQL Server VSS writer, restart the SQL Server VSS Writer service.
Best Practices
Store shadow copies on a separate volume or disk to prevent a single disk failure from losing both the data and its snapshots. Increase storage allocation for high-churn volumes such as database servers. Monitor Event Viewer for recurring VSS writer failures, which often indicate an underlying service or disk issue. Coordinate VSS configuration with your backup software to avoid scheduling conflicts between manual shadow copy creation and backup-initiated snapshots.