บริการรายงานข้อผิดพลาดของ Windows (WER) ใช้เพื่อรวบรวมข้อมูลการดีบักเกี่ยวกับความล้มเหลวของระบบและแอปของบริษัทอื่น และส่งรายงานข้อผิดพลาดไปยังเซิร์ฟเวอร์ของ Microsoft ข้อมูลนี้ควรได้รับการวิเคราะห์โดย MSFT และหากมีวิธีแก้ไข ข้อมูลดังกล่าวจะถูกส่งไปยังผู้ใช้ผ่าน Windows Error Reporting Response อันที่จริง มีเพียงไม่กี่คนที่ใช้คุณลักษณะนี้ แม้ว่า Microsoft จะปล่อยให้บริการ WER เปิดใช้งานตามค่าเริ่มต้นใน Windows เวอร์ชันล่าสุดเสมอ ในกรณีส่วนใหญ่ ผู้คนจะจำ WER ได้เมื่อเห็นว่า C:\ProgramData\Microsoft\Windows\WER\ReportQueue\ ใช้พื้นที่มากในไดรฟ์ระบบ (มากถึงหลายสิบ GB) แม้ว่าจะเปิดใช้งานการบีบอัด NTFS สำหรับไดเร็กทอรีนี้โดยค่าเริ่มต้น
สารบัญ:
- บริการรายงานข้อผิดพลาดของ Windows
- จะล้างโฟลเดอร์ WER\ReportQueue บน Windows ได้อย่างไร
- ปิดใช้งานการรายงานข้อผิดพลาดของ Windows บน Windows Server
- จะปิดการใช้งานหรือเปิดใช้งานการรายงานข้อผิดพลาดใน Windows 10 ได้อย่างไร
- จะปิดการใช้งานการรายงานข้อผิดพลาดของ Windows อัตโนมัติผ่าน GPO ได้อย่างไร
บริการรายงานข้อผิดพลาดของ Windows
การรายงานข้อผิดพลาดของ Windows แสดงกล่องโต้ตอบเมื่อเกิดข้อผิดพลาดของแอปพลิเคชัน โดยแจ้งให้คุณส่งรายงานข้อผิดพลาดไปยัง Microsoft เมื่อคุณเห็น “YourAppName.exe has stopped working, Windows is collecting more information about the problem
” ข้อความแสดงข้อผิดพลาดใน Windows บริการรายงานข้อผิดพลาดของ Windows เรียกใช้เครื่องมือ WerFault.exe เพื่อรวบรวมข้อมูลการดีบัก (อาจมีการถ่ายโอนข้อมูลหน่วยความจำ)
ข้อมูลผู้ใช้ถูกบันทึกไว้ในโปรไฟล์ผู้ใช้:
%USERPROFILE%\AppData\Local\Microsoft\Windows\WER\
และข้อมูลระบบจะไปที่ไดเร็กทอรี ProgramData:
%ALLUSERSPROFILE%\Microsoft\Windows\WER\
บริการรายงานข้อผิดพลาดของ Windows เป็นบริการ Windows แยกต่างหาก คุณสามารถตรวจสอบสถานะของบริการได้โดยใช้คำสั่ง PowerShell:
Get-Service WerSvc
ในไดเร็กทอรี WER\ReportQueue\ มีโฟลเดอร์จำนวนมากที่มีชื่อในรูปแบบต่อไปนี้:
- 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
ดังที่คุณเห็น ชื่อไดเร็กทอรีมีระดับความรุนแรงของเหตุการณ์และชื่อของไฟล์ EXE ที่ขัดข้อง ในทุกโฟลเดอร์จะมีไฟล์ชื่อ Report.wer ซึ่งมีคำอธิบายข้อผิดพลาดและบางไฟล์พร้อมข้อมูลเพิ่มเติม
จะล้างโฟลเดอร์ WER\ReportQueue ใน Windows ได้อย่างไร
โดยปกติ ขนาดของแต่ละโฟลเดอร์จะเล็ก แต่ในบางกรณี การถ่ายโอนข้อมูลหน่วยความจำจะถูกสร้างขึ้นสำหรับกระบวนการที่มีปัญหาซึ่งใช้พื้นที่มาก ภาพหน้าจอด้านล่างแสดงให้เห็นว่าขนาดของ memory.hdmp ประมาณ 610 MB. การถ่ายโอนข้อมูลสองสามครั้งสามารถครอบครองหลายกิกะไบต์บนไดรฟ์ระบบ
หากต้องการล้างข้อผิดพลาดและบันทึกทั้งหมดโดยใช้เครื่องมือในตัว ให้เปิดแผงควบคุมและไปที่ระบบและความปลอดภัย -> ความปลอดภัยและการบำรุงรักษา -> การบำรุงรักษา -> ดูประวัติความน่าเชื่อถือ -> ดูรายงานปัญหาทั้งหมด จากนั้นคลิก ล้าง รายงานปัญหาทั้งหมด .
หากต้องการเพิ่มพื้นที่ว่างในดิสก์อย่างรวดเร็ว คุณสามารถลบไฟล์ดีบักและบันทึกที่สร้างโดยบริการ WER ด้วยตนเองในโฟลเดอร์ต่อไปนี้:
- C:\ProgramData\Microsoft\Windows\WER\ReportArchive\
- C:\ProgramData\Microsoft\Windows\WER\ReportQueue\
คำสั่ง PowerShell ต่อไปนี้จะลบไฟล์ทั้งหมดที่เก่ากว่า 30 วันออกจากไดเรกทอรี WER:
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
หากต้องการล้างไดเรกทอรี WER ในโปรไฟล์ผู้ใช้ทั้งหมด ให้ใช้สคริปต์ PowerShell ต่อไปนี้:
$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
}
ปิดใช้งานการรายงานข้อผิดพลาดของ Windows บน Windows Server
บน Windows Server 2019/2016/2012R2 คุณสามารถจัดการสถานะบริการ WER โดยใช้ PowerShell คุณสามารถปิดใช้งานบริการรายงานข้อผิดพลาดของ Windows:
Get-Service WerSvc| stop-service –passthru -force
Set-Service WerSvc –startuptype manual –passthru
แต่มีวิธีที่ดีกว่าในการปิดใช้งาน WER บน Windows PowerShell เวอร์ชัน 4.0 เพิ่มโมดูล WindowsErrorReporting แยกต่างหาก:
Get-Command -Module WindowsErrorReporting
คุณสามารถตรวจสอบสถานะของบริการ Windows Error Reporting ได้ด้วยคำสั่ง:
Get-WindowsErrorReporting
หากต้องการปิดใช้งาน WER ให้เรียกใช้:
Disable-WindowsErrorReporting
ใน Windows Server 2012 R2 คุณสามารถปิดใช้งานการรายงานข้อผิดพลาดของ Windows ผ่านแผงควบคุม (แผงควบคุม -> ระบบและความปลอดภัย -> ศูนย์ปฏิบัติการ -> การบำรุงรักษา -> การตั้งค่า -> เลือก ฉันไม่ต้องการเข้าร่วม และไม่ ไม่ถามอีก
จะปิดการใช้งานหรือเปิดใช้งานการรายงานข้อผิดพลาดใน Windows 10 ได้อย่างไร
ใน Windows 10 คุณไม่สามารถปิดใช้งานการรายงานข้อผิดพลาดผ่านแผงควบคุมได้ คุณสามารถตรวจสอบสถานะส่วนประกอบได้ในแผงควบคุม -> ระบบและความปลอดภัย -> การรักษาความปลอดภัยและการบำรุงรักษา -> การบำรุงรักษา . อย่างที่คุณเห็น รายงานปัญหา เปิดใช้งานพารามิเตอร์แล้ว
คุณสามารถปิดการใช้งาน Windows Error Reporting บน Windows 10 ผ่านทางรีจิสทรี ในการดำเนินการ ให้สร้างพารามิเตอร์ DWORD (32 บิต) ใหม่โดยใช้ชื่อ Disabled และค่า 1 ภายใต้รีจิสตรีคีย์ HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting
คุณสามารถปิดใช้งานการรวบรวมข้อผิดพลาดของ Windows สำหรับผู้ใช้เฉพาะโดยใช้คำสั่ง:reg add "HKCU\Software\Microsoft\Windows\Windows Error Reporting" /v "Disabled" /t REG_DWORD /d "1" /f
หรือปิดการใช้งาน WER สำหรับทุกคน:reg add "HKLM\Software\Microsoft\Windows\Windows Error Reporting" /v "Disabled" /t REG_DWORD /d "1" /f
ตอนนี้ มาตรวจสอบสถานะของรายงานปัญหา พารามิเตอร์ในแผงควบคุมอีกครั้ง ควร ปิด .
คุณสามารถปรับใช้พารามิเตอร์รีจิสทรีนี้กับคอมพิวเตอร์โดเมนผ่าน GPO
จะปิดใช้งานการรายงานข้อผิดพลาดของ Windows อัตโนมัติผ่าน GPO ได้อย่างไร
คุณสามารถปิดใช้งานการบันทึกโดยบริการรายงานข้อผิดพลาดของ Windows ผ่านนโยบายกลุ่ม เปิดเครื่อง (gpedit.msc
) หรือโดเมน GPO (gpmc.msc
) แก้ไขและไปที่ส่วน GPO ต่อไปนี้ การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแล -> ส่วนประกอบของ Windows -> การรายงานข้อผิดพลาดของ Windows . ค้นหานโยบายชื่อ ปิดใช้งานการรายงานข้อผิดพลาดของ Windows และตั้งค่าเป็น เปิดใช้งาน . การดำเนินการนี้จะปิดใช้งานการรวบรวมข้อมูลของ Windows และการรายงานข้อผิดพลาด
อัปเดตการตั้งค่า GPO (ไม่ต้องรีบูต)
ด้วยเหตุนี้ Windows จะไม่สร้างแอปพลิเคชันและข้อความแสดงข้อผิดพลาดของระบบอีกต่อไป และจะไม่ถูกส่งไปยัง Microsoft อีกต่อไป