Have you ever found yourself in a situation where after installing some particularly appealing application, a new video driver which promises astonishing effects with your new PC game, and after a reboot the system simply refuses to start? Or maybe you enter your credentials as you already did probably a million times, and you then end up watching a box which tells "Applying computer settings" but this lasts forever?
Being quite curious towards technology and technical gadgets (not necessarily meaning Vista gadgets smile_regular), and due to may job where I have to often install and test on my machine sample application I get from customers, unfortunately I found myself in this situation more than once and luckily in those occasions I've been saved by the by System Restore feature available in Windows XP.

When a while ago I decided to switch on Windows 2003 as my primary working machine, and I then needed to restore the system to a earlier point, I discovered that System Restore is not available in our server platform... but I didn't want to give up that "parachute" which saved me so many times (but not in that occasion... that is a lesson I learnt in the hard way... smile_sad).
So I decided to dig into this issue with a few questions in mind: why this is not available in Windows 2003? Could this be installed anyway, somehow?

I finally come up with the following procedure which worked great on my machine but I must warn you: read this very carefully before doing anything I describe here, and do it only if you feel comfortable working with the System Registry, the Services snap-in etc... As you can imagine, neither me not Microsoft can be considered responsible for any damage caused by this procedure, which is not supported by CSS (Customer Services and Support, formerly known as PSS).

So, if you're still with me, to start we need a WinXP installation CD (doesn't matter is Home Edition or Professional). In XP system restore is installed in syssetup.inf under the inf.always section. If you have XP installed, you can open up %windir%\inf\syssetup.inf and search for "[Infs.Always]": you'll see the section XP looks at for installing system components. You'll notice it has sr.inf, this is the inf for system restore. For Windows 2003, if you look at syssetup.inf you won't find sr.inf. This doesn't mean system restore won't work in server 2003, it just means we don't install it (now sure why).

Now we have to right click on sr.inf and select "Install", to install it on Windows 2003. If you have XP installed on another machine/partition you can simply right click on it; if you don't, extract \i386\sr.in_ from the XP CD to a folder of your choice, then right clink on it and select "Install". It will ask you where the files are, so point to the XP CD. When done you'll be prompted to restart the system: do it.

That was easy, now comes the tricky part. After restarting the system you'll get an error saying that the service could not start, specifically this is error 1068: this means it cannot run under the service is on. If you look at it in services.msc console, the path of the executable will be "C:\WINDOWS\system32\svchost.exe -k netsvcs". This got me thinking so I opened up sr.inf, and found this line:
HKLM,"Software\Microsoft\Windows NT\CurrentVersion\SvcHost","SRGroup"

I opened up regedit, and this registry key didn't exist. So it seems the sr.inf doesn't register system restore to run under the network services group. Using the above registry key as an example, I opened regedit and went to:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost. On the right side I saw netsvcs. I double clicked on it, but could not find SRService (this is the name for system restore).

On a hunch, at the bottom I added SRService, rebooted, and this time got no error on startup. I opened up rstrui.exe, and System Restore opened fine. I also had a System Restore tab in System Properties now, too. I was able to make a restore point fine, then restore the computer to it without any problems. So in the above registry key double click on netsvcs, and at the bottom of the list type in SRService (not sure if this is case sensitive or not).


Third Version