Ed. note: If you've tried moving the Windows Users directory to a location other than the default, you know it can be quite an undertaking. Reader Roobs wrote in detailing how he moved his Windows 7 Users directory without nasty registry hacks.
When scouring the net for hours on a method of relocating the entire Users directory (in Windows 7) on another partition, most of the methods were not good. They mostly involved nasty registry editing and dummy accounts and had quirks that could cause potential issues further down the line.
Eventually, I came across a brilliant method on tuts4tech by a user named "ohdannyboy". It's utterly flawless, and makes use of symlinks. It's simple, and you can just forget about it after it's done. Everything takes care of itself. The only quirk is that accessing the Users folder from the C: drive (for example) appears as "C:" when it's actually on "D:". But this appears to be the intentional behaviour of symlinks. Several months on for me, and it's like nothing was ever changed.
Unfortunately, that post no longer seems to be there (the site crashed shortly after, and I think they had to resort to backups or something). It's too good a method to let it disappear. Just remember that this is THIS user's method and NOT mine.
It's also best to do this on a clean install of Windows, unless you don't mind waiting awhile...
I've read all I could find about this, and the information below is correct and tested: To most easily move all user files and user program files off your boot drive (an SSD in my case), follow these instructions.
FIRST, Create a restore point (they're better in Windows 7 than you might remember):
1. Open System by clicking the Start button, right-clicking Computer, and then clicking Properties.
2. In the left pane, click System protection. If you're prompted for an administrator password or confirmation, type the password or provide confirmation.
3. Click the System Protection tab, and then click Create.
4. In the System Protection dialog box, type a description, and then click Create.
THEN: Go to System Recovery/Command Prompt:
1. Boot with the Win7 Install DVD, choose language, currency and keyboard, and hit Next.
2. At the screen with the "Install Now" choose "Repair your computer"
3. You will be asked if you want to "Repair and Restart" by the System Recovery options, choose "No".
4. Then Make sure that Windows 7 is listed as one of the installed OS's available for recovery, and that it's selected and then press next. You will be given a list of recovery tools.
5. Choose "Command Prompt".
Find your virtual Windows drive loaded from the Win7 media (probably either C or X), find your actual Windows/SSD drive (D or E) and find your HDD (regular hard drive) (D or E).
In my system normally, C=SSD with Windows on it, D=HDD data drive
Using Win7 Update media, the drives in Recovery mode were set up differently, thusly:
X: virtual/temp Windows drive,
E: actual Windows/SSD drive,
D: HDD, hard drive I wanted to put Users on.
Some report that System Recovery mode will set up their drives like this:
C: virtual/temp Windows drive
D: Actual Windows/SSD drive
E: HDD, they want to put /Users on.
In the command prompt you will be using Robocopy (NOT xcopy!) to copy c:Users to d:Users, then delete the old c:Users, then make a symlink from c:Users to D:Users. Note that you must do these things in order, and you must not have a d:Users dir before you do this.
NOTE: in the System Recovery command prompt window, your drives are not the same as they will be after you leave recovery mode! So adjust the commands below for how the drives are in Recovery Mode, and then they'll turn out correct later.
robocopy /mir /xj E:Users D:Users
To move /Users from Windows/SSD to HDD.
/mir tells robocopy to mirror the directories, this will copy all files and permissions.
/xj is very important, this tells robocopy not to follow junction points. If you forget this, you will have a lot of trouble.
Make sure no files failed to copy (FAILED column = 0).
Then you must remove the old Users Folder from the Windows/SSD (c:) drive, before you can create the symlink:
rmdir /S /Q E:Users
Create a NTFS Junction/symlink that points to the new Users folder:
mklink /J E:Users D:Users
Use the /J switch to create a junction that's a hard symlink. (If you use the /D switch, you'll also have to edit the registry, cuz it won't be a hard link.) Using /J, when Windows looks for the C:Users dir, it will find it! But it will be on the HDD instead of the SSD. Tricky!
To see the proof of what you've created, still in the command prompt window, go into the actual Windows/SSD and do the "dir" command, and you'll see:
" Users [D:Users] "
Now restart and you'll see /Users on your HDD, and there you go. No further configuration or fiddling required. New user profiles will all be stored on the D: drive, as will any user specific data. And it is achievable without any messing about in the registry, searching and replacing values, or having to mess with new profiles in any way. Totally set and forget.
If you give the method above a try, make sure you set your System Restore poing just in case something goes wrong. If you've tried this or other methods, let's hear about it in the comments. Thanks Roobs!