Fix Windows’ Wasteful Shadow Copy (VSS)


40GB or more wasted

As storage has gotten more expansive, Microsoft has gotten very good at unnecessarily using up this extra space.  One of the biggest storage hogs is System Restore, which was rather easy to modify in Windows XP.  In Windows Vista, there is no easy way to change the amount of space that System Restore uses, so Vista is likely keeping the restore point from the time you wiped your butt with a new roll of TP.

In Windows Vista, the storage problem has gotten even worse, because Vista now has found a way to bloat even System Restore.  The new feature is called Volume Shadow Copy Service (VSS), which enhances System Restore by making backup copies of deleted or changed files.  Most of these “shadow copies” cannot be deleted: they just take up space for no reason whatsoever.

Fortunately, there is a command line utility that will allow you change the amount of space Windows Vista uses for Restore Points and Shadow Copies, and is called the vssadmin.exe (Volume Shadow Copy Service Admin).

By default, Vista pre-defines 15% of your hard drive’s size (or 30% free space, whichever is smaller) as the maximum Shadow Copy store space.  This means that 40GB of space of a typical 250GB hard drive could be filled with stuff you’ll never access or likely use… just imagine how much space is wasted on a 1TB drive!

It’s a good idea to have some sort of recovery, but there’s just no reason to allocate tens of gigabytes.  If you really have to restore to a point from 3 months ago, then you should just reinstall your system.

To use the vssadmin.exe tool, launch a Command Prompt with administrative rights.  Click on the Start button, type CMD in the Start Search box, and press Ctrl+Shift+Enter.

To get a list of the tool’s available options, type:

vssadmin /?

To check how much space is currently used on each of your volumes, type:

vssadmin List ShadowStorage

If you have disabled System Restore, then you will get the error “No items found that satisfy the query”.  You probably should have System Restore enabled, but it doesn’t have to take up as much space as it does by default.

To change the size of the reserved Shadow space (System Restore and Previous Versions), use this:

vssadmin Resize ShadowStorage /On=[drive]: /For=[drive]: /Maxsize=[size]

To limit the usage of VSS backup files to 5 Gigabytes on your C: drive, use this command:

vssadmin Resize ShadowStorage /On=C: /For=C: /MaxSize=5GB

If you have a temp volume, then you can use it to store all of the changes from your C: drive by using the FOR parameter.  For example, if you have your main OS on C: and a temp drive (D:) Then you can put all of this crap on the temp volume:

vssadmin Resize ShadowStorage /On=D: /For=C: /MaxSize=20GB

You can use KB, MB, GB, TB when specifying MaxSize, so you don’t have to calculate a bunch of zeros when using this tool.  If no suffix is supples, then the MaxSize is assumed to be bytes.  The MaxSize has a minimum of 300MB, so if you want less than this you should probably disable System Restore altogether.  You can also leave out the MaxSize parameter, and VSS will use as much space as it pleases.

Alan is a web architect, stand-up comedian, and your friendly neighborhood Grammar Nazi. You can stalk him on the Interwebs via Google+, Facebook and follow his ass on Twitter @ocmodshop.