The Windows Concept Journey — ProgramData Directory

Shlomi Boutnaru, Ph.D.
1 min readSep 12, 2023

--

“ProgramData” is a hidden directory (normally “C:\ProgramData”) which holds data that is not relevant for a specific user only. As opposed to the “Program Files” directory, it can be used by applications to store data for standard users, but does not require elevated permissions (https://learn.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-shell-setup-folderlocations-programdata). There is also an environment variable pointing to this folder (“echo %ProgramData%”).

Thus, it contains data that is shared between users. Of course, using DACLs the access to folders/files can be limited. On Windows XP there wasn’t any “ProgramData” directory, instead there was “C:\Documents and Settings\All Users\Application Data” (https://www.howtogeek.com/278562/what-is-the-programdata-folder-in-windows/).Due to that, if we access “C:\Users\All Users” we are redirected to “C:\ProgramData” — as shown in the screenshot below.

Lastly, the owner of the directory is SYSTEM. By default, every user/group that is part of the local administrators group has full control on the folder, while standard users care to read & execute. (https://www.kapilarya.com/what-is-programdata-folder-in-windows). See you next time ;-) You can also follow me on twitter — @boutnaru (https://twitter.com/boutnaru).

--

--