You may know something I do not - I have never heard that VSS may be involved. Any
references?
I did a bit of poking around and found this:
http://blogs.technet.com/askperf/archive/2008/04/23/understanding-component-based-servicing.aspx
which more or less matches my understanding of how Vista+ servicing works.
There is also this:
http://blogs.technet.com/askcore/archive/2008/09/17/what-is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-large.aspx
and the same engineer has his own blog which is a good read if you are interested
in servicing:
http://blogs.technet.com/joscon/default.aspx
In particular see the third comment on this post:
http://blogs.technet.com/joscon/archive/2009/06/12/why-is-the-windows-winsxs-directory-so-large.aspx
The short summary of all of this is that it is not possible to (safely) delete
the uninstallation backup files in Vista/W7, except for the special case of
service packs for which a specific tool, different for each service pack, is
provided.
It should perhaps also be specifically pointed out that these files are stored
differently than in XP. In XP you have the system directories which contain the
current version of all the files, and you have uninstall directories which
contain backups of the files that were in the system directories at the time the
particular installation took place. Of course, this means that unless you
uninstall updates in the right order you may wind up in an inconsistent state.
In Vista and above, the servicing store contains a copy of all the files that
were originally on your system in a single logical store (I am simplifying). For
each update you have applied, there is another logical store containing the
corresponding files. When you add or remove an update, the system works out
which version of each file should be in the system directories (usually the most
recent!) and puts a copy there. (In fact, to conserve disk space, identical
files are in fact hard linked together so that there is only one physical copy.)
The upside of this is that you can add and remove updates in any order you like,
and the servicing store will make sure the right files wind up in place. It
also eliminates some of the issues that update.exe suffered relating to the
release and hotfix branches. it is a much more elegant system, unfortunately the
implementation does not seem to have performed as per spec.
In principle I suppose someone could reverse engineer the servicing store and
figure out how to identify those files that have been superceded, and then
delete them. On the other hand, I suspect that Windows would notice they were
missing, mark the servicing store as corrupt, and refuse to install any further
updates until the problem is corrected.
Harry.