WER C:\ProgramData\Microsoft\Windows\WER
C:\ProgramData\Microsoft\Windows\WER: machine-wide error reports, queued (ReportQueue) or sent (ReportArchive), with their dumps.
What it’s for
When an application crashes, hangs or a component fails, Windows Error Reporting (WER) files the report here. ReportQueue holds reports waiting to be sent to Microsoft and ReportArchive holds those that have gone. It is the first place to look for the faulting module of an application crash, before you reach for a debugger.
Reports from applications that a user launched are written in that user’s profile, under %LOCALAPPDATA%\Microsoft\Windows\WER. This folder receives the machine-wide ones: services and system processes.
What it contains
ReportQueue: one folder per pending report (for exampleAppCrash_<application>_<hash>), with aReport.werfile and related files.ReportArchive: reports already sent. Their data is deleted but theReport.werfile stays.Temp: temporary collection files, present depending on the version.- Memory dumps attached to a report (
.dmp,.hdmp), sometimes large.
Report.wer is a text file. Its Sig[n] lines give the application name (AppName), the faulting module and the exception code.
Risks and best practices
- You can empty it with no consequence for Windows: you only lose the incident history and the attached dumps. Keep it while an analysis is in progress.
- Empty the contents, not the folder. Disk Cleanup offers “Windows error reports and feedback diagnostics” to do it cleanly.
- Dumps can hold sensitive data (a process’s memory), so review them before sending them to anyone.
- To switch the feature off, use Group Policy or the
Disabledvalue underHKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting, and only with a good reason: these reports are a diagnostic asset.
Useful commands
# Reports waiting to be sent and archived reportsGet-ChildItem "$env:ProgramData\Microsoft\Windows\WER\ReportQueue" -Force -ErrorAction SilentlyContinue | Select-Object Name, LastWriteTimeGet-ChildItem "$env:ProgramData\Microsoft\Windows\WER\ReportArchive" -Force -ErrorAction SilentlyContinue | Select-Object Name, LastWriteTime
# Read the essentials of a report: application, faulting module, exception codeGet-ChildItem "$env:ProgramData\Microsoft\Windows\WER" -Recurse -Filter Report.wer -ErrorAction SilentlyContinue | Select-Object -First 1 | Select-String -Pattern '^(AppName|Sig\[\d+\]\.(Name|Value))'
# Latest event 1001 entries in the Application log (source Windows Error Reporting)Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='Windows Error Reporting'} -MaxEvents 10 | Select-Object TimeCreated, Message
# Purge the contents (as administrator; remove -WhatIf to run)Get-ChildItem "$env:ProgramData\Microsoft\Windows\WER\ReportArchive", "$env:ProgramData\Microsoft\Windows\WER\ReportQueue" -Force | Remove-Item -Recurse -WhatIf