Windows Vista: Moving Program Files and User Data, Revisited

In January, I wrote how you can move both your program files and user data folders using Junctions. I have been doing this for years on my XP installations and didn’t expect it to cause so much trouble.
In March, the first Windows Updates failed with error code 80070011. I have posted about how you can fix this on a per-failed-update basis manually.
With the release of SP1, this method didn’t work any longer. There was no pending.xml, no matter how many updates failed on me. Reader Jiminaus suggested to update the ProgramFilesDir.
Today, my system drive crashed on me and I had to do a fresh install, so I went a different way: Leaving the program files folder alone, I only moved the Users folder – this time, not using junctions, but by updating the relevant registry entries, as suggested by various sources and computer magazines.


Method 1: New location for all all future profiles
This method is only useful if you haven’t yet created your user profiles. On installation, create a temporary account first. Then, using the registry editor, update the key ProfilesDirectory in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList to point to your desired location. If you want to change the shared folder, too, change the key Public and [b]copy[/b] C:\Users\Public to this new location (do not move it). Copy the whole Public folder, not only its contents, as there are some hidden files inside that need to be copied, too.
Create your real user account(s), log out, log in as one of the new users (with administrative rights), and delete the temporary user. You can also delete the old profile from C:\Users, but leave the Users directory itself and the old Public folder intact.
Actually, I followed a slightly different tutorial that told me I could safely move the Public folder instead of making a copy. But, it seems (again) that some updates rely on the location of this folder. Of 64 updates, 52 repeatedly failed on me – on a fresh install! Most of them with error code 800F0826, which basically seems to mean that some other update failed and caused all others to fail as well. So I went through all the 52 updates to find the one with a different error code, and found a few with error code 80070003. One of them was KB938979, and scroogle helped me to find out that this error is a result of moving the Public folder.
People suggest to skip the update permanently, or revert the registry changes and move Public back, but what I did was to copy the Public folder, voilà, all updates installed fine.
I doubt that you’re required to keep more than the paths inside C:\Users\Public, but this time I wanted to make sure (at least for a while) that everything works. I might be tempted to delete the contents some day though (200MB of demo pictures and videos)…
Method 2: Moving existing profiles
Keep all your profiles in C:\Users, but move their contents (Pictures, Documents, Music, …) one by one with Vista’s built-in method: Right click, Properties, Path. There, you can individually specify a different target.
This does not work for the Public folders as you don’t have full administrative rights with UAC enabled. If you want to move the shared folders, you can either temporarily disable UAC as suggested in [url=http://support.microsoft.com/kb/933127/]Microsoft KB933137[/url], unhide the hidden Administrator account and use it, or [url=http://blogs.msdn.com/aaron_margosis/archive/2004/07/07/175488.aspx]run Explorer with full administrative rights[/url]; then, the option to move the folders will appear.

1 Response

  1. Moritz says:

    I can confirm that this (method 1) still works very well using Windows 7.