Windows Error Reporting Service (WER) ใช้ Collect Debug Information เกี่ยวกับ System และ Third-party App Failures ส่ง Error Reports ไป Microsoft Servers ข้อมูลควรถูก Analyze โดย MSFT หากมี Solution จะส่งกลับมาผ่าน Windows Error Reporting Response จริงๆ แล้วไม่กี่คนใช้ Feature นี้ แต Microsoft เปิด WER Service Enabled By Default ใน Windows Latest Versions เสมอ กรณีส่วนใหญ่จำได้ WER ตอนเห็น C:\ProgramData\Microsoft\Windows\WER\ReportQueue\ ใช้พื้นที่ System Drive มาก (หลายสิบ GB) แม้ NTFS Compression Enabled สำหรับ Directory นี้ By Default
สารบัญ
- Windows Error Reporting Service
- ล้างโฟลเดอร์ WER\ReportQueue บน Windows
- Disable Windows Error Reporting บน Windows Server
- Disable/Enable Error Reporting บน Windows 10
- Disable Automatic Windows Error Reporting ผ่าน GPO
Windows Error Reporting Service
Windows Error Reporting แสดง Dialog Box เมื่อ Application Error เกิดขึ้น Prompt Submit Error Report ไป Microsoft เมื่อเจอ Error "YourAppName.exe has stopped working, Windows is collecting more information about the problem" ใน Windows WER Service รัน WerFault.exe Tool Collect Debug Data (อาจรวม Memory Dump)
User Data เก็บใน User Profile: %USERPROFILE%\AppData\Local\Microsoft\Windows\WER\
System Data ไป ProgramData Directory: %ALLUSERSPROFILE%\Microsoft\Windows\WER\
WER Service เป็น Windows Service แยก Check Service Status: Get-Service WerSvc
ใน WER\ReportQueue\ Directory มีโฟลเดอร์เยอะ Naming Format:
- Critical_6.3.9600.11285_{ID}_00000000_cab_3212dd23
- Critical_powershell.exe_{ID}_cab_332a45c5
- Critical_sqlservr.exe__{ID}_cab_b3a200181
- NonCritical_7.9.9600.11285__{ID}_0bfab19a
- AppCrash_cmd.exe_{ID}_dba332ad_12eb5425
Directory Name มี Severity Level และ EXE File Name ที่ Crash ทุกโฟลเดอร์มี File Report.wer เก็บ Error Description และ Additional Info Files
ล้างโฟลเดอร์ WER\ReportQueue บน Windows
ขนาดแต่ละโฟลเดอร์เล็กมาก แต่บางกรณี Memory Dump Generate สำหรับ Problem Process ใช้พื้นที่มาก Screenshot ด้านล่างแสดง memory.hdmp ขนาด ~610 MB ไฟล์แบบนี้ 2-3 ไฟล์กิน Gigabytes บน System Drive
Clear Errors และ Logs ด้วย Built-in Tools: Control Panel → System and Security → Security and Maintenance → Maintenance → View reliability history → View all problem reports → คลิก Clear all problem reports
Free Disk Space เร็ว: ลบ Debug และ Log Files ที่ WER Service Generate ในโฟลเดอร์เหล่านี้ Manual:
- C:\ProgramData\Microsoft\Windows\WER\ReportArchive\
- C:\ProgramData\Microsoft\Windows\WER\ReportQueue\
PowerShell Commands ลบ Files เก่ากว่า 30 วันจาก WER Directories:
Get-ChildItem -Path 'C:\ProgramData\Microsoft\Windows\WER\ReportArchive' -Recurse | Where-Object CreationTime -lt (Get-Date).AddDays(-30) | Remove-Item -Force -Recurse
Get-ChildItem -Path 'C:\ProgramData\Microsoft\Windows\WER\ReportQueue' -Recurse | Where-Object CreationTime -lt (Get-Date).AddDays(-30) | Remove-Item -Force –Recurse
Clean WER Directories ใน User Profiles ทั้งหมด PowerShell Script:
$users = Get-ChildItem c:\users|where{$_.name -notmatch 'Public|default'}
foreach ($user in $users){
Get-ChildItem "C:\Users\$User\AppData\Local\Microsoft\Windows\WER\" –Recurse -ErrorAction SilentlyContinue | Remove-Item –force –Recurse
}
Disable Windows Error Reporting บน Windows Server
บน Windows Server 2019/2016/2012R2 จัดการ WER Service State ด้วย PowerShell Disable WER Service:
Get-Service WerSvc| stop-service –passthru -force
Set-Service WerSvc –startuptype manual –passthru
แต่มีวิธีดีกว่า Disable WER บน Windows PowerShell v4.0 เพิ่ม Module WindowsErrorReporting แยก: Get-Command -Module WindowsErrorReporting
Check WER Status: Get-WindowsErrorReporting
Disable WER: Disable-WindowsErrorReporting
บน Windows Server 2012 R2 Disable WER ผ่าน Control Panel (Control Panel → System and Security → Action Center → Maintenance → Settings → เลือก I don't want to participate, and don't ask me again)
Disable/Enable Error Reporting บน Windows 10
Windows 10 ไม่สามารถ Disable Error Reporting ผ่าน Control Panel ได้ Check Component Status ใน Control Panel → System & Security → Security and Maintenance → Maintenance เห็น Parameter Report problems Enabled
Disable WER บน Windows 10 ผ่าน Registry สร้าง DWORD (32-bit) ใหม่ชื่อ Disabled Value 1 Under Registry Key HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting
Disable Windows Error Collection สำหรับ Specific User: reg add "HKCU\Software\Microsoft\Windows\Windows Error Reporting" /v "Disabled" /t REG_DWORD /d "1" /f
Disable WER สำหรับทุกคน: reg add "HKLM\Software\Microsoft\Windows\Windows Error Reporting" /v "Disabled" /t REG_DWORD /d "1" /f
Check Status Parameter Report problems ใน Control Panel อีกครั้ง ควรเป็น Off
Deploy Registry Parameter นี้ไป Domain Computers ผ่าน GPO ได้
Disable Automatic Windows Error Reporting ผ่าน GPO
Disable Logging โดย WER Service ผ่าน Group Policy เปิด Local (gpedit.msc) หรือ Domain GPO (gpmc.msc) Editor ไป GPO Section Computer Configuration → Administrative Templates → Windows Components → Windows Error Reporting หา Policy ชื่อ Disable Windows Error Reporting Set เป็น Enabled จะ Disable Windows Data Collection และ Error Reporting
มี Policy คล้ายกันใน User Configuration Section
Update GPO Settings (gpupdate /force) ไม่ต้อง Reboot
ผลลัพธ์: Windows ไม่ Generate Application/System Error Messages และไม่ส่งไป Microsoft อีกต่อไป