#Симптом и границы применимости
Одно приложение показывает один код Win32, а «Просмотр событий» — другое число. Журнал может содержать код события, HRESULT или исключение, а не дублировать сообщение приложения. Их нельзя автоматически считать противоречием.
Win32 — семейство системных кодов, а не один конкретный номер. Точные действия выбирают по полному сообщению, числовому коду и контексту. При отсутствии числа нельзя утверждать, что неисправность вызвана отказом доступа, отсутствующей DLL или сетью.
#Возможные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Разные уровни ошибкиОкно программы выводит код операции, а журнал фиксирует завершающий сбой процесса. | Номера отличаются при совпадающем времени. | Сверить источник, время и описания событий. |
| Код события принят за ошибку Win32Число Event ID обозначает тип записи у конкретного источника. | В журнале Event ID без поля error code. | Не переводить ID события в Win32 напрямую. |
| Журнал выбран не для того процессаВ системе есть похожие сбои служб. | Время или приложение не совпадают. | Отфильтровать по времени и имени исполняемого файла. |
#Подробная пошаговая диагностика
- Сохраните первичную ошибкуНе закрывая окно программы, сфотографируйте весь текст, код, операцию и время до минуты. Если журнал будет просмотрен позднее, запишите и часовой пояс. Нельзя объявлять любой 0x8007xxxx ошибкой безопасности без проверки младшего Win32-кода и контекста.
- Откройте нужный журналНажмите Win+R → eventvwr.msc → Enter. В левой панели «Журналы Windows → Приложение». Отсортируйте события по времени и найдите запись, совпадающую с моментом сбоя. В организациях часть журналов требует прав администратора; обращайтесь к ответственному сотруднику, а не меняйте права журналов.
- Откройте свойства событияДважды нажмите подходящую запись и перепишите источник, «Код события», «Общие», имя сбойного приложения и модуль, если они указаны. ID события не равен Win32-коду; сообщение программы и запись журнала могут описывать разные части одной цепочки отказа.
- Сверьте соседние событияОсмотрите записи за 1–2 минуты до сбоя. Если ошибка службы появилась существенно раньше или процесс имеет другое имя, не считайте её основной причиной. Когда есть события с тем же временем, сопоставьте последовательность и возможный первый отказ.
- Уточните значение именно системного кодаЕсли окно приложения сообщает числовой код Win32, ищите его в Microsoft Learn «System Error Codes»; если журнал содержит HRESULT, сначала определите формат кода, и только затем декодируйте. Одна и та же надпись «код 5» может иметь разные смыслы в разных продуктах.
- Соберите читаемый журналВ «Просмотре событий» выберите найденную запись → «Копировать → Копировать подробности как текст» (наименование команды зависит от версии), сохраните в локальный файл и удалите из копии персональные пути или секреты перед передачей. Не очищайте журнал событий ради проверки.
- Проведите повторный запуск с контролем времениПовторите ровно одно действие, приведшее к ошибке, запишите время, затем сравните появившиеся события. Если совпадения нет, приложение может использовать собственный лог: ищите его в настройках программы или спросите разработчика, а не делайте вывод только по журналу Windows.
#Команды для указанного диагностического шага
Выполняйте только команды, относящиеся к вашему случаю, после шага с соответствующим пояснением. Пути с условными названиями нужно заменить фактическими; приведённые команды не являются универсальным способом исправить любой код.
Get-WinEvent -FilterHashtable @{LogName='Application';StartTime=(Get-Date).AddHours(-2)} -MaxEvents 30 | Select-Object TimeCreated,Id,ProviderName,Message#Как проверить исправление
Повторите ровно ту операцию, которая прежде завершалась ошибкой, на тестовых данных. Проверьте, что операция действительно создала ожидаемый результат, а не просто скрыла окно ошибки. Затем закройте и заново откройте программу и повторите тест после входа в Windows.
#Если не помогло
Сохраните точный числовой Win32-код, имя и версию программы, шаг воспроизведения, путь файла (без секретных данных), дату и событие журнала Windows. Передайте их разработчику или ИТ-администратору. Не следует повторять разрушительные действия, пока не определено значение кода.