I've got a Windows Server 2003 computer with a payroll application, and a new Server 2008 System that I'm migrating to. My question is regarding (I believe) all Windows:
How can I track all files installed by an installer so that I may copy those files over to another system? I notice in Windows that the installers for most applications don't always log everything. If I had a file list I could simply script the copy.
Being a Linux guy, I'd love to hear how to do this in Windows *
Dude .. this is PAYROLL!
Do not screw around or experiment or act until you know what you are doing. Every single person in the company will hate you if they get paid wrong or late. Not to mention your own family, who need you to get paid so they can eat. I over-dramatize, but only a bit.
Windows installers do much more than just copy files. They register DLL files, write to the registry, and establish database connections. Your best bet is going to be finding the install package for your software and reinstalling the software. Once you have everything installed, you can try to copy over any database files.
VMware (or Virtua Box or whatever) is your friend. Build a Win2008 server. Try installing the package again, copy any ODBC connections or config files, see if your application works just the same.
Once you really understand what your application requires in your particular configuration then you can migrate with a bit of confidence. And if you script your installation then you (or someone else) could do it again in another year ;-)
The tool for the job is Process Monitor.
It will show you all the file access, registry access, and network access for any windows process.
The problem is, sometimes installers will fork a process and launch another installer or run a script of some kind... and you'd have to filter through hundreds of thousands of system trace events to find out which are related to your software.
Best bet is to call your vendor for support - and if you dont have any, get some now. This is all the excuse you need for your boss(es) and you'll be glad you have it when the inevitable "Is this because it's on Server 2008 (x64?)?" question pops up.
There isn't an easy way to do this as you'd also need to know what registry entries the installer had created and what COM servers it registered. You may find that just copying the folder then any obviously related registry keys may work, but it would be safer to reinstall.
JR
It sounds like you really want to make an MSI, which is sort of the equivalent to a .rpm or .deb in Linux. There are lots of commercial softwares out there with which to do it.
Here's the Microsoft KnowledgeBase article: http://support.microsoft.com/kb/257718
Not knowing your motivation to move the application, have you considered a P2V process? Leave the app on the OS, move the OS? Legacy apps / rescue from old hardware are big P2V targets.
Whatever you do, do not just copy the files. You need to run the installer in order to create the proper registry keys and register the proper DLLs. As tomjedrz stated- this is payroll. Screw this up and the data lost might be how to get your paycheck sent out (although it might figure out your severence.)
How about doing fresh payroll-application install on server 2008 machine and then backing up payroll-application and restoring it on server 2008 machine.