Keeping track of changes to a System during Software/Patch Installation

Solution 1:

You want to do the "poor man's snapshot". I do this fairly frequently when building my own MSIs for third-party software w/ WIX.

Process Monitor is probably a bit too verbose for what you're trying to do. You might try making a "snapshot" of the registry using something like:

REGEDIT /E BEFORE.REG

And then again afterward so you can compare.

With the filesystem, I've used the freeware utility "FileList" to generate a "before" and "after" snapshot of the filesystem.

Modifications inside existing files are problematic. You might have to take an initial snapshot, locate files that have been modified, then roll-back (I normally use a VM and the built-in disk snapshot functionality for roll-back) and take a "before" snapshot of each file that you know is going to be modified to compare to the "after" version.

Remember that capturing what changes isn't the same thing as capturing the logic of the setup program. Where possible, reverse-engineering the setup program is preferred to just trying to capture what changes. You may miss nuances that you aren't seeing because of circumstances of your snapshot computer's configuration.


The old WinInstall 2003 LE that came with Windows 2000 Server does a fairly decent job generating these kinds of snapshots for reference purposes, but the MSIs it generates are abysmal. (I gave up using it and have started just doing snapshots myself "by hand" as I've described above.)

Solution 2:

Sysinternal's Process monitor might come in handy here. Though it could be a bit too verbose, you can filter out other processes and tweak until it works best for you. Launch it and scan, then start your install and stop once it's done.

Process Monitor

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

There might be other Free solutions that are specific for the launched binary install, but I'm not aware of them.

Quick Update
I agree with Evan, at least for the registry, if it's too verbose you might want to run an export before and after the install. Windows 2003 Support tools come with windiff.exe (an old favorite for looking up differences in the registry - between two .reg files).


Solution 3:

Check out Total Uninstall

It will watch from before and after an install and tell you exactly what that program did.

http://www.martau.com/tu_download.php