Windows · Volume Shadow Copy

Volume Shadow Copy Service — How Shadow Copies Actually Work

A practical look at how the Volume Shadow Copy Service coordinates requestors, writers, and providers to freeze a volume for a few seconds and produce a consistent point-in-time copy, and how to create, list, and manage those copies with vssadmin, diskshadow, and PowerShell.

Quick idea: VSS briefly freezes application writes just long enough to take a consistent snapshot of a volume, then hands write access back — the snapshot itself is stored as the set of blocks that changed afterward, not a second copy of the whole disk.
Requestor

The application asking for a shadow copy — Windows Server Backup, a third-party backup product, or vssadmin itself.

Writer

The component that flushes an application’s in-memory state to disk so the snapshot lands on a consistent boundary, not mid-transaction.

Provider

The component that actually creates and maintains the shadow copy — a software provider built into Windows, or a hardware provider on a SAN.

What Is Volume Shadow Copy Service?

Volume Shadow Copy Service (VSS) is the Windows component that coordinates the creation of a consistent, point-in-time copy of a volume — commonly called a shadow copy or a snapshot — while the volume is still live and applications are still writing to it. It shipped first in Windows XP and Windows Server 2003, and it underpins nearly every backup and restore feature Windows has had since.

Think of VSS as a very brief, very well-coordinated pause button. A naive copy of files on a running server captures data mid-write: a database with a half-committed transaction, a mailbox with a message half-delivered. VSS solves that by asking every application that cares to finish its current unit of work, freeze writes for a moment, and only then does the actual copy happen — all inside a window measured in seconds.

VSS itself does not do any of the freezing or copying. It is the coordinator that sits between three other components: the requestor that asks for the shadow copy, the writer that makes the application’s data consistent, and the provider that actually creates the shadow copy on disk.

Important: Disabling the Volume Shadow Copy Service is possible but not recommended. Anything that depends on it — System Restore, Windows Server Backup, Shadow Copies of Shared Folders, and most third-party backup agents — stops working correctly the moment VSS is unavailable.

How a Shadow Copy Is Actually Created

The sequence below is what happens, in order, every time something asks Windows for a shadow copy — whether that something is Windows Server Backup, a SQL Server-aware backup agent, or a plain vssadmin create shadow from the command line.

The requestor asks VSS to enumerate the writers on the system and gather their metadata. Each writer responds with an XML description of what it needs backed up and how it should be restored. VSS then tells every writer to prepare — completing open transactions, rolling logs, flushing caches — and once every writer reports ready, VSS freezes application write I/O across the volume. Read I/O keeps working; only writes pause. The provider is told to create the shadow copy during that freeze, and as soon as it commits, VSS releases the freeze and writers resume normal writes.

Key rule: The application write freeze cannot exceed 60 seconds, and the provider must commit the actual shadow copy within 10 seconds of that freeze starting. If either limit is blown, VSS aborts the operation rather than leave applications frozen indefinitely.

That timing constraint is why a busy SQL Server or Exchange instance can occasionally fail a VSS snapshot under heavy load — the writer cannot finish preparing fast enough inside the freeze window, not because VSS itself is slow.

Complete Copy, Copy-on-Write, and Redirect-on-Write

A shadow copy provider — hardware or software — builds the actual point-in-time copy using one of three methods. The built-in Windows software provider (swprv.dll and the volsnap.sys driver) uses copy-on-write; SAN hardware providers often use one of the other two.

Complete Copy

A full clone of the volume at a point in time, made by splitting a mirror. Read-only, independent of the source once split.

Copy-on-Write

Before a block on the source volume changes, its original contents are copied to a shadow copy storage area first. Used by the built-in system provider.

Redirect-on-Write

Changes never touch the source volume at all — they are redirected to a separate storage area, leaving the original untouched.

For the system provider’s copy-on-write method, that storage area is called the shadow copy storage area, or diff area. It must live on an NTFS volume, though the volume being shadow-copied doesn’t itself need to be NTFS — Windows just needs at least one NTFS volume mounted somewhere to host the diff area. This is also why a shadow copy is not a second full copy of a volume’s data: it is the original data plus an index of the blocks that changed since the snapshot, reconstructed on read.

In simple terms: A copy-on-write shadow copy only grows as fast as the source volume changes. A quiet file server with a stable dataset can carry many shadow copies cheaply; a volume with heavy write churn burns through diff area space fast and can push older shadow copies out sooner than expected.

Where Windows Actually Uses VSS

VSS is infrastructure, not a feature end users interact with directly. A handful of Windows features sit on top of it, and each one is really just a different requestor with its own idea of what to do with the shadow copy once it exists.

Windows Server Backup is a VSS requestor that turns a shadow copy into a VHD-format backup image, with the NTDS writer making sure a domain controller’s Active Directory database is flushed and consistent before the snapshot is taken. Shadow Copies of Shared Folders is a separate requestor built into the file server role that takes scheduled, client-accessible shadow copies of a whole volume so users can recover an earlier version of a file from a network share themselves, through the Previous Versions tab, without calling the help desk. System Restore on Windows client editions uses VSS the same way, to create system-level restore points before risky changes like driver or update installs. Nearly every third-party backup product for Windows — Veeam, Commvault, and the rest — is also just a VSS requestor with its own storage target.

Client note: Starting with Windows 8, the Previous Versions UI and the System Protection scheduling UI were removed for local volumes on Windows client editions — the feature was rarely used and cost more in disk I/O than it was worth. The Previous Versions tab still works normally when browsing a shared folder hosted on a Windows Server with Shadow Copies of Shared Folders enabled; only the local-volume, client-side version of the UI is gone. The VSS APIs underneath are unaffected either way.

Enabling Shadow Copies of Shared Folders

Shadow Copies of Shared Folders is not a separate installable role — it rides on the file server capabilities every Windows Server already has, and is turned on per volume rather than per share. You cannot pick individual folders on a volume to include or exclude; enabling it applies to everything on that volume.

In the GUI, open Computer Management, right-click Shared Folders, choose All Tasks → Configure Shadow Copies, select the volume, and click Enable. The same dialog is reachable from a volume’s own Properties → Shadow Copies tab in File Explorer. From there you can also set a custom schedule and a storage limit on the Settings button.

Setting Default
Schedule7:00 AM and 12:00 noon, Monday through Friday
Storage locationSame volume being shadow copied, unless changed
Storage size limit10% of the source volume’s capacity, 300 MB minimum
Maximum shadow copies retained64 per volume — the oldest is deleted automatically once the limit is reached
Practical rule: Point the storage area at a separate volume on a different physical disk whenever a file server is busy. It removes the risk of high I/O forcing shadow copies to be deleted early, and it keeps snapshot writes off the same spindles serving live reads. Do not enable Shadow Copies of Shared Folders on volumes that use mount points, on dual-boot systems, or scheduled more than once an hour — all three are documented ways to lose shadow copies faster than expected.

Scripts / Commands

vssadmin is the everyday tool for shadow copies created by the built-in system provider. diskshadow is the more capable interactive/scriptable tool, and it is the one to reach for when a shadow copy is not “client-accessible” and vssadmin refuses to touch it. Both require an elevated prompt and, for diskshadow, local Administrators group membership.

# --- INSPECTING VSS STATE ---

# List every VSS writer on the system and its current state (Stable, Waiting for completion, Failed, etc.)
vssadmin list writers

# List all registered shadow copy providers (system, and any hardware/SAN providers installed)
vssadmin list providers

# List every existing shadow copy on the system
vssadmin list shadows

# List shadow copies for a specific volume only
vssadmin list shadows /for=C:

# --- CREATING AND DELETING SHADOW COPIES ---

# Create a manual shadow copy of volume C: using the system provider
vssadmin create shadow /for=C:

# Delete only the oldest shadow copy of volume C:
vssadmin delete shadows /for=C: /oldest

# Delete every shadow copy of volume C: without a confirmation prompt
vssadmin delete shadows /for=C: /all /quiet

# --- MANAGING SHADOW COPY STORAGE (THE DIFF AREA) ---

# Cap shadow copy storage for C: at 900MB, stored on D:
vssadmin resize shadowstorage /for=C: /on=D: /maxsize=900MB

# Remove the storage cap entirely
vssadmin resize shadowstorage /for=C: /on=D: /maxsize=UNBOUNDED

# --- DISKSHADOW, FOR EVERYTHING VSSADMIN CAN'T TOUCH ---

# Launch the interactive diskshadow console
diskshadow

# Or run a saved script non-interactively (note: -s, not /s)
diskshadow -s C:\scripts\snapshot.dsh

A minimal diskshadow script that takes a persistent, application-consistent shadow copy of two volumes and exposes them as drive letters for a backup job to read from:

# snapshot.dsh - persistent shadow copy of C: and D:, exposed for backup
set context persistent nowriters
set metadata C:\diskshadowdata\example.cab
set verbose on

begin backup
add volume C: alias systemvolumeshadow
add volume D: alias datavolumeshadow

create

expose %systemvolumeshadow% P:
expose %datavolumeshadow% Q:
exec C:\diskshadowdata\backupscript.cmd
end backup

There is no dedicated PowerShell module for VSS the way there is for Windows Server Backup — shadow copy management from PowerShell goes through the Win32_ShadowCopy WMI/CIM class instead.

# List existing shadow copies via CIM (the modern replacement for Get-WmiObject)
Get-CimInstance -ClassName Win32_ShadowCopy |
    Select-Object ID, VolumeName, InstallDate, ClientAccessible

# Create a new client-accessible shadow copy of C:\ via the class's static Create method
Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create `
    -Arguments @{ Volume = 'C:\'; Context = 'ClientAccessible' }

# Confirm the volume you're about to target before running any of the above
Get-Volume -DriveLetter C
Troubleshooting note: If vssadmin delete shadows returns “Error: Snapshots were found, but they were outside of your allowed context,” the shadow copies were not created as client-accessible — vssadmin can only manage that type. Use diskshadow‘s list shadows and delete shadows commands instead.

Version Boundaries and What Changed

Capability Availability
VSS itselfWindows XP and Windows Server 2003 onward — present on every supported Windows and Windows Server release since
Shadow Copies of Shared FoldersWindows Server 2003 onward; still a file server capability on Server 2016 through 2025
vssadminBoth Windows client and Windows Server editions
diskshadowWindows Server only — not available on Windows client editions
Previous Versions UI for local volumesRemoved from Windows client starting with Windows 8; unaffected on Windows Server file shares
LUN resynchronization (hardware providers)Requires Windows Server 2008 R2 or later
Transportable shadow copiesWindows Server 2003 with SP1 or later, hardware provider required
Version note: Shadow copies are not portable across major Windows Server generations at the storage-format level — a shadow copy created on Windows Server 2008 cannot be restored on Windows Server 2003, and vice versa. Shadow copies created on Windows Server 2008 and Windows Server 2008 R2 are interchangeable with each other. Treat cross-version shadow copy portability as unsupported unless a specific backup product documents otherwise.

Troubleshooting Cheat Sheet

Symptom Likely Cause Fix
Backup or snapshot job fails, a writer shows Failed or Waiting for completion A VSS writer is stuck or the service it belongs to is unhealthy Run vssadmin list writers to identify the writer, then restart the owning service (for example the ntds service for the NTDS writer on a domain controller).
vssadmin create shadow fails with “Insufficient storage” The shadow copy storage area (diff area) is too small for the volume’s rate of change Increase the limit with vssadmin resize shadowstorage, or move the storage area to a larger, separate volume.
Older shadow copies disappear faster than expected The volume’s 64-copy limit, or its storage size limit, was reached and the oldest copies were purged automatically Increase the schedule interval, raise the storage limit with vssadmin resize shadowstorage, or move storage to a volume with more free space.
vssadmin delete shadows returns “outside of your allowed context” The shadow copy was not created as client-accessible, so vssadmin has no permission model for it Manage it with diskshadow instead, using its own list and delete shadows commands.
Previous Versions tab is empty or missing on a local Windows 10/11 drive Expected behaviour — the local-volume Previous Versions UI was removed starting with Windows 8 Use File History for local file versioning, or check Previous Versions on a network share hosted on a Windows Server with Shadow Copies of Shared Folders enabled.
Non-Microsoft backup software reports a generic VSS error A third-party writer or provider is failing, not VSS itself Check vssadmin list writers and vssadmin list providers first to isolate whether the failure is a Windows component or the backup vendor’s own writer, then check the vendor’s support articles for that specific error code.

Final Thoughts

VSS is one of those Windows components that is easy to take for granted precisely because it works quietly in the background of features that get all the attention — backup jobs, restore points, that “Previous Versions” tab nobody thinks about until they need it. Understanding the requestor/writer/provider split, and the hard 60-second freeze and 10-second commit limits underneath it, turns a mysterious VSS error in a backup log into a component you can actually diagnose: is it the requestor asking for the wrong thing, a writer that couldn’t get ready in time, or a provider that ran out of storage.

Windows Server Backup is the most common place engineers run into VSS directly, since every system state and bare-metal backup it takes is a VSS operation end to end — the requestor/writer/provider model in this post is exactly what is happening under the hood when that backup job runs.

Key takeaway: Run vssadmin list writers before trusting any VSS-based backup or snapshot — if every writer shows Stable with no error, the application-consistency guarantee VSS exists to provide is actually being honoured.
Next in this series

Next, we can look at File Server Resource Manager — quotas, file screening, and how it complements Shadow Copies of Shared Folders on a busy file server.