Windows: Move programs (with registry entries) to a different hard drive

23,351

Solution 1

It's not impossible. It is though if you think you can do it with only registry edits. After typing the instructions for almost two hours I decided to delete it all and say this instead.

The ONLY way involves several steps and cannnot be done in one sitting. After the main process you will have to watch your system for about two weeks so that you can immediately address any issues which will undoubtedly arise.

To do this you will have to have knowledge in the following:

  • registry edits
  • command prompt
  • junctions (a.k.a. junction points; or symbolic links)

Registry Edits

This is the area that will make you have to monitor your system for the following weeks. It is impossible to know and have memorized all the keys that are linked to the folders you wish to move because to do so would mean you have memorize the entire registry structure and all its link between every possible key.

Don't trip, all you need to know is the main ones and be willing to watch your system. You will be able to troubleshoot out the keys you missed if you write everything down, have time and patence.

Command Prompt

You do not need to have advance skill here. What you will be doing is basically the same one line command over and over depending on how many main directories (folders) you want to move. For example: C:\Program Files is equal to one (1) time you will have to type the command yet it will move "Program Files" and all the subdirectories (everything in it). Take heed though; you will be running the commands in command prompt prior to windows booting up (requires an install or repair disc).

The junctions will also be deleted and created here but that is not the issue concerning them.

Junctions

This is the part that is so mysterious and fatal to your systems successful transplant. Windows has hundreds of "symbolic links" or "junction points" (the two are interchangable) that are the foundation of its structure. Basically, though it is a little more complex, a junction is a reference to another location. A basic example is your library in windows 7 (which consists of more than one junction by the way). Watch out because there are whole directory structures that are nonexistant has they are actually a structure of junctions. An example is the C:\Users\All Users... There really is no such thing as an "All Users" Profile in Windows, it is just a structure of junctions. And of course the hidden directory C:\Documents and Settings... is the same thing.

I am not trying to scare but warn. In about two to three days after, if not sooner, you will start to get "no such interface supported" dialog box every time you try to open something! IN OTHER WORDS EVERYTHING YOU CLICK ON WILL RETURN "NO SUCH INTERFACE SUPPORTED" DIALOG BOX AND I MEAN EVERYTHING!!! This is only if you do not get all the junctions right.

On the other hand, the command prompt command is just a short one liner to delete the existing one and a just as short one liner to create the new. But you will have to type the two for about forty different junctions( ten minutes if you have a pre-made list).

Conclusion

If this is something you are willing to try and do, knowing that you are riskings your entire OS, please go to my profile to get my email address and hit me up. I will tell you how to get your list of junctions, the registry keys to edit, how to get into command prompt before Windows boots up, and of course the commands to use. If you listen and do exactly has instructed, you will do just fine. H-e-double hockey sticks I am about to attempt to move my user profile in Windows Home Server to another hdd myself...

Disclaimer — I am not responsible for the loss of data and/or, depending on the folders attempted to move, the loss of the entire OS of any who email me requesting instructions on how to do the aforementioned. I freely declare that I am trained with advanced skill and that I do know beyond doubt that this process is proven to work. However, it is dangerous and MUST be completed without the slightest deviation from the outlined procedure. Therefore your actions and their results are your own.

Solution 2

As far as I know there is no way to safely copy over the whole Program files folders and corrosponding registry entries as well as user files stored in the user directory. I did a quick search on google and everything I found was recommendations on reinstalling the software because of broken registry entries.

Because you said that cloning is not possible, you should reinstall all programs, this is just the cleanest way to do it.

Share:
23,351

Related videos on Youtube

Eli
Author by

Eli

Updated on September 18, 2022

Comments

  • Eli
    Eli almost 2 years

    I've got a bunch of programs on an old HDD, which I cloned to a new HDD, however had to reinstall due to issues with the currently installed drivers.

    Thing is, now, is it possible to copy all the programs from the original drive, WITHOUT cloning the entire install, to the new drive? This means copying all the registry entries for those programs as well. I'm not willing to pay for a program to do this.

    • Andrew Lambert
      Andrew Lambert over 12 years
      In theory this may be possible by dumping the HKLM\Software\<appname> key from the old registry and merging it into the new registry. If the paths are the same (e.g. C:\Program Files\<appname>) then there is a possibility that Windows won't BSOD immediately and the application will run normally. My gut tells me that this possibility is vanishingly small, though. This assumes that the application in question doesn't ever store keys outside of HKLM\Software\<appname> or modify the values of other application's keys, etc.
    • surfasb
      surfasb over 12 years
      Plus you have no idea where programs store their data, since they can choose to store the data where every they want. For example, I hate it when programs decide to store their settings under My Documents, but nothing is forcing them to do otherwise, only it is suggested that they store their data under %localappdata%.
    • MSalters
      MSalters about 12 years
      The easiest solution is to use Junction points.