User Profiles - Relocate to another Partition or Disk
Old geek, new tricks
Join Date: Jul 2009
Location: A Finnish ex-pat in Leipzig, Germany
How to Relocate User Profiles to another Partition or Disk in Windows 8
The method described in this tutorial allows relocating user profiles and folders already while installing Windows 8, before any user accounts are created, as well as after installation on an already installed system.
The advantage of this method is that it changes some internal Windows 8 environment variables
, being a ďDo it once and forgetĒ procedure. Changing the variables takes care of all existing and future user profiles, locating them when created to selected drive or partition. The method is fail proof and reversible.
When Windows 8 is installed, 5 or 6 system folders are created depending on chosen bit-version:
Microsoft does not recommend relocating, moving ProgramData, Program Files, Program Files (x86) and Windows folders. Too much is depending on information and data stored on these folders. However, there's simply nothing preventing us to move the Users folder. In this tutorial we show how to move (relocate) the Users folder by changing an internal Windows Environment Variable.
- PerfLogs (Performance Logs), where Windows stores performance and reliability logs
- Program Files, where applications and software are installed. Windows x86 (32-bit) stores all applications here, Windows x64 (64-bit) only native 64-bit applications
- Program Files (x86), exists only in Windows x64. All non-x64 applications are stored here
- Windows, which contains core operating system files and drivers
- ProgramData, where some applications store application and user specific settings and configuration files.
- Users. This is the ďhomeĒ of all user profiles. When a new user account is created and this new user logs in first time, Windows creates a set of user specific folders (Users\Username)
Moving Users folder can save a lot of space on system disk. Pictures, mp3ís videos, documents and so on, a user folder with its subfolders can be tens, sometimes hundreds of gigabytes.
Personally, when installing Windows 8 I always use Audit Mode to relocate Users folder, leaving system drive only for Windows and applications.
Screenshots from pre-release version Windows 8 Consumer Preview. Actual Windows 8 has different colors but the functions are the same, tutorial can be used as it is.
An upgraded Windows cannot be sysprepped. As this method is based in sysprepping, this tutorial is valid only for Windows setups which have not been upgraded.
This means that if you have for instance in-place upgraded Vista or Seven to Eight you cannot sysprep and this tutorial cannot be used in your case. The same applies if you have upgraded Windows 8 to Windows 8 Pro or Windows 8 to 8.1.
Notice that a repair install is also an upgrade install, so if you have ever done a repair install (= in-place upgrade to same edition), you cannot sysprep.
When sysprepping an existing Windows setup, it only works if the Windows 8 was installed clean and has never been upgraded or repaired using repair install, or if it is the original pre-installed Windows 8
Although I have repeatedly told that relocating ProgramData will cause Windows Store and Apps as well as PC Settings not to function, people keep doing it using the method described in this tutorial.
DO NOT RELOCATE PROGRAMDATA! YOUR WINDOWS STORE AND APPS WILL NOT WORK IF PROGRAMDATA IS MOVED FROM ITS DEFAULT LOCATION.
1.1. Boot to Audit Mode when installing Windows 8
(If you have already installed Windows 8, continue from step 1.2.)
Start Windows 8 installation normally.
When installation after a reboot or two is completed and Windows 8 comes to Personalize page (see screenshot below) press CTRL + SHIFT + F3 (press and hold down CTRL and SHIFT, press F3 still holding CTRL and SHIFT down, release all three keys).
DO NOT ENTER PC NAME HERE OR CLICK NEXT! Just press CTRL + SHIFT + F3.
Your computer reboots now. Donít panic, itís just doing what it really should do. Windows 8 starts now in so called Audit Mode, using built-in administrator account to let you to modify Windows before any user profiles and user specific folders are created.
Continue from step 2.
1.2. Boot to Audit Mode from existing Windows 8 installation
First you need to open Command Prompt using built-in administrative account: hover pointer over bottom left corner of the desktop, right click to open Start Menu , select Command Prompt (Admin):
Command Prompt window opens. Type this to command prompt:
C:\Windows\System32\Sysprep\Sysprep.exe /audit /reboot
Hit Enter.Windows reboots now to Audit Mode, "thinking" it's been started first time. Text Preparing can be seen on screen.
If you are interested to know more about Audit Mode, here are some links for you to read:
2. Audit Mode
Windows has now booted in Audit Mode using built-in administrator account, and you should see Metro interface. Click Desktop to enter classic Windows desktop:
To start, click Cancel to close System Preparation Tool:
If you donít have a second internal hard disk or you have not created and formatted an extra partition on your system disk, you need first to create one. Notice that the drive or partition don't have to be empty, but especially if relocating on an existing installation it must be big enough to allow Users folder to be moved there. When we sysprep with answer file on next step these two folders are physically moved to new location.
If you already have a formatted second HD or partition, you are ready to go.
2.1. Creating an answer file (script) for System Preparation Tool
Audit Mode lets us to start Windows without creating any user accounts. At the moment we are using the built-in administrator account. Your own accounts are created later.
We are going to use System Preparation Tool (sysprep) to run an XML-script (so called Answer file) which modifies the Windows registry and settings as we want to, relocating Users folder to another partition, E: in this example, by changing a so called Windows Environment Variable. You can of course use any internal drive you want to.
Extensible Markup Language (XML) is a set of rules for encoding documents in machine readable form.
To make changes to Windows registry, we will now create a script in XML and run it with sysprep.
Open Windows Notepad text editor (press Win + R, type Notepad, hit Enter). Type the following script, or copy it from here and paste to Notepad (please do not forget to read the notes below code lines 4, 6 and 11 regarding said lines):
- <?xml version="1.0" encoding="utf-8"?>
- <unattend xmlns="urn:schemas-microsoft-com:unattend">
- <settings pass="oobeSystem">
- <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
(If you are installing Windows x64 (64-bit), value prosessorArchitecture should be amd64, also on Intel processors. For x86 (32-bit) it should be x86.)
In this example the new location of Users would be E:\Users. Change the drive letter according your needs.
- <cpi:offlineImage cpi:source="wim:F:/sources/install.wim#Windows 8" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
(Change the drive letter in wim:F: to that of your CD/DVD drive, USB stick or virtual drive containing your Windows 8 installation media (DVD/ISO). Notice that installation media has to be available to system when running sysprep. Change Windows version accordingly, Windows 8, Windows 8 Pro, Windows 8.1 or Windows 8.1 Pro.
(Please leave the row numbers out when typing or copying the above code. Answer file generated with Windows System Image Manager).
If you are installing Windows 8 PRO x64 from CD/DVD/USB F: and relocating Users to E: you donít have to change anything, you can use the script as it is.
Select Save As from Notepadís File menu. Select Save as type: All Files. Name the file as you want, add .xml extension to the filename. Save the script to the root of any drive:
Alternatively you can download the answer file here: relocate.rar
2.2. Using System Preparation Tool
Open the Start Menu (Win + X), select Command Prompt (Admin).
First stop the Windows Media Player Network Sharing Service (WMPNetworkSvc) by giving the following command:
When the service has stopped, type the following to the command prompt and press Enter to move to the right folder:
net stop WMPNetworkSvc
Now type the following and press Enter (notice the name and path of the script we created above, change it if needed. I saved answer file on E so the path is E:\relocate.xml):
Sysprep.exe /audit /reboot /unattend:E:\relocate.xml
You should now see System Preparation Tool dialog telling it is working on our script:
Let it run, donít touch mouse or keyboard now. When System Preparation Tool is ready, Windows must and will reboot. It reboots back to Audit Mode.
2.3. Exiting Audit Mode
To continue Windows installation we have to exit Audit Mode and reboot. After reboot youíll land back on Metro interface. Click Desktop to enter classic Windows desktop, click OK on System Preparation Tool dialog to boot normally in OOBE i.e. normal mode.
Before clicking OK, check that System Cleanup Action is set to OOBE, and Shutdown Options set to Reboot:
3. Finalizing installation
Finalize Windows installation.
If you did this from an existing Windows installation, you will notice that for your Windows this is as if it were the first time Windows was booted i.e you are back on OOBE boot, inserting product key and personalizing Windows. It also means that you have to enter so called initial user. In this case Windows does not accept any of the users created earlier, whether local or Microsoft accounts; instead you need to create a new user.
An example from this PC I am using now: I had already created two users and installed software when I decided to do sysprep to relocate Users. I had a local account for me and an Microsoft account using my email address. After finalizing sysprep, I needed to create a third user Test because system does not let me to use either Kari (local account) or Kari (Microsoft account) usernames because those accounts already existed on this PC.
So I created user Test (local), then from Welcome screen logged in as Kari (Microsoft account) and simply deleted the new Test account which I had just created. An extra step, small annoyance but there's nothing to do to avoid it.
When Windows finally boots first time to Start Screen you will see that Users folder is now located on the new drive or partition with all its subfolders.
When you check your system drive (C:) still contains Users folder. The old, original Users on C: can contain some Windows Store information that may not be moved, so let the old Users folder stay on C:. It will no longer grow, all new user data will be stored on a new location, but it is essential it remains on C:. You can hide it if you want, you are never again going to need it.
Notice that Users folder is not created on or moved to new location when you return to Audit Mode after running sysprep. Relocation will first happen when you exit Audit Mode and boot to OOBE (Welcome) mode to continue installation. If done on an existing system the first OOBE boot after sysprepping can take quite a long time, depending on how big those folders are that sysprep is physically moving to new location.
Remember also that when you create a new user profile the user folders are not created before the new user logs in first time.
Thatís it, folks! Welcome to the Windows 8:
Now create a system image and you wont have to ever again remember jumplists and links everytime you restore the system to earlier point or system image. User account folders are now permanently moved to another drive, all new user profiles are automatically created on this new location and your system drive wonít be full so soon.
Thanks for reading.
Written and published on 02nd of March 2012
Edited and updated on 6th of February 2013
Edited, answer file's validity checked on 14th of April 2013
Added instructions for Windows 8.1 Pro preview on 29th of June 2013