I have a Windows 7 system which contains a ProgramData folder on drive C.

I now need to completely move this folder from drive C to drive D.

What is the best way to do this?

  • "Move to the D [physical] drive" - do you need to move the whole C partition there or just the ProgramData folder? Also, by D drive, do you mean a partition or a separate physical drive? And, what is the purpose of doing what you want to do? – colemik Jul 6 '12 at 10:27
  • @trismarck Only ProgramData need to move, i need to test my product which will work fine or not? D is a seperate Partition i mean seprate Drive , so there are C, D drive exisitng already,but i need to move parogramdata – vettori Jul 6 '12 at 10:37
  • A physical drive is a physical device, it looks like a box. A partition is a logical 'part' of drive. A physical drive can have multiple partitions. Do you have C partition on a _physical_ hard drive1 and D partition on a hard drive2 or do you have both C and D partitions on one physical hard drive1? Also, do you want to move the ProgramData directory, so that the files _inside_ ProgramData directory are on a separate partition or do you want to move the entire ProgramData folder to a separate partition (lets say D partition) (so it'd look like: D:\ProgramData\ instead of C:\ProgramData)? – colemik Jul 6 '12 at 11:05
  • This kind of question seems to lure out the incompetent. And all because let's say, less visionary OS devs are intent on filling up a singular "boot partition". It was the same when the boot drive was 52MB big and you got a whopping 200MB drive to augment it. Nothing has changed in 30 years. Make a symbolic path, lock it to C:. Madness. This could all be a single symlink. The boot partition is for the OS. – Henrik Erlandsson Nov 12 '17 at 1:20

The system drive can't be D; it has to be C.  You can move data from one HD to another or move data from one partition to another.

You need to use clone software to do this.

However if you want to move or change ProgramData,

There is nothing important in ProgramData that would not be recreated by the various applications you install. It is just application configuration data.

The default path is C:\ProgramData.  It is stored here:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\ProgramData


  1. You can change your default ProgramData path to be an alternative drive. Although doing so, all new users that are created will use the new programdata path. So you may end up having two ProgramData folders at the end of the data.
  2. Alternatively, you could use “NTFS Junction Points”. Not many people know of this, but a junction point is a way to force all programs that write to path (C:\ProgramData) to be redirected to (D:\ProgramData). This is how old programs designed for XP can easily work with Vista and Windows 7 new folder locations (Documents and settings replaced with Users).

    So you could create a junction point specifically for the tmp directory that is created by the GR.

    mkdir D:\ProgramData
    robocopy /XJ /MIR "C:\ProgramData" "D:\ProgramData"
    mklink /J "C:\ProgramData" "D:\ProgramData"

The downside is that Windows Update does not work well with program data on a separate drive. See Relocation of the Users directory and the ProgramData directory to a drive other than the drive that contains the Windows directory.


  • I created a new D:\ProgramData folder and then created junction points for only the sub-folders within C:\ProgramData that took up the largest amount of space. This meant that the majority of programs still benefited from running on C (the SSD) whilst the big things (such as Office, Steam and Visual Studio) sat on D. – Richard Jan 7 '14 at 14:37
  • +1 and of course it doesn't, because someone who didn't know OS bought one from a local company and didn't bother to learn from the competent. What's the Windows version again? 10? That's a lot of versions. End rant :) I just get so tired sometimes. – Henrik Erlandsson Nov 12 '17 at 1:23
  • mklink /J responds "Cannot create a file when that file already exists." – fat_mike May 28 '18 at 23:24
  • @fat_mike you need to delete C:\ProgramData after the Robocopy command – intrixius Dec 31 '18 at 9:01
  • I did this and now the start menu won't open :-/ – bobpaul May 21 '20 at 4:08

Could you explain your reasoning?

Here is a good reference on how to do it but it requires a re-install

Paragon Migrate to SSD is another option..

Not the answer you're looking for? Browse other questions tagged or ask your own question.