This Blog is a supplement to my website. Please also visit:

Friday, April 8, 2011

System Restore eating up disk space

Today I was working on a PC that kept failing backups. Once I started the backup I was intrigued at how long it estimated to complete. Upon further investigation I could see that the disk space used was over 45 Gigabytes. This is extremely high for this PC.

Using TreeSize Free it reported only 13 Gigabytes being used. TreeSize Free cannot access the hidden System Volume Information folder. It then occurred to me that the System Restore might be the culprit.

As it turns out on Windows XP, the default for System Restore is to use up to 12% of the total disk space. This is huge when you consider the size of hard drives today. Obviously I wanted to reduce this size not only on this machine but for many others that we are responsible for.

Many thanks to Steen Kirkby's Blog for leading me in the right direction.

Using one of our favorite tools called VNCscan we were able to create some scripts to help roll-out the changes to several computers at once.

By reducing all of the computers to use just 1% of their total hard drive space will save us a ton of space on our backup volumes. On the troubled PC that started all of this, we went from using over 45 Gigabytes of space to just 13 Gigabytes.

In VNC Scan we broke this up into three scripts.

Script 1 - System Restore Cap to 1 percent (a CMD script)
cd \temp\vncscan

:: The following sets the maximum percentage of disk space used by System Restore

REG ADD "HKLM\Software\Microsoft\Windows NT\Currentversion\SystemRestore" /v DiskPercent /t REG_DWORD /d 1 /f

REG ADD "HKLM\Software\Microsoft\Windows NT\Currentversion\SystemRestore\Cfg" /v DiskPercent /t REG_DWORD /d 1 /f

ECHO Now you must stop and restart System Restore

Script 2 - System Restore OFF (a VBS script)
strComputer = "."
set objWmi = GetObject("winmgmts://" & strComputer & _
WScript.Echo "System Restore disabled"

Script 3 - System Restore ON (a VBS script)
strComputer = "."
set objWmi = GetObject("winmgmts://" & strComputer & _
WScript.Echo "System Restore enabled"

Hoping this will help someone else in the future.


  1. Great twist with the VBS scripts and VNCscan - will look into that VNCscan util.
    Is it possible to push-install VNCscan or run scripts remotely from VNCscan without a client installation of VNCscan on the remote computer?

  2. VNCscan is like an admin console. You install it on a PC where an administrator(s) does most of their work. It's main job in life is to let you remotely connect to other computers either via VNC or RDP. Over the years it has evolved into a valuable swiss army knife of other valuable tools. Their is no "client" pieace on the PCs, you just have to have admin credentials to the remote computers. I guess I should say this is a LAN-based tool, not an over the Internet tool.

  3. Thanks for sharing your info. I really appreciate your efforts and I will be waiting for your further write ups thanks once again.