With nothing more to go on than a vague error message (not your fault – Windows error messages are notoriously vague), I can only make a vague guess as to the underlying problem. But this Microsoft Answer post seems to confirm my suspicion.
A little bit of backstory (skip this if you don’t really care about what’s going on and just want it fixed)
Windows implements a lot of features using a client/server model, even internally within the same computer. In particular, COM/COM+/DCOM has been Microsoft’s main development model for Windows until .NET came along. But even now, .NET uses COM wrappers to provide an interface for “conventional” clients.
Okay, so an example would make this a lot more clear. Suppose you install Autodesk’s AutoCAD (a Computer Aided Drafting package used in engineering, architecture, etc.). When you run explorer and highlight an AutoCAD drawing (.dwg) file, you might get a little thumbnail view of the drawing in the status bar at the bottom (in Win 7, anyway). And it might tell you some AutoCAD-specific information there, too, like who was the last person to modify the drawing, or what project the drawing belongs to.
But how does that information get there? All of that data is proprietary to AutoCAD, so Explorer can’t do it by itself. What happens is that when you install AutoCAD, it registers a COM/.NET “server” – basically just a program library that contains some functions for drawing a thumbnail of a .dwg file, fetching drawing properties, etc. It also registers a file property handler (I can’t remember the exact terminology for this in Windows) with Explorer and links it to the .dwg file extension. Whenever Explorer encounters this file type, it runs through the list of all the handlers hooked to that file type, tries to load the appropriate “server” (a .dll, typically), and passes the requested functions of to the server.
This is your problem…
All of this business of “registering” a server or a file property handler really just means adding some particular entries in the Windows registry (hence its name). Servers are identified by a pseudo-random hex string called a “globally unique identifier” (GUID). These are all the entries you see under HKEY_CLASSES_ROOT/CLSID and HKEY_CURRENT_USER/Software/Classes/CLSID in the registry. A typical Windows computer will have hundreds or thousands of registered classes.
What’s likely happening is that Explorer is trying to invoke a registered server, which might a 3rd-party shell add-on like my AutoCAD example above or some Microsoft-internal feature, but somewhere along the chain registry entries that tie this whole system together, “something” has run amok. Unfortunately, “something” could be virtually anything. My guess is that some COM server class that should be registered isn’t. This could be fixed by running “regsvr32.exe <missing DLL>”, but you would first need to figure out which server was damaged. This is very difficult to do without a good understanding of Windows internals and an API spying tool like procmon from Sysinternals.
So, what now?
Several possibilities spring to mind. Rolling back to a previous system restore point is probably the best and easiest solution, if it works. If the error itself interferes with your ability to run the system restore utility, you might be able to work around it by booting to safe mode.
Failing that, there’s a decent chance that the busted registry entries are user-specific. The Windows registry is split into several sections called “hives”, one of which stores user-specific settings and is backed by the (hidden, system) file "%userprofile%
tuser.dat. You can tell if that’s the case (and get around it) just by logging in as a different user. If you can’t get the system restore utility to run from your own account, even from safe mode, but everything works fine from a different user account, then you can use that one to the system restore.
However, odds are that your computer only has one user account with interactive login privileges. Moreover, to run system restore, the account will need admin privileges. You’ll either need to create a new user account and grant it admin privileges or (probably simpler) just enable the built-in “administrator” account, which is disabled by default.
I’m not going to reinvent the wheel, since that’s a common issue that a lot of people have already written instructions for. Just google something like “enable administrator account windows 7” and/or “create new user windows 7” and I’m sure you’ll find several step-by-step instructions for that.
If the problem is only affecting your account, and you finally get system restore to run but it doesn’t solve the problem, then likely your only option is to backup your documents, destroy your user profile, and create a new one. You’ll lose your application settings, browser history, etc., but it’s really your only option at that point if you don’t have guru skills 