OS version Local Profile folder %userprofile% Roaming Profile Folder Windows XP/ 2003 C:\Documents and Settings\username fileshare\username Windows Vista C:\Users\username fileshare\username.V2 Windows Server 2008 C:\Users\username fileshare\username.V2 Windows 7 C:\Users\username fileshare\username.V2 Windows Server 2008 R2 C:\Users\username fileshare\username.V2 Windows 8 * (Q2887239 ) C:\Users\username fileshare\username.V3 Windows Server 2012 * (Q2887239 ) C:\Users\username fileshare\username.V3 Windows 8.1 * (Q2887595) C:\Users\username fileshare\username.V4 Windows Server 2012 R2 * (Q2887595) C:\Users\username fileshare\username.V4 Windows 10 (2015) C:\Users\username fileshare\username.V5 Windows 10 Anniversary Edition (2016) C:\Users\username fileshare\username.V6 Windows 10 Creators Update (2017) C:\Users\username fileshare\username.V6 Windows 10 Fall Creators Update (2017) C:\Users\username fileshare\username.V6 * These OS's require a patch to upgrade from .V2 to separate V3/V4 profiles.
As Windows has been updated over time, the profile folder names and subfolders have changed:
Windows 10 / 2012 R2 %USERPROFILE%\AppData\Roaming %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCookies %USERPROFILE%\AppData\Local\Microsoft\Windows\History %USERPROFILE%\AppData\Local %USERPROFILE%\Documents %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Network Shortcuts %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Printer Shortcuts %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent Items %USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Templates %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache
The folders for All Users settings:
Windows 10/2012 R2 %ProgramData% %PUBLIC%\Public Desktop %PUBLIC%\Public Documents %ProgramData%\Microsoft\Windows\Start Menu\Programs * %ProgramData%\Microsoft\Windows\Start Menu * %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup * %ProgramData%\Microsoft\Windows\Templates* In Windows 10 the Start Menu items are held in a database that is stored under C:\Users\accountname\AppData\Local\TileDataLayer this is proprietary, non user editable and limited to 500 shortcuts. It is also used for Cortana Search. The entire database can be copied between accounts - all or nothing.
There are definitions for all the above in the registry, however: I implore you to exercise restraint and not rely on this new key. Just use the function SHGetFolderPath, which returns the path to whatever folder you want. Let the "User Shell Folders" key rest in peace. - Raymond Chen (MSFT)
A fully supported way of reading these values can be done via Shell.Application, here are a couple of PowerShell and VBScript examples which echo all the values. Some of these are already available as standard environment variables but these scripts will display everything. Using the ShellSpecialFolderConstants means the scripts should work on any foreign locale edition of Windows.
To modify these values, either use Group Policy or a script like this.
If you must delve into the Registry here are the locations:
Registry locations (REG_EXPAND_SZ)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell FoldersBy default these all resolve to subfolders below %USERPROFILE% but they can be redirected to other locations by group policy.
Registry locations for ALL Users (REG_EXPAND_SZ)
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell FoldersOn a brand new install of Windows some of the keys may not exist (typically the fonts entry) Registry entries can appear in both the older Shell Folders subkey and the User Shell Folders in both HKLM and HKCU. The entries that appear in User Shell Folders take precedence over those in Shell Folders.
The entries that appear in HKCU take precedence over those in HKLM
Although it is possible to redirect any of these folders with Group Policy, not all options are fully supported,
for example redirecting IE favorites/cookies will result in very slow performance.
Examples
Find the location of the Start Menu folder:
For /f "tokens=3*" %%G in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Start Menu" ^|Find "REG_"') do Call Set _startmenu=%%H
Echo %_startmenu%
PowerShell function to open the Start menu:
function Open-StartMenu {
$drive = dir env:SystemDrive
$startPath = $drive.value + "\ProgramData\Microsoft\Windows\Start Menu"
if (test-path $startPath) {explorer $startPath}
}
“There are no shortcuts to any place worth going” - Beverly Sills
Related:
Shell: folder - Shortcuts to key folders.
Windows Environment Variables
RoamingProfile.vbs - Cleardown files to improve logon and logoff times.
WshShell.SpecialFolders -
VBScript obtain the path to special Windows folders.
Managing Roaming User Data Deployment Guide - docs.microsoft.com
Q886549 - User Shell Folders.