- C:
- ProgramData
FolderRisk: Caution
- Hidden
ProgramData C:\ProgramData
Application data shared by all users of the machine (configuration, caches, logs); hidden by default.
What it’s for
C:\ProgramData is the machine-wide data area shared by all users. Unlike Program Files, standard users can write to it, so applications keep their configuration, local databases, caches and logs here. It replaces the old All Users\Application Data of Windows XP and is reachable through %ProgramData% or %ALLUSERSPROFILE%.
What it contains
- One folder per vendor or application: shared configuration, local databases, caches, logs (antivirus, monitoring agents, backup clients).
Microsoft: data of Windows components (Windows Defender, WER error reports, the common Start menu) and thePackage Cacheused by Visual Studio and other installers.Microsoft\User Account Pictures: default account pictures.- The
C:\Users\All Usersjunction, which points here.
Risks and best practices
- The folder is hidden. Show it in File Explorer options, or use
-Forcein PowerShell. - Deleting it breaks the services and applications that keep their configuration and licenses here. To free space, target one subfolder (a cache, an application’s logs) with that application’s own tool.
- Some subfolders have deliberately restricted ACLs. Do not change them to fix an “access denied”.
- Microsoft recommends against relocating
ProgramData, in particular through an answer file, outside a test environment.
Useful commands
# The 15 largest subfoldersGet-ChildItem $env:ProgramData -Directory -Force | ForEach-Object { $b = (Get-ChildItem $_.FullName -Recurse -Force -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum [pscustomobject]@{ Folder = $_.Name; 'Size (MB)' = [math]::Round($b / 1MB, 1) }} | Sort-Object 'Size (MB)' -Descending | Select-Object -First 15