Windows 오류 보고 서비스(WER) 시스템 및 타사 앱 오류에 대한 디버그 정보를 수집하고 Microsoft 서버에 오류 보고서를 보내는 데 사용됩니다. 이 정보는 MSFT에서 분석해야 하며 해결 방법이 있으면 Windows 오류 보고 응답을 통해 사용자에게 전송됩니다. 실제로 Microsoft는 최신 Windows 버전에서 기본적으로 WER 서비스를 사용하도록 설정하지만 실제로 이 기능을 사용하는 사람은 거의 없습니다. 대부분의 경우 사람들은 C:\ProgramData\Microsoft\Windows\WER\ReportQueue\를 볼 때 WER을 기억합니다. 기본적으로 이 디렉터리에 대해 NTFS 압축이 활성화되어 있지만 시스템 드라이브에서 많은 공간(최대 수십 GB)을 차지합니다.
내용:
- Windows 오류 보고 서비스
- Windows에서 WER\ReportQueue 폴더를 지우는 방법
- Windows Server에서 Windows 오류 보고 비활성화
- Windows 10에서 오류 보고를 비활성화 또는 활성화하는 방법
- GPO를 통한 자동 Windows 오류 보고를 비활성화하는 방법
Windows 오류 보고 서비스
Windows 오류 보고 응용 프로그램 오류가 발생하면 Microsoft에 오류 보고서를 제출하라는 대화 상자를 표시합니다. "YourAppName.exe has stopped working, Windows is collecting more information about the problem
” 오류 메시지가 표시되면 Windows 오류 보고 서비스는 WerFault.exe 도구를 실행하여 디버그 데이터(메모리 덤프를 포함할 수 있음)를 수집합니다.
사용자 데이터는 사용자 프로필에 저장됩니다:
%USERPROFILE%\AppData\Local\Microsoft\Windows\WER\
그리고 시스템 데이터는 ProgramData 디렉토리로 이동합니다:
%ALLUSERSPROFILE%\Microsoft\Windows\WER\
Windows 오류 보고 서비스는 별도의 Windows 서비스입니다. PowerShell 명령을 사용하여 서비스 상태를 확인할 수 있습니다.
Get-Service WerSvc
WER\ReportQueue\ 디렉토리에는 다음 형식의 이름을 가진 많은 폴더가 있습니다.
- 중요_6.3.9600.11285_{ID}_00000000_cab_3212dd23
- Critical_powershell.exe_{ID}_cab_332a45c5
- Critical_sqlservr.exe__{ID}_cab_b3a200181
- 비중요_7.9.9600.11285__{ID}_0bfab19a
- AppCrash_cmd.exe_{ID}_dba332ad_12eb5425
보시다시피 디렉터리 이름에는 이벤트의 심각도 수준과 충돌한 특정 EXE 파일의 이름이 포함되어 있습니다. 모든 폴더에는 Report.wer라는 파일이 있습니다. , 오류에 대한 설명과 추가 정보가 있는 일부 파일이 포함되어 있습니다.
Windows에서 WER\ReportQueue 폴더를 지우는 방법
일반적으로 각 폴더의 크기는 작지만 경우에 따라 많은 공간을 차지하는 문제 프로세스에 대해 메모리 덤프가 생성됩니다. 아래 스크린샷은 memory.hdmp의 크기를 보여줍니다. 약 610MB입니다. 이러한 덤프 중 몇 개는 시스템 드라이브에서 몇 기가바이트를 차지할 수 있습니다.
내장된 도구를 사용하여 이러한 모든 오류 및 로그를 지우려면 제어판을 열고 시스템 및 보안 -> 보안 및 유지 관리 -> 유지 관리 -> 안정성 기록 보기 -> 모든 문제 보고서 보기로 이동한 다음 지우기를 클릭합니다. 모든 문제 보고서 .
일부 디스크 공간을 빠르게 확보하기 위해 다음 폴더에서 WER 서비스에 의해 생성된 디버그 및 로그 파일을 수동으로 삭제할 수 있습니다.
- C:\ProgramData\Microsoft\Windows\WER\ReportArchive\
- C:\ProgramData\Microsoft\Windows\WER\ReportQueue\
다음 PowerShell 명령은 WER 디렉터리에서 30일이 지난 모든 파일을 제거합니다.
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 오류 보고 비활성화
Windows Server 2019/2016/2012R2에서는 PowerShell을 사용하여 WER 서비스 상태를 관리할 수 있습니다. Windows 오류 보고 서비스를 비활성화할 수 있습니다.
Get-Service WerSvc| stop-service –passthru -force
Set-Service WerSvc –startuptype manual –passthru
그러나 Windows에서 WER을 비활성화하는 더 좋은 방법이 있습니다. PowerShell 버전 4.0은 별도의 WindowsErrorReporting 모듈을 추가합니다.
Get-Command -Module WindowsErrorReporting
다음 명령을 사용하여 Windows 오류 보고 서비스의 상태를 확인할 수 있습니다.
Get-WindowsErrorReporting
WER을 비활성화하려면 다음을 실행하십시오.
Disable-WindowsErrorReporting
Windows Server 2012 R2에서는 제어판을 통해 Windows 오류 보고를 비활성화할 수 있습니다(제어판 -> 시스템 및 보안 -> 관리 센터 -> 유지 관리 -> 설정 -> 참여하고 싶지 않습니다. 다시 물어보세요 .
Windows 10에서 오류 보고를 비활성화 또는 활성화하는 방법
Windows 10에서는 제어판을 통해 오류 보고를 비활성화할 수 없습니다. 제어판 -> 시스템 및 보안에서 구성요소 상태를 확인할 수 있습니다. -> 보안 및 유지 관리 -> 유지 관리 . 보시다시피 문제 보고 매개변수가 활성화되었습니다.
레지스트리를 통해 Windows 10에서 Windows 오류 보고를 비활성화할 수 있습니다. 이를 수행하려면 이름이 비활성화됨 인 새 DWORD(32비트) 매개변수를 만드십시오. 및 값 1 레지스트리 키 HKLM\SOFTWARE\Microsoft\Windows\Windows 오류 보고 아래
다음 명령을 사용하여 특정 사용자에 대한 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를 통해 도메인 컴퓨터에 배포할 수 있습니다.
GPO를 통한 자동 Windows 오류 보고를 비활성화하는 방법
그룹 정책을 통해 Windows 오류 보고 서비스의 로깅을 비활성화할 수 있습니다. 로컬(gpedit.msc
) 또는 도메인 GPO(gpmc.msc
) 편집기를 열고 다음 GPO 섹션 컴퓨터 구성 -> 관리 템플릿 -> Windows 구성 요소 -> Windows 오류 보고로 이동합니다. . Windows 오류 보고 비활성화라는 정책을 찾습니다. 사용으로 설정합니다. . 이렇게 하면 Windows 데이터 수집 및 오류 보고가 비활성화됩니다.
GPO 설정을 업데이트합니다(재부팅 필요 없음).
결과적으로 Windows는 더 이상 응용 프로그램 및 시스템 오류 메시지를 생성하지 않으며 더 이상 Microsoft에 전송되지 않습니다.