I would like to find the changes made in the registry after installing something on my computer. However I would like to also know what can be done with ease as a general procedure.
Run the installer and watch it with Sysinternals Process Monitor. You can filter the data so that only operations done by the installer are shown. You can even filter down to whatever operations you want to see (RegWrite, RegQueryValue, etc) and save the capture for later viewing.
Process monitor is freeware.
You could also use WinDiff. You can save exported registry files and then compare them afterwards:
WinDiff is free and open source.
Another FOSS solution for comparing actual registry exported files is RegShot.
RegShot is a small registry compare utility that allows you to quickly take a snapshot of your registry and then compare it with a second one - done after doing system changes or installing a new software product. The changes report can be produced in text or HTML format and contains a list of all modifications that have taken place between snapshot1 and snapshot2.In addition, you can also specify folders (with sub filders) to be scanned for changes as well.
if you happen to have Total Commander, this is pretty easy:
export the registry before the installation and after the installation (save with the same name in different folders)
open both folders in Total Commander, highlight the file on one side, go to Files > Compare By Content... voilá:
Total Commander is shareware, try before you buy.
A word of caution: if the registry hive is large, then exporting can take a while, and worse, Windiff can more or less hang when trying to read large
.reg files. Use WinMerge instead because it can handle large files, diff them faster, and the results are better (sometimes Windiff just gets it wrong).
If you want to compare the registry before and after an installation, then you may as well use an installation monitor. Again, there are plenty of them, but one of the main ones is PC Magazine’s InCtrl5 (you may have to pay to download it from their site, though the program itself is free, so there are plenty of sites that have it). They have released an update called InCtrlX which presumably, is better. Total Uninstall is a good commercial one. I generally like my old copy of InCtrl5, but Z-Soft Uninstaller has the same function and is exceptional (it’s the best of the dozen or so that I have tried); plus, it’s free.
Another solution is to analyse the installer itself. That is, look inside the EXE/MSI/BAT/INF/etc. file to see for yourself exactly what it does when it installs, including changes to files, registry entries, services, drivers, and such. That way you can avoid the whole detection process altogether. I find that 7Zip is the best way to look inside most executable installers (such as NSIS), because you can see the files and scripts and such. For MSI installers, I suggest either Microsoft’s own ORCA or InstEd. A good commercial tool for MSIs is AdvancedInstaller
I use WinMerge but I have built an application to convert WinMerge patch files to .reg format. It works great for non-M$ apps, but since WinMerge doesn't maintain HK in generated patch files, mostly just for install/uninstall uses. I had one application in particular that I couldn't install on x64 Win7, but I knew it worked. I exported entire reg to file1, installed, exported entire changed reg to file2. Make a comparison patch with WinMerge then used my application to clean up all the unecessary content.
I wanted to compare actual hives and not exported files and to be able to easily copy things between them.
- Registrar Register Manager It has a built in comparison function that will compare hives that you have loaded. However, I could not find a simple way to copy the missing/changed items from one hive to another and did not receive any answer from their customer support, so I gave up trying with it.
- Beyond Compare The professional version will also compare hives that you have loaded. (You will need to load them with regedit or some other tool.) Once you have done that the comparison tool easily allows copying the missing/changed items from one hive to the other (and when you have highlighted an item, knows that the copy button should copy it to the other hive). It can copy whole subtrees or individual keys, but you must select the subtree (or key) you want copied. There were some keys it would not let me copy. I assume that they were locked by some protection mechanism of the registry system itself.
So, here is the steps I used in detail. Assume that I want to copy items from the registry on partition D (hive SOFTWARE) to the registry partition E (hive SOFTWARE) while running from partition C.
- run regedit (booted as partition C)
- select HKEY_LOCAL_MACHINE
- from the File menu, pull down LOAD HIVE
- browse to D:\WINDOWS\SYSTEM32\CONFIG\SOFTWARE (load that hive) name it d-software
- pull down LOAD HIVE again.
- browse to E:\WINDOWS\SYSTEM32\CONFIG\SOFTWARE (load that hive) name it e-software
- run beyond compare
- pull down NEW SESSION/REGISTRY COMPARE
- in left pane address box enter reg:\HKEY_LOCAL_MACHINE\d-software
- in right pane address box enter reg:\HKEY_LOCAL_MACHINE\e-software
- wait while it colors the items below (it's doing the actual comparison)
- select a blue (missing) or red (different) item on the left side
- if you want to copy it, use the arrow in the tool bar, which will copy it to the right side
- if you select an item on the right side, it will copy it to the left side.
- when done, close both applications