• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 760
  • Last Modified:

relocate Program Files and user folders to another disk

i have installed a new laptop (ASUS) with a 32 SSD memory.
i installed the OS (win7 pro 64b) on the SSD (C:\) and i want to have all other "stuff" on the HD (D:\)
1. Program files
2. Users
3. program Data

My questions are:
1. i understand that Microsoft is not recommending to move the program files folder to a different folder than the OS - why , can i do it ?
2. What id the best way of doing the transfer trough changing the registry after installation
or by "Audit mode" in windows 7
1 Solution
sikadmin--You can copy all personal files, settings, programs to D:\ .  Use Easy Transfer (migwiz.exe)

What you cannot do is transfer operating system files.
Davis McCarnOwnerCommented:
Moving the Program Files location can be pretty dicey and the best way would be to install the programs to "D"; but, even 32G should hold Windows and your Programs if you are a little careful.
The folders you really want to move are USERS and PROGRAMDATA.  PROGRAMDATA replaces the old All Users in XP and fills up with lots of junk.  The easiest method wants you to do it before creating any users and you can read how here: http://www.overclock.net/t/1133113/how-to-move-windows-7-vista-user-and-program-data-folders-pre-user-creation
You don't need to move the programs folder to another drive. Just, whenever you install anything, tell the installer to install it to a different location. Most installers have such an option, and if not, it is a software I wouldn't go for.

Apart from that there is a lot of software available that can be used from a portable device, like a USB stick, and that can of course also be started from a local drive "D:\". With all that is available that way there is only very little software I actually have to install. Apart from that those portable tools are freeware or opensource, so they cost nothing, and the utility that organizes them also updates them once updates get available:


There are ways to move the programs folder, but for that you would have to prepare your installation using Windows Automated Installation Kit (WAIK), but it will need a lot of learning and reading on your behalf to get it running the way you want it to:


Another way would be to boot move the folders from within another running OS to your other drive, then create a "Junction Point", which is something similar to a Linux Symlink or Windows Shortcut that point from your original drive and has the original name of the Program folder ("Program Files" and "Program Files (x86)" to where the new folder is located. You can do that via a cmd prompt (opened as administrator) using the following syntax:

mklink /J "Old Location" "New Location"

for example like this:

mklink /J "C:\Program Files" "D:\Program Files"

If you then open your explorer you'll see a Folder Icon with the Program Files name on your Drive C: with a small arrow like which is used for shortcuts. This then redirects all requests to the actual location of the Folder.

There is also a small GUI utility that makes it a little simpler:


Moving the folder needs to be done from another OS as often there is something open and already used, and those running items can't be moved.

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

sikadminAuthor Commented:
In this linkage way of doing things (Junction), what happens in case of updates will they be installed on the new drive also ?
meaning: lets say i had office installed on C:\ then moved to D:\ with a mklink left on C
i have updates to it from windows updates..where will they be installed now ? will they go to D:\ ?
The updates themselves will be downloaded to C:, but then installed to the location of the folder the junction links to (D:\).

But I wouldn't install Office at all, I'd rather use LibreOffice or OpenOffice, both are free and very good alternatives to m$ Office, and they are available as PortableApps which I mentioned earlier. If there really is some obscure reason for needing Office I would install to Drive D in the first place. The Installer of Office allows you to choose where you want it, you don't have to take the defaults...
sikadminAuthor Commented:
the real issue is with the default program files that windows installs on C with the windows, which i can do anything about them (cant choose where windows installs it)
how do i move them just by "copy paste"  and then do the junction ?
how do i have access to them trough a "different OS" as suggested above ?
Why move those? They don't take up much space and I'd just leave them.

With a different OS I mean you would need to boot the PC using a LiveCD like PartedMagic or WinPE or the UBCD4Win or install a temporary second instance of Windows to some other location on your PC (to drive D, or make an extra partition for it). To copy files I hardly ever use cut & paste, but rather a file-manager like the freecommander where you have 2 windows. In one window you can select the source, in the other the destination. Then you can just select all the files and folders from the source location and use the move button, and then the selected folders and files get moved into the other window which is the dest. It is much easier to use than windows explorer or cut & paste.

sikadminAuthor Commented:
2 more questions:
1. if you do the Junction link - does it mean that nothing will work on C, or he first looks on C the if it don't found it it goes to D

2. Do I need also to change the registry key as seen below:

1.      Open “Run” command
2.      Type “regedit”
3.      X86 - Navigate to : ” HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion”
4.      X64 - Navigate to : ” HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion”
5.      Change all DWORDs including the path to “Program Files”
You don't need to change anything within the registry. The Junction is an option that the ntfs file-system offers. The system looks on C and finds the junction and then the junction handles everything from then on, so although the OS thinks it is working on C, it actually works on D. To the OS it is totally transparent.
sikadminAuthor Commented:
So if i understand you correctly:
1. i install windows regularly
2. i transfer the program files to D (trough a different OS)
3. i create the junction (link file) in C
4. when installing new Program i try to change the path to D

what happens with programs that dont ask me and install themselves on C directly (need to move them again later)
If you have already transfered the Program Files folders and created the junctions, then you won't need to tell a program when it installs to install to D. Then they will automatically install in D. You would only have to tell them to install elsewhere if the program by default doesn't install to the Program files folder (some ancient software might still go directly into the root of C and create a directory there, but those are rare and most of them probably wouldn't work anymore on modern OS's, particularly 64bit OS's anyway).

Something you might try too, but I don't know if it would work, is to move the folders while windows is started in safe mode. Chances are that nothing is opened then inside the the program folders, and it might work that way without needing to boot into another instance of an OS, But I haven't tried this.
sikadminAuthor Commented:
Thanks !!
i will try it and let you know if it worked

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now