Can I replace the Program Files folder with a symbolic link to another drive?

I have an SSD (C:) with 120GB, and an HDD (D:) with 1 TB. Windows 7 is installed on the SSD.

My question is, if I move "C:\Program Files" to "D:\Symlinked C Drive\Program Files", and create a symlink by throwing this - mklink /d "C:\Program Files" "D:\Symlinked C Drive\Program Files" - into an elevated command prompt, will everything still funtion normally?

I'm well aware that Windows doesn't like people moving directories such as Program Files around, but this way it should appear to have the same path to the operating system, and any programs.

I will not be changing the default installation directory, so please don't suggest that as an alternate solution.

May 23rd, 2014 10:10pm

I don't quite see the benefit of such a move but it should work. However, you won't really know for sure until you have tested this mode extensively. Undoing the change in case of problems should be straightforward. If this was my machine then I would start by creating an image of the System partition. I would also explore if Restore Points are affected.
Free Windows Admin Tool Kit Click here and download it now
May 23rd, 2014 10:36pm

The benefit would be that I could get the system startup times from the SSD, without having to worry about filling it up by installing too many programs. I have near-OCD levels of neatness in my file structure, and want a soluting that will work in every single case, which is why I will not just be changing the default installation directory.

Another advantage is abstraction. Once set up, I can pretend all my programs are installed on the C: drive, as I'm used to, so I won't have to change my habits when looking for a program depending on which computer I am using.

I should probably just backup the SSD to the HDD and try it for myself. Even if it somehow currupts both drives it shouldn't be a huge hassle, as I've just reinstalled the OS earlier today.

Restore points should be fairly straightforward. Since they function at a slightly lower level than explorer.exe, and all my programs will be physically installed on my HDD (D:), any changes made to the SSD (C:) should be unable to change my installed programs. Any revertions on the HDD to before a program was installed should remove it again, however. This could possiby lead to some inconsistencies with the registry, but that should be an issue for me specifically, as I never use Restore Points anyway.
  • Edited by Me, of Course Friday, May 23, 2014 10:53 PM Added point about Restore Points
May 23rd, 2014 10:46pm

The benefit would be that I could get the system startup times from the SSD, without having to worry about filling it up by installing too many programs.
-> On the countless Windows 7 machines I have configured I used a System partition of between 70 and 100 GBytes and never came close to filling it. I store all my data on drive D:.

Another advantage is abstraction. Once set up, I can pretend all my programs are installed on the C: drive, as I'm used to, so I won't have to change my habits when looking for a program depending on which computer I am using.
-> Good thinking.

Restore points should be fairly straightforward.
-> Maybe, maybe not. The Volume Shadow Service sometimes has its own ways of doing things.

I never use Restore Points anyway.
-> A brave statement. Restore Points, when they work, are a blessing in Windows.

Free Windows Admin Tool Kit Click here and download it now
May 23rd, 2014 11:17pm

I don't use Restore Points because that sort of solution isn't made to handle the sort of hacks I like to pull (Take this question as an example). I prefer more low-level backup, such as making an image of the SSD on the HDD weekly, and backing up my everyday activities, such as documents and game saves that Steam won't sync, using DropBox and symlinks. This also allows me to work with the same set of documents and saves from several different computers, while still having them in my standard folders, and not having to worry about anything besides giving it a few mins before shutting down the computer after I save something.

And I guarantee you I will fill the C: drive up. After installing Windows and drivers I've got 54GB left on the SSD, and I will fill that up with just half my game library.

I'll just make an image of my SSD, and try see if it breaks everything. I'll post the results back here in case someone else is curious about the same thing.

May 24th, 2014 12:00am

Try putting your Steam games on the hard drive too and using Steam Mover to quickly move the ones you are actually playing to/from the SSD or even a ram drive.

http://lifehacker.com/5626931/steam-mover-relocates-applications-to-free-up-space-on-your-primary-drive

http://www.traynier.com/software/steammover

Free Windows Admin Tool Kit Click here and download it now
May 24th, 2014 1:56am

First off, apoligies if this is a bit more unstructured than the rest of what I've posted. I've been fighting with the console command ICACLS all day without making any progress whatsoever, and crying blood, until I found another solution. Basically my brain is mush and I won't be as thourough as I usually am.

I've tested it now, and it seems to work perfectly.

Getting around the protection of the Program Files folder wasn't a huge hassle once I made a linux USB drive, but putting the same NTFS permissions on the symbolic link (and the folder it pointed to, as well) proved to be quite challenging.

I'll assume you're on a 64 bit windows 7 installation, and want to do this to both your Program Files folder, and Program Files (x86).

Here's what I did to make it work:

Start by making a bootable Linux USB drive first. That way you can work while it's downloading/installing, and you don't have to wait on it after you've done what you can before you need it.

Download NTFS Permission Tools, a free tool that lets you do in seconds what I've spent an entire day trying (and failing) to figure out how to do by command line. You can get it as a portable version so you won't actually have to install it. (I can't link it here because Microsoft hasn't verified my account yet.)

Copy the C:\Program Files folder and C:\Program Files (x86) to where you want them to be stored after this. I used D:\Symlinked C Drive\Program Files and D:\Symlinked C Drive\Program Files (x86), respectively.

Create the symbolic links somewhere that is not the C: drive. You can't create a link where there already exists a folder with the same name. The syntax is this: mklink /d <path to the created link> <path the link will point to> (Remember to run it in CMD with admin privileges). In my case, for the regular Program Files folder, I wrote this: mklink /d "C:\New folder\Program Files" "D:\Symlinked C Drive\Program Files"

Restart your computer in Linux. Don't actually install it, just run it directly off the USB drive

Delete the C:\Program Files folder. DO NOT DELETE THE C:\Program Files (x86) FOLDER YET. Move the symbolic link Program Files to the root of C:.

Back to Windows.

Open NTFS Permission Tools, and navigate through it to your C: drive. Right click the folder Program Files (x86) and copy permissions. Right click again and copy security settings. Now paste both to the symbolic link Program Files.

While still in NTFS Permission Tools, navigate to where you copied the program file folders to. In my case, it was "D:\Symlinked C Drive". Paste both permissions and security settings to both Program Files and Program Files (x86).

Back to Linux.

Delete the C:\Program Files (x86) folder. Move the symbolic link Program Files (x86) to the root of C:.

Back to Windows.

Open NTFS Permission Tools, and navigate through it to your C: drive. Right click the symbolic link Program Files and copy permissions. Right click again and copy security settings. Now paste both to the symbolic link Program Files (x86).

And now you're done.

  • Marked as answer by Me, of Course Saturday, May 24, 2014 6:57 PM
May 24th, 2014 6:57pm


-> On the countless Windows 7 machines I have configured I used a System partition of between 70 and 100 GBytes and never came close to filling it. I store all my data on drive D:.


Well, that's good news for you, but i use lots of designtools, IDEs, Labware and stuff, that consumes about 1TB (yes, 1 TB) space in \Program Files\ and \Program Files (x86)\ so, yes, there IS use in moving these files to another drive.


Free Windows Admin Tool Kit Click here and download it now
August 11th, 2015 3:23am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics