Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Certutil-NTSTATUS Windows Server, AD и Роли

Расшифровка кодов ошибок Windows через certutil и базу NTSTATUS

Обновлено: 14.09.2026  ·  Официальная база знаний

Проблема анализа непонятных системных кодов ошибок

Администраторы ежедневно сталкиваются с шестнадцатеричными кодами (HEX) вида 0x80070005, 0xC0000005, 0x80240020 или отрицательными десятичными числами (например, -2147024891). Поиск таких кодов в поисковиках без знания конкретного контекста подсистемы приводит к ложным инструкциям и потере времени.

Диапазон кодовАрхитектурный уровеньПример кодаЧто означает префикс
0x00000001 – 0x00000400Win32 System Error Codes0x00000005Классические системные ошибки ядра (5 = Access Denied)
0x8007xxxxHRESULT / COM Automation0x80070002Фасет Win32: ошибка транслирована в подсистему HRESULT (2 = File Not Found)
0xC000xxxxNTSTATUS (Native API)0xC0000022Низкоуровневые коды ядра ntoskrnl (STATUS_ACCESS_DENIED)
0x8024xxxxWindows Update Agent (WUA)0x8024401cВнутренние ошибки клиента обновлений Microsoft

Универсальные способы быстрой расшифровки ошибок

  1. Расшифровка через штатную утилиту certutil (встроена во все версии Windows): утилита управления сертификатами содержит универсальный встроенный декодер системных ошибок:
    # Синтаксис: certutil -error <Код_Ошибки> certutil -error 0x80070005 # Вывод покажет: # Код: 0x80070005 (-2147024891) # Имя: E_ACCESSDENIED # Описание: Отказано в доступе.
  2. Расшифровка низкоуровневых кодов ядра NTSTATUS:
    certutil -error 0xC0000005 # Вывод: # Код: 0xc0000005 (-1073741819) # Имя: STATUS_ACCESS_VIOLATION # Описание: Ошибка при нарушении прав доступа при чтении/записи памяти.
  3. Использование официальной консольной утилиты Microsoft Error Lookup Tool (Err.exe): утилита из состава Windows SDK позволяет парсить коды по всем системным заголовочным файлам (winerror.h, ntstatus.h):
    err.exe 0x80070002 # Выводит все совпадения по подсистемам: # as HRESULT: 0x80070002 - COR_E_FILENOTFOUND # as Win32: 0x2 - ERROR_FILE_NOT_FOUND
  4. Декодирование через PowerShell .NET API:
    [System.ComponentModel.Win32Exception]0x5

Совет: Если код ошибки начинается с 0x8007, отбросьте первые четыре цифры (0x8007) — оставшиеся цифры представляют собой классический Win32-код в HEX. Например: 0x80070002 -> код 0x2 (ERROR_FILE_NOT_FOUND).

Практический опыт инженера: Практика ITSTM: При анализе логов SCCM или диспетчера задач используйте PowerShell для автоматического парсинга отрицательных exit-кодов: [System.Runtime.InteropServices.Marshal]::GetExceptionForHR(-2147024894).Message вернет точный перевод ошибки.

Частые вопросы (FAQ)

Почему certutil выдает несколько значений для одного кода?

Один и тот же числовой код может использоваться в разных несвязанных библиотеках (например, в сетевом стеке, в подсистеме криптографии и в графическом драйвере DirectX).

Где скачать официальную утилиту Err.exe?

Официальная утилита Microsoft Command-line Error Lookup Tool (Err.exe) доступна для свободной загрузки в Microsoft Download Center.

Как перевести отрицательное число (например, -2147024891) в читаемый вид?

Введите его напрямую в certutil: certutil -error -2147024891, утилита автоматически конвертирует signed integer в hex 0x80070005.

Где в исходниках Windows находятся файлы с описанием всех кодов?

В заголовочных файлах Windows SDK: winerror.h (ошибки Win32/HRESULT) и ntstatus.h (статусы ядра ядра NT).