The method described in this tutorial allows relocating Windows 10 main profile folder Users including all present and future user profiles and folders while installing Windows, before any user accounts are created, as well as later on an already installed system.
The advantage of this method is that it changes the value of one internal Windows 10 environment variable, being a “Do it once and forget” procedure. Changing the variable 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.
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.
Please notice that the Users folder can only be relocated to a hard disk or SSD. On tablets with often small internal storage it would be practical to move the Users to an SD card but it can’t be done.
Relocating Users folder during installation
Relocating Users folder on an existing Windows installation
Upgrade and Sysprep: what to do
Video: Windows 10 Creators Update – Relocate Users Folder
Creators Update will be released in March / April 2017, at which point the tutorial will be rewritten. This video shows how east relocating Users folder has become. Video made using build 15007.
Method One
Relocating Users folder during installation
1. Install Windows 10
To clean install Windows 10, see this tutorial: Windows 10 – Clean Install
You can download a Windows 10 ISO image with the install.wim file needed for this procedure by following instructions in this tutorial (Option One): Windows 10 ISO Download
Windows 10, clean install:
Before starting the installation, create a boot disk for your chosen imaging program. I use Macrium Free, see the tutorial at our sister site the Seven Forums.
When installation has done the last reboot you will arrive to settings dialog (screenshot from this tutorial):
Now turn off the PC. Insert the imaging boot disk and reboot from it, create a system image. As Windows is quite barebone at the moment it only takes a few minutes.
When the image has been created, remove the imaging boot disk and boot the PC normally. It will resume the setup from the above shown settings dialog. You can now reboot to Audit Mode as told in this tutorial and use Sysprep to relocate the Users folder. Before sysprepping save a copy of your answer file to an external drive.
If the sysprep fails, it is always (99% of the cases) a user error. A typo in answer file, wrong CPI source (last line in the answer file), invalid install media, wrong drive letters and so on. In this case you can restore the image you created and try again, and ask for help by posting the copy of your answer file here. Often the answer file itself can reveal the cause for the failing sysprep and your next try might be successful when the errors have been fixed
If you are doing this on an existing Windows installation (Method Two in this tutorial), creating a system image before proceeding is even more important. A failed sysprep, for any reason, can make your system unusable.
Windows 10, upgrade install:
Before starting the upgrade process create a system image as told above.
Be it a clean install or an upgrade install, when you have created the system image continue from below.
When installation reaches the Settings screen after reboot (as shown in installation tutorial step 15), press CTRL + SHIFT + F3:
Windows reboots now entering a so called Audit Mode using the built-in administrator account. When Windows Desktop will be shown you’ll notice the System Preparation Tool dialog in the middle of your screen. Close it for now by pressing the Cancel button:
2. Create an unattended answer file
If you installed Windows without a network connection, you can connect to network now.
The relocation procedure itself will be done with a native Windows 10 tool called System Preparation Tool (Sysprep). Sysprep alone can quite little, it needs instructions. These instructions it gets from an XML script file, an unattended answer file.
In our case we need a very simple answer file. It simply contains two important details, instructions to Sysprep:
- Bit version of the Windows (32 or 64 bit)
- New location of Users folder (for example D:Users instead of default C:Users)
OK, let’s start. Open Notepad, paste the following code to a new file:
<?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"> <FolderLocations> <ProfilesDirectory>D:Users</ProfilesDirectory> </FolderLocations> </component> </settings> </unattend>
Change the following details if needed (see the parts in red in above code):
- Line 4: The value of variable ProcessorArchitecture must be amd64 if you are installing a 64 bit Windows regardless of if you have an Intel or AMD processor, and x86 if you are installing a 32 bit Windows
- Line 6: The value in ProfilesDirectory tags is the new location for the Users folder, in this example answer file it will be moved to D:Users.Be sure that the drive into which you are relocating the Users folder is empty or at least does not contain any Windows system folders, especially Users folder or parts of it from any current or previous Windows installation.”
Save the file as an XML file to root of any drive except C:. In this example I have already renamed my D: drive to User Profiles and save the answer file there as D:relocate.xml:
3. Run Sysprep
Almost there! Press WIN + X, select Command Prompt (Admin). To ensure that WMP Network Sharing Service is stopped, give the following command:
net stop wmpnetworksvc
The service is most probably not running but if it is, it will now be stopped. When this service is running, Sysprep fails.
Now the Sysprep command itself. Type the following:
%windir%system32sysprepsysprep.exe /oobe /reboot /unattend:d:relocate.xml
The above command tells system to run the Sysprep from WindowsSystem32Sysprep folder reading instructions from the unattended answer file D:relocate.xml, prepare the computer for an OOBE boot (OOBE = the first boot of newly installed Windows) and finally reboot when ready.
Hit Enter, you will see Sysprep starting to do its magic:
That’s it. Windows runs now the OOBE First Run boot and you can continue from the installation tutorial step 12 where we left the installation in the beginning of this tutorial. When finally at Windows Desktop, you will notice that the main profile folder and your user account in it have been moved to drive D: (or any other drive you selected):
Method Two
Relocating Users folder on an existing Windows installation
Remember to create a system image before proceeding!
There are two workarounds for the issue mentioned in above warning.
First. a simple workaround is to create a new user account for yourself after running the Sysprep to relocate the Users folder, make it an administrator account, then copy your data from the original user account to the new account, and finally delete the original account.
This video shows another workaround for this issue; simply disable existing accounts before sysprep is run then enable them when finished:
1. Create an unattended answer file
Create an answer file exactly as told above in Method One Step 2.
2. Run Sysprep
Run Sysprep exactly as told above in Method One Step 3.
3. OOBE Boot
Although you already had Windows 10 installed, after Sysprep the first run OOBE boot is always run. This means that Windows goes through the initial setup process. You continue now from step 12 in installation tutorial.
Two things to notice now:
- You don’t have to enter the product key now even Windows will ask it. Entering it does no harm but if you want to save some key presses, you can simply click Skip button:
- Your original user accounts have not disappeared, everything is still there. However, the OOBE boot requires a user account to be created but if you try your existing account, local or Microsoft account, you get an error message:
- To work around this, simply set up a dummy local account (see installation tutorial step 19). You can then later log in to your original account and remove this dummy local account.
Method Three
Upgrade and Sysprep: what to do
- See 1. Move Users back to C: drive below for how to prepare Windows for an upgrade by moving the Users folder back to C: drive.
- See 2. Edit Registry to Sysprep an Upgraded Windows below for how to run Sysprep on an upgraded Windows.
The upgrade requires a bit registry editing. First delete a key and a DWORD and change two values in registry. After the upgrade you can then repeat the process to relocate the Users folder again (relocating ProgramData is not supported in Windows 10).
Don’t panic, this is quite easy
1. Move Users (and possible ProgramData) back to C: drive
Open Notepad, paste the following code to a new file:
<?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"> <FolderLocations> <ProfilesDirectory>C:Users</ProfilesDirectory> <ProgramData>C:ProgramData</ProgramData> (this line only needed if ProgramData has been relocated) </FolderLocations> </component> </settings> <cpi:offlineImage cpi:source="wim:E:sourcesinstall.wim#Windows 10 Pro Insider Preview" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> </unattend>
Change the following details if needed (see the parts in red in above code):
- The value of variable ProcessorArchitecture must be amd64 if you are installing a 64 bit Windows regardless of if you have an Intel or AMD processor, and x86 if you are installing a 32 bit Windows
- The value in ProfilesDirectory tags tells the location where we want move the Users folder, in this example answer file it will be moved back to C:Users
- On the last line of code, change the location of Windows 10 install media. In this example the media is on drive E:
- Following the install media location, separated with #, see that you have the Windows version correctly:
- Windows 10 Home, Windows 10 Pro, Windows 10 Home Insider Preview, Windows 10 Pro Insider Preview for Windows 10
- Windows 8, Windows 8.1, Windows 8 Pro or Windows 8.1 PRO if you came here from the Eight Forums for instructions
- Windows 7 STARTER, Windows 7 HOMEBASIC, Windows 7 HOMEPREMIUM, Windows 7 PROFESSIONAL, Windows 7 ULTIMATE if you came here from the Seven Forums for instructions
- If you have upgraded to later builds of Windows 10, you can create your own Windows 10 ISO as told in this tutorial: ESD to ISO – Create Bootable ISO from Windows 10 ESD File
Save the file as an XML file to root of any drive except C:. In this example I have already renamed my D: drive to User Profiles and save the answer file there as D:relocate.xml:
Now do steps 2 and 3 in Method Two above, continue from below when done.
2. Edit Registry to Sysprep an Upgraded Windows
When running Sysprep on an upgraded Windows you will get an error message about Sysprep not being able to validate your Windows installation, Sysprep will simply not run. Checking the log file you will find out the reason in plain text:
Sysprep will not run on an upgraded OS. You can only run Sysprep on a custom (clean) install version of Windows.
(Log: C:WindowsSystem32SysprepPanthersetupact.log)
We need to edit Windows registry to “fool” Windows to think this is a clean install instead of an upgrade. To do this open the Registry Editor (WIN + R, type regedit, hit Enter), browse to key HKEY_LOCAL_MACHINESYSTEMSetup
Delete both the DWORD Upgrade (right pane) and KEY Upgrade (left pane), see screenshot. The system warns you that skies can fall down if you delete these items, just laugh loud and accept the deletion :
Still in Registry Editor, browse to key HKEY_LOCAL_MACHINESYSTEMSetupStatusSysprepStatus, if either DWORD CleanupState or DWORD GeneralizationState has any other value than 7, change it to 7 by double clicking the DWORD in question and entering the new value:
Close the Registry Editor. Open Command Prompt, type slmgr /dli and hit Enter to open Software License Manager. Close it as soon as it opens, close Command Prompt.
You can now upgrade to next build, and when the upgrade is done you can sysprep the upgraded Windows . After the upgrade has finished and you have rebooted back to desktop, repeat this step (registry editing and slmgr /dli as told above), then do the Method Two from above. For Windows 8 and 8.1 users, continue from step 1.2 in the Eight Forums tutorial
That’s it folks, have fun with Windows 10!
Source Guide provided by: TenForums