
Служба отчетов об ошибках Windows (WER) используется для сбора отладочной информации о сбоях в работе системы и сторонних приложений и отправки отчетов об ошибках на серверы Microsoft. Эта информация должна быть проанализирована MSFT, и если найдется решение, оно будет отправлено пользователю через Windows Error Reporting Response. На самом деле, мало кто пользуется этой функцией, хотя Microsoft всегда оставляет службу WER включенной по умолчанию в последних версиях Windows. В большинстве случаев люди вспоминают о WER, когда видят, что C:\ProgramData\Microsoft\Windows\WER\ReportQueue\ занимает много места на системном диске (до нескольких десятков гигабайт), несмотря на то, что по умолчанию для этого каталога включено сжатие NTFS.
Служба отчетов об ошибках Windows
Служба сообщений об ошибках Windows отображает диалоговое окно при возникновении ошибки приложения, предлагая отправить отчет об ошибке в Microsoft. Когда вы видите сообщение «YourAppName.exe has stopped working, Windows is collecting more information about the problem
» в Windows, служба Windows Error Reporting запускает инструмент WerFault.exe для сбора отладочных данных (может включать дамп памяти).
Пользовательские данные сохраняются в профиле пользователя:
%USERPROFILE%\AppData\Local\Microsoft\Windows\WER\
А системные данные попадают в каталог ProgramData:
%ALLUSERSPROFILE%\Microsoft\Windows\WER\
Служба Windows Error Reporting — это отдельная служба 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 МБ. Несколько таких дампов могут занять несколько гигабайт на системном диске.
Чтобы очистить все эти ошибки и журналы с помощью встроенных средств, откройте Панель управления и перейдите в раздел Система и безопасность -> Безопасность и обслуживание -> Обслуживание -> Просмотр истории надежности -> Просмотр всех отчетов о проблемах, затем нажмите кнопку Очистить все сообщения о проблемах.
Чтобы быстро освободить место на диске, вы можете вручную удалить файлы отладки и журналы, создаваемые службой 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 Error Reporting на Windows Server
На Windows Server 2019/2016/2012R2 можно управлять состоянием службы WER с помощью PowerShell. Вы можете отключить службу Windows Error Reporting:
Get-Service WerSvc| stop-service –passthru -force
Set-Service WerSvc –startuptype manual –passthru
Отключить WER в Windows можно с помощью встроенного средства WindowsErrorReporting Модуль PowerShell:
Get-Command -Module WindowsErrorReporting
Проверить состояние службы Windows Error Reporting можно с помощью команды:
Get-WindowsErrorReporting
Чтобы отключить WER, выполните команду:
Disable-WindowsErrorReporting
В Windows Server 2012 R2 можно отключить отчет об ошибках Windows через панель управления (Панель управления -> Система и безопасность -> Центр действий -> Обслуживание -> Настройки -> выберите Я не хочу участвовать, и не спрашивайте меня больше.
Как отключить или включить отчет об ошибках в Windows 10
В Windows 10 вы не можете отключить отчет об ошибках через панель управления. Вы можете проверить состояние компонента в Панели управления -> Система и безопасность -> Безопасность и обслуживание -> Техническое обслуживание. Как вы можете видеть, в Сообщить о проблемах параметр включен.
Вы можете отключить отчет об ошибках Windows в 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
Теперь давайте проверим состояние Сообщить о проблемах снова выберите параметр в Панели управления. Он должен быть Выключено.
Как отключить автоматическое создание отчетов об ошибках Windows с помощью GPO
Вы можете отключить ведение журнала службой Windows Error Reporting с помощью групповой политики. Откройте локальную (gpedit.msc
) или GPO домена (gpmc.msc
) редактора и перейдите к следующему разделу GPO Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Отчеты об ошибках Windows. Найдите политику с именем Отключить отчет об ошибках Windows и установите значение Включено. Это отключит сбор данных Windows и создание отчетов об ошибках.
Обновите параметры GPO (перезагрузка не требуется).
В результате Windows больше не будет генерировать сообщения об ошибках приложений и системы и не будет отправлять их в Microsoft.