I am extremely interested making use of the Volume Shadow Service (VSS) to replicate what Time Machine on Mac OS X does. According to Wikipedia
Time Machine makes hourly backups.
I know that in Windows 7 there is the "Previous Version" shell extension that allows you to restore your files from a backup or restore point created through VSS. The problem is the restore points are not often created and it is difficult to predict when it will be created barring windows updates, driver
installations and other major changes to the system.
I have looked up at how VSS works, according to Microsoft
VSS doesn't initiate any kind of backup/restore point creation by itself. It needs a Requestor to initiate it.
The first clue of the Requestor that creates restore points for the "Previous Version" is System Restore
. According to Microsoft:
Previous versions are automatically saved as part of a restore point
So I went digging around and found it in Task Scheduler under: Microsoft -> Windows -> SystemRestore. I then proceeded to modify the trigger so that it will only run at startup and every 1 hour indefinitely. I further removed all conditions to make sure that it runs. Furthermore I manually run it from the Task Scheduler.
I then did a test. I created a non-empty text file on the desktop. Then I ran the task manually from the Task Scheduler and waited till it's status is Ready.
I then proceeded to delete this text file and tried to use "Previous Version" on the Desktop folder but it says "No previous versions are available".
At this point I wanted to explore the shadow copy itself to see what is being captured and what is not. I found a way to do it directly by creating a symbolic link to it as explained here
. I cannot find the file that I have deleted and therefore I concluded that it was not captured by the System Restore.
1) Is my assumption that System Restore which creates Restore Points which contains the previous versions of the files on my system correct?
2) I am not sure if running System Restore actually creates a Restore Point. Is there a way for me verify if a new Restore Point has been created?
3) Assuming that it doesn't create a Restore Point, is there a way for me to force it to? By changing registry values? Settings? Passing specific parameters?
What I suspect is happening is that System Restore do create Restore Points but there is an internal setting somewhere limiting creation of new Restore Points dependent on the time of the last created Restore Point.
Another approach to get this working, from the System Protection tab in System one can manually create a Restore Point. I might consider creating a task in Task Scheduler that replicates manually creating the Restore Point but I am not sure how to create that task.
I hope someone can give me some pointers. Thanks in advance!