Are 'C:\ProgramData' and 'C:\Users\All Users' the same? Do I need both?
Solution 1:
Only C:\ProgramData
actually exists as a "real" folder. C:\Users\All Users
is a symbolic link to C:\ProgramData
. That is, C:\Users\All Users
points to C:\ProgramData
, so if you navigate to the former, you are automatically redirected to the latter. That is why they appear identical.
C:\ProgramData
is known as the "All Users Profile" and is required for the correct operation of Windows 7. Please do not delete it, if Windows even lets you.
C:\Users\All Users
is there for backward compatibility. Poorly-written applications do not retrieve the path of the All Users Profile correctly. They say, "Windows, give me the name of the profiles directory." Windows says, "C:\Users
." And the program says, "Okay, I know the All Users profile is called All Users and it's inside the profiles directory, so it must be C:\Users\All Users
." Really, what the program should say to Windows is, "Windows, give me the path of the all users profile," to which Windows would say, "C:\ProgramData
."
Solution 2:
They are the same folder. Users\All Users is a junction to \ProgramData. From Application Compatibility: Junction Points and Backup Applications:
All Users legacy folder junction requirements:
Sym links creation location Destination
..\Users\All Users ..\ProgramData
Users\All Users is a link to the ProgramData folder for legacy reasons. It is a junction point (symlink in the UNIX world) and not a copy of the data. I have only the ProgramData folder on my Windows 7 (x64) computer. My guess it is safe to delete the junction point, but not necessary. I don't recommend deleting ProgramData.