System File Checker does quite good job of getting system files in order. That is if you can get Windows to start at least.
Today I got computer on my table that was logging in/out endlessly instead of proceeding to desktop. Good indicator of missing system files (userinit.exe for these exact symptoms) and interesting exercise of restoring system files without GUI access.
Files on installation media
To make thing interesting files on Windows installation disc are not stored as is or even as conventional archive.
Instead they are either packed in .CAB archives in bulk or individually packed with last character of file name changed to underscore.
Expand is available both from usual command line and recovery console. In my case to restore userinit.exe from Windows disc it was like:
expand –r e:\i386\userinit.ex_ c:\windows\system32\
For extracting from CAB file it is bit more tricky:
expand source.cab -f:files destination
As usual for full list of keys and functions see:
Expand also allows to list files, packed in CABs but in my opinion it is easier to use another computer and archive software like 7-Zip to browse those.
To use this method it takes some insight (and googling) to know what exactly went missing. However with malware being common culprit it is not uncommon to match symptoms to specific file easily and in such case restoring/overwriting it fixes part of issue fast.
Knowledge Base http://support.microsoft.com/kb/888017
Geek Squeaks’ of the Week (#24) « What's On My PC #